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 #
- Upload the
essb-social-contactfolder to/wp-content/plugins/ - Activate the plugin from Plugins → Installed Plugins
- Open Social Contact in the admin menu
- Create your first widget and place it with the generated shortcode or automatic display
Free vs Pro — Feature Matrix #
Contact Networks #
| Feature | Free | Pro |
|---|---|---|
| All 9 networks (WhatsApp, Viber, Telegram, Line, Signal, SMS, iMessage, Phone, Email) | Yes | Yes |
| Unlimited buttons per widget | Yes | Yes |
| Per-network contact value + custom CTA text | Yes | Yes |
| Drag-and-drop network reordering | Yes | Yes |
Widget Management #
| Feature | Free | Pro |
|---|---|---|
| Number of widgets | 1 | Unlimited |
| Widget duplication | No | Yes |
| Widget enable/disable toggle | Yes | Yes |
| Header text (tooltip) | Yes | Yes |
Widget Mode — Show All Buttons #
| Feature | Free | Pro |
|---|---|---|
| Button style (Square / Round / Rounded) | Yes | Yes |
| Button template — Color | Yes | Yes |
| Button template — Dark / Lite / Outline / Custom | No | Yes |
| Custom background + text colors (Custom template) | No | Yes |
| Button type — Icon only | Yes | Yes |
| Button type — Icon + Text | No | Yes |
| Button size — Default (Medium) | Yes | Yes |
| Button size — XS / SM / LG / XL | No | Yes |
| No-space (merged) button layout | No | Yes |
Widget Mode — Contact Button (single button + popup) #
| Feature | Free | Pro |
|---|---|---|
| Contact Button mode with popup | Yes | Yes |
| Custom background / icon-text color | Yes | Yes |
| Custom SVG icon (paste or upload) | Yes | Yes |
| Button shape — Round | Yes | Yes |
| Button shape — Square / Rounded | No | Yes |
| Button type — Icon only | Yes | Yes |
| Button type — Button (Icon + Text) | No | Yes |
| Button size — Large | Yes | Yes |
| Button size — XS / SM / Medium / XL | No | Yes |
| Popup theme — Light | Yes | Yes |
| Popup theme — Dark / Transparent | No | Yes |
| Custom popup width | No | Yes |
Display & Targeting #
| Feature | Free | Pro |
|---|---|---|
| Manual placement (shortcode) | Yes | Yes |
| Automatic — Entire Site (floating) | Yes | Yes |
| Automatic — Selected Post Types | No | Yes |
| Automatic — WooCommerce (Product page only) | Yes | Yes |
| Automatic — WooCommerce (All / Shop / Cart / Checkout) | No | Yes |
| Static display (before/after content) | No* | Yes |
| Static display below WooCommerce price | Yes | Yes |
| Floating position — Bottom Right (Horizontal) | Yes | Yes |
| Floating position — all 6 positions | No | Yes |
| Device visibility — Any device | Yes | Yes |
| Device visibility — Desktop Only / Mobile Only | No | Yes |
| Exclude URL rules | No | Yes |
* 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 #
| Feature | Free | Pro |
|---|---|---|
Shortcode [essb_sc_widget id="..."] | Yes | Yes |
| Gutenberg block | No | Yes |
| Elementor widget | No | Yes |
| Legacy import from “Social Contact Lite” | Yes | Yes |
Widget Manager (Admin Screen) #
Reachable via Social Contact in the WordPress admin menu.

