Social Contact

6 min read

Overview #

Social Contact adds clickable social contact buttons to a WordPress site so visitors can reach the site owner instantly on the platform they already use: WhatsApp, Viber, Telegram, Line, Signal, SMS, iMessage, Phone and Email.

The plugin is built around widgets. A widget is a reusable configuration of:

  • which networks to show (plus the contact value and call-to-action for each),
  • how the buttons look (style, template, type, size),
  • and how/where they are displayed (shortcode, floating, static, WooCommerce).

Requirements & Installation #

Requirements #

  • WordPress 6.0 or higher (tested up to 7.0)
  • PHP 7.4 or higher
  • WooCommerce is optional (only needed for the WooCommerce display scope)

Installation #

  1. Upload the essb-social-contact folder to /wp-content/plugins/
  2. Activate the plugin from Plugins → Installed Plugins
  3. Open Social Contact in the admin menu
  4. Create your first widget and place it with the generated shortcode or automatic display

Free vs Pro — Feature Matrix #

Contact Networks #

FeatureFreePro
All 9 networks (WhatsApp, Viber, Telegram, Line, Signal, SMS, iMessage, Phone, Email)YesYes
Unlimited buttons per widgetYesYes
Per-network contact value + custom CTA textYesYes
Drag-and-drop network reorderingYesYes

Widget Management #

FeatureFreePro
Number of widgets1Unlimited
Widget duplicationNoYes
Widget enable/disable toggleYesYes
Header text (tooltip)YesYes

Widget Mode — Show All Buttons #

FeatureFreePro
Button style (Square / Round / Rounded)YesYes
Button template — ColorYesYes
Button template — Dark / Lite / Outline / CustomNoYes
Custom background + text colors (Custom template)NoYes
Button type — Icon onlyYesYes
Button type — Icon + TextNoYes
Button size — Default (Medium)YesYes
Button size — XS / SM / LG / XLNoYes
No-space (merged) button layoutNoYes

Widget Mode — Contact Button (single button + popup) #

FeatureFreePro
Contact Button mode with popupYesYes
Custom background / icon-text colorYesYes
Custom SVG icon (paste or upload)YesYes
Button shape — RoundYesYes
Button shape — Square / RoundedNoYes
Button type — Icon onlyYesYes
Button type — Button (Icon + Text)NoYes
Button size — LargeYesYes
Button size — XS / SM / Medium / XLNoYes
Popup theme — LightYesYes
Popup theme — Dark / TransparentNoYes
Custom popup widthNoYes

Display & Targeting #

FeatureFreePro
Manual placement (shortcode)YesYes
Automatic — Entire Site (floating)YesYes
Automatic — Selected Post TypesNoYes
Automatic — WooCommerce (Product page only)YesYes
Automatic — WooCommerce (All / Shop / Cart / Checkout)NoYes
Static display (before/after content)No*Yes
Static display below WooCommerce priceYesYes
Floating position — Bottom Right (Horizontal)YesYes
Floating position — all 6 positionsNoYes
Device visibility — Any deviceYesYes
Device visibility — Desktop Only / Mobile OnlyNoYes
Exclude URL rulesNoYes

* Static placement for whole sites is only offered via the Selected Post Types scope, which is Pro. The free WooCommerce scope can be set to Static (Below Price).

Integrations #

FeatureFreePro
Shortcode [essb_sc_widget id="..."]YesYes
Gutenberg blockNoYes
Elementor widgetNoYes
Legacy import from “Social Contact Lite”YesYes

Widget Manager (Admin Screen) #

Reachable via Social Contact in the WordPress admin menu.

Widget list #

Each saved widget is rendered as a row containing:

ElementDescriptionVersion
ToggleEnable/disable the widget on the frontend (instant AJAX)Free
Name + metaWidget name plus Button Style / Template / Type and Display infoFree
Network badgesColor badges of the enabled networksFree
ShortcodeClick-to-copy [essb_sc_widget id='sc_...'] — shown only for Manual widgetsFree
EditOpens the widget editor modalFree
DuplicateCreates a copy named (Copy)Pro
DeleteRemoves the widget (with confirmation)Free

Add New Widget button #

  • Free: disabled once 1 widget exists. Shows an “Upgrade to Pro” hint.
  • Pro: unlimited widgets.

Legacy import (Social Contact Lite) #

  • If the old option from the previous Social Contact Lite plugin contains values, a notice offers Import Settings.
  • Imports up to 6 networks (whatsapp, viber, telegram, phone, sms, email) and the design preference into a widget named “Imported from Social Contact Lite”.
  • Available to Free and Pro users.

Widget Editor — Reference #

The editor is a modal opened from the widget list. Below is every field and its Free/Pro status.

General #

FieldDescriptionDefaultVersion
Widget NameInternal label shown in the list (required)Free
Header Text (Tooltip)Optional text displayed above the buttons (“Need More Information?”). Empty = hiddenemptyFree
Widget EnabledWhen off, the widget never renders on the frontendonFree

Widget Mode #

OptionDescriptionVersion
Show All ButtonsRenders every enabled network button directlyFree
Show Contact ButtonRenders a single contact button that opens a popup containing all network buttonsFree

When Show Contact Button is selected, the Contact Button Settings section appears:

FieldDescriptionDefaultVersion
Background ColorColor of the contact button#25d366Free
Icon / Text ColorColor of the icon / label#ffffffFree
Button Icon (SVG)Paste raw SVG or upload an .svg file; empty = default chat iconemptyFree
Button Style — RoundCircular buttonroundFree
Button Style — Square / RoundedSharp or rounded-rectangle buttonPro
Button Type — Icon onlyShows the icon onlyiconFree
Button Type — Button (Icon + Text)Shows icon plus the Button Text fieldPro
Button Size — Large60px buttonlgFree
Button Size — XS / SM / Medium / XL36 / 44 / 52 / 72 px buttonsPro
Popup Theme — LightWhite popup with shadowlightFree
Popup Theme — Dark / TransparentDark or transparent popupPro
Popup Width (px)0 = auto width0Pro

Contact Networks #

The network grid lists all 9 networks with brand colors. Click toggles the network on/off; drag to reorder.

When a network is enabled, its settings appear below:

FieldDescriptionPlaceholder
ContactThe destination value (number, username, or e-mail depending on network)e.g. +1234567890
CTA TextLabel shown when button type = Button. Empty = network nameDefault: network name

Network-specific value placeholders:

NetworkPlaceholder
WhatsApp+1234567890
Viber+1234567890
Telegram@username or link
Line@username
Signal+1234567890
SMS+1234567890
iMessage+1234567890 or email
Phone+1234567890
Emailemail@example.com

Network Button Styling #

Applies to the Show All Buttons mode and to buttons inside the popup.

FieldOptionsDefaultVersion
Button StyleSquare, Round, RoundedRoundedFree
Button TemplateColorColorFree
Button TemplateDark, Lite, Outline, CustomPro
Custom Background ColorShown when template = Custom#25d366Pro
Custom Text / Icon ColorShown when template = Custom#ffffffPro
Button TypeIcon onlyIconFree
Button TypeButton (Icon + Text)Pro
No Space Between ButtonsOn/Off (merged block layout)OffPro
Button SizeDefault (Medium)DefaultFree
Button SizeXS, SM, Large, XLPro
Floating Edge OffsetDefaultDefaultFree
Floating Edge OffsetSmall (Half), No Space, Large (1.5×)Pro

Edge Offset only applies to the floating display. It is ignored for shortcode and static placement.

Display Method #

FieldOptionsVersion
DisplayManual — use a shortcode anywhereFree
DisplayAutomatic — show on selected positionsFree

Device Visibility #

OptionEffect
Any DeviceAlways visible
Desktop OnlyHidden below 768px (CSS media query)
Mobile OnlyVisible only below 768px

Pro

Display Scope #

OptionVersion
Entire SiteFree
Selected Post TypesPro
WooCommerceFree (product page only) / Pro (all scopes)

Entire Site scope #

FieldVersion
Floating Position — Bottom Right (Horizontal)Free
Floating Position — Bottom Left (Horizontal), Bottom R/L (Vertical), Left/Right SidebarPro
Exclude URLs (one per line, supports * / ? wildcards)Pro

Selected Post Types scope Pro #

FieldOptions
Select Post TypesChip grid of public post types (pages & attachments excluded)
Display TypeFloating / Static
Floating PositionAll 6 positions
Static PositionBefore Content / After Content
Exclude URLsOne per line

WooCommerce scope #

Shown only when WooCommerce is active.

FieldFreePro
WooCommerce PagesProduct PageProduct Page + All Pages, Shop, Cart, Checkout
Product Page → Display TypeFloating / Static (Below Price)Floating / Static (Below Price)
Product Page → Floating PositionBottom Right (Horizontal)All 6 positions
All/Shop/Cart/Checkout → Floating PositionAll 6 positions
Exclude URLsNoYes

Display Methods & Placement #

There are four ways a widget can appear.

Manual (shortcode) — Free #

Every Manual widget has a unique shortcode. It renders only that widget’s buttons wherever the shortcode is placed.

[essb_sc_widget id='sc_abc123']

The shortcode is click-to-copy from the widget list and works in posts, pages, widget areas, and any page builder that accepts shortcodes. It is also what the Gutenberg block and Elementor widget output internally.

Floating — Free (fixed position) / Pro (all positions) #

  • Output on every page via wp_footer.
  • Only Automatic widgets participate; widgets with a manual display are ignored.
  • The container is fixed
  • Free users: always Bottom Right, horizontal.
  • Pro users: 6 positions — Bottom Right / Left horizontal, Bottom Right / Left vertical, Left / Right Sidebar (vertically centered).

Static — Pro (before/after content) #

  • Only Automatic widgets with static display type.
  • Position: Before Content or After Content.
  • Product pages are skipped by this hook (handled by the WooCommerce hook instead).

6.4 WooCommerce — Free (product page) / Pro (product, shop, cart, checkout) #

  • Static product-page buttons.
  • Free: Product page only, floating OR static-below-price.
  • Pro: additional targeting for Shop, Cart, Checkout, or All pages (floating).

6.5 Frontend display decision logic #

For automatic widgets the plugin checks, in order:

  1. Enabled? — a disabled widget never renders.
  2. Free limits — floating position forced to bottom right WooCommerce pages forced to product page only.
  3. Excluded URLs? — if the current path matches an exclusion rule, the widget is skipped.
  4. Scope match — Entire Site (always), Selected Post Types (must be a singular entry of a selected type), WooCommerce

Exclusion matching rules:

  • A plain path matches when the current path equals it or contains it (substring).
  • * and ? act as wildcards and the whole pattern is matched as a regular expression.
  • Paths are compared without leading slashes.

Values are entered per network. The plugin builds the destination URL automatically.

NetworkExpected valueGenerated link
WhatsAppphone numberhttps://wa.me/{value}
Viberphone numberviber://chat?number={value}
Telegramusername or full URLhttps://t.me/{username} (or the URL as-is when it starts with http)
Lineusernameline://ti/p/{username}
Signalphone numberhttps://signal.me/#p/{value}
SMSphone numbersms:{value}
iMessagephone or emailimessage:{value}
Phonephone numbertel:{value}
Emaile-mail addressmailto:{value}
What are your feelings