Widget list #
Each saved widget is rendered as a row containing:
| Element | Description | Version |
|---|---|---|
| Toggle | Enable/disable the widget on the frontend (instant AJAX) | Free |
| Name + meta | Widget name plus Button Style / Template / Type and Display info | Free |
| Network badges | Color badges of the enabled networks | Free |
| Shortcode | Click-to-copy [essb_sc_widget id='sc_...'] — shown only for Manual widgets | Free |
| Edit | Opens the widget editor modal | Free |
| Duplicate | Creates a copy named (Copy) | Pro |
| Delete | Removes 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 #
| Field | Description | Default | Version |
|---|---|---|---|
| Widget Name | Internal label shown in the list (required) | — | Free |
| Header Text (Tooltip) | Optional text displayed above the buttons (“Need More Information?”). Empty = hidden | empty | Free |
| Widget Enabled | When off, the widget never renders on the frontend | on | Free |
Widget Mode #
| Option | Description | Version |
|---|---|---|
| Show All Buttons | Renders every enabled network button directly | Free |
| Show Contact Button | Renders a single contact button that opens a popup containing all network buttons | Free |
When Show Contact Button is selected, the Contact Button Settings section appears:
| Field | Description | Default | Version |
|---|---|---|---|
| Background Color | Color of the contact button | #25d366 | Free |
| Icon / Text Color | Color of the icon / label | #ffffff | Free |
| Button Icon (SVG) | Paste raw SVG or upload an .svg file; empty = default chat icon | empty | Free |
| Button Style — Round | Circular button | round | Free |
| Button Style — Square / Rounded | Sharp or rounded-rectangle button | — | Pro |
| Button Type — Icon only | Shows the icon only | icon | Free |
| Button Type — Button (Icon + Text) | Shows icon plus the Button Text field | — | Pro |
| Button Size — Large | 60px button | lg | Free |
| Button Size — XS / SM / Medium / XL | 36 / 44 / 52 / 72 px buttons | — | Pro |
| Popup Theme — Light | White popup with shadow | light | Free |
| Popup Theme — Dark / Transparent | Dark or transparent popup | — | Pro |
| Popup Width (px) | 0 = auto width | 0 | Pro |
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:
| Field | Description | Placeholder |
|---|---|---|
| Contact | The destination value (number, username, or e-mail depending on network) | e.g. +1234567890 |
| CTA Text | Label shown when button type = Button. Empty = network name | Default: network name |
Network-specific value placeholders:
| Network | Placeholder |
|---|---|
+1234567890 | |
| Viber | +1234567890 |
| Telegram | @username or link |
| Line | @username |
| Signal | +1234567890 |
| SMS | +1234567890 |
| iMessage | +1234567890 or email |
| Phone | +1234567890 |
email@example.com |
Network Button Styling #
Applies to the Show All Buttons mode and to buttons inside the popup.
| Field | Options | Default | Version |
|---|---|---|---|
| Button Style | Square, Round, Rounded | Rounded | Free |
| Button Template | Color | Color | Free |
| Button Template | Dark, Lite, Outline, Custom | — | Pro |
| Custom Background Color | Shown when template = Custom | #25d366 | Pro |
| Custom Text / Icon Color | Shown when template = Custom | #ffffff | Pro |
| Button Type | Icon only | Icon | Free |
| Button Type | Button (Icon + Text) | — | Pro |
| No Space Between Buttons | On/Off (merged block layout) | Off | Pro |
| Button Size | Default (Medium) | Default | Free |
| Button Size | XS, SM, Large, XL | — | Pro |
| Floating Edge Offset | Default | Default | Free |
| Floating Edge Offset | Small (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 #
| Field | Options | Version |
|---|---|---|
| Display | Manual — use a shortcode anywhere | Free |
| Display | Automatic — show on selected positions | Free |
Device Visibility #
| Option | Effect |
|---|---|
| Any Device | Always visible |
| Desktop Only | Hidden below 768px (CSS media query) |
| Mobile Only | Visible only below 768px |
Pro
Display Scope #
| Option | Version |
|---|---|
| Entire Site | Free |
| Selected Post Types | Pro |
| WooCommerce | Free (product page only) / Pro (all scopes) |
Entire Site scope #
| Field | Version |
|---|---|
| Floating Position — Bottom Right (Horizontal) | Free |
| Floating Position — Bottom Left (Horizontal), Bottom R/L (Vertical), Left/Right Sidebar | Pro |
Exclude URLs (one per line, supports * / ? wildcards) | Pro |
Selected Post Types scope Pro #
| Field | Options |
|---|---|
| Select Post Types | Chip grid of public post types (pages & attachments excluded) |
| Display Type | Floating / Static |
| Floating Position | All 6 positions |
| Static Position | Before Content / After Content |
| Exclude URLs | One per line |
WooCommerce scope #
Shown only when WooCommerce is active.
| Field | Free | Pro |
|---|---|---|
| WooCommerce Pages | Product Page | Product Page + All Pages, Shop, Cart, Checkout |
| Product Page → Display Type | Floating / Static (Below Price) | Floating / Static (Below Price) |
| Product Page → Floating Position | Bottom Right (Horizontal) | All 6 positions |
| All/Shop/Cart/Checkout → Floating Position | — | All 6 positions |
| Exclude URLs | No | Yes |
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
manualdisplay 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:
- Enabled? — a disabled widget never renders.
- Free limits — floating position forced to bottom right WooCommerce pages forced to product page only.
- Excluded URLs? — if the current path matches an exclusion rule, the widget is skipped.
- 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.
Supported Networks — Values & Link Formats #
Values are entered per network. The plugin builds the destination URL automatically.
| Network | Expected value | Generated link |
|---|---|---|
| phone number | https://wa.me/{value} | |
| Viber | phone number | viber://chat?number={value} |
| Telegram | username or full URL | https://t.me/{username} (or the URL as-is when it starts with http) |
| Line | username | line://ti/p/{username} |
| Signal | phone number | https://signal.me/#p/{value} |
| SMS | phone number | sms:{value} |
| iMessage | phone or email | imessage:{value} |
| Phone | phone number | tel:{value} |
| e-mail address | mailto:{value} |