Plugins / Sticky CTA Button / Documentation

Sticky CTA Button

Applies to Free 2.3 and Pro 1.3.0. Updated Sep 8, 2026. 16 min read

This manual covers the free plugin from wordpress.org and the Pro plugin from desk9design.com and CodeCanyon: global settings, CTA profiles with click actions, targeting, audience, schedule and A/B tests, statistics, inline buttons, import and export, licensing and updates. Pro-only parts are marked.

1. Overview

Sticky CTA Button shows floating call-to-action buttons that stay on screen while people read, and turns them into a full-width action bar on phones. The free plugin covers one button pair for the whole site. Pro adds CTA profiles: complete button sets with rules for where, when and to whom they show, eight click actions, click statistics, A/B tests, WooCommerce actions, inline placement and import/export.

Pro replaces Free. When you activate Pro, your free settings become the default profile and keep showing on every page without a matching profile. The Pro plugin is sold on desk9design.com with a license key and updates inside WordPress, and on CodeCanyon with updates through Envato. Sections that differ are marked.

FreePro
Buttons per set2up to 5
Click actionsOpen a link8: link, call, WhatsApp, email, scroll, coupon, add to cart, cart
CTA profiles with targetingnoyes
Display triggersalways, after 100 pxplus scroll depth, delay, element, exit intent, hide at footer
Schedule, audience, A/B testnoyes
Statisticsnoviews, clicks, CTR, 30 days, no cookies
Dismiss button, animations, gradients, badges, tooltips, custom CSSnoyes
Block and shortcode, import/exportnoyes
AdminSettings > Sticky CTAown menu “Sticky CTA Button”

2. Requirements

WordPress6.0 or newer (tested up to 7.1)
PHP7.4 or newer
WooCommerceoptional; only the two cart actions need it
Themenone; works with any theme, block or classic
External servicesnone: no icon fonts, no jQuery on the front end, no third-party requests

3. Installation and upgrade from Free

1

Download the Pro ZIP from your account (CodeCanyon: from your Envato downloads).

2

In your WordPress admin, go to Plugins > Add New > Upload Plugin, select sticky-cta-button-pro.zip and click Install Now, then Activate.

3

A new top-level menu Sticky CTA Button appears with Settings, CTA Profiles, Statistics, Import/Export and, on the desk9design.com edition, License.

Upgrading from the free plugin

Keep the free plugin active while you install Pro, then deactivate it. All your settings are kept and used by Pro automatically; they become your default profile. Nothing to export or import.

Warning: do not run both plugins at the same time. While the free plugin is active, Pro pauses itself and shows a notice. Deactivate Free, then delete it.

screenshot: Plugins screen with Sticky CTA Button Pro active and the free plugin deactivated, the new admin menu visible (grayscale)

Fig. 1: Pro replaces the free plugin; the old settings live on as the default profile.

4. Quick start

1

Go to Sticky CTA Button > Settings and configure your site-wide buttons. This is the default profile shown wherever no other profile matches.

2

Create page-specific button sets under Sticky CTA Button > CTA Profiles: buttons, click actions, targeting rule, publish.

3

Watch the results under Sticky CTA Button > Statistics.

5. Global settings (the default profile)

The Settings page has five tabs. Everything here applies to the default profile and, unless a profile overrides it, to every profile’s layout.

TabOptions
ButtonsPrimary and secondary button: text, icon (icon grid with No Icon, Own Image from the media library, emoji icons, single-color icons), link, target, background and text color, live preview. Back-to-top button with arrow icons.
Position & LayoutEight positions, Display Behavior (see below), Hide at Footer, vertical or horizontal grouping, button order, offsets.
Mobile BarEnable, bar position top or bottom, bar background color (slightly translucent with blur), Bar Style (icon next to label, or icon above label like an app tab bar, best with 4-5 buttons), breakpoint 768, 1024 or 1280 px. The bar respects the iPhone safe area; back-to-top floats above it.
StylingRounded corners and radius, Attention Animation (none, pulse, bounce, shake) with repeat interval (off for visitors who prefer reduced motion), Dismiss Button with “Stay Hidden For” in days (localStorage, no cookies), Custom CSS.
StatisticsCollect Statistics on or off. See section 12.

Display Behavior

Alwaysthe buttons are visible from the first pixel
Show after scrolling (100 px)the classic behavior; on pages too short to scroll they appear immediately
Show at scroll depth (%)for example after 25 percent of the page
Show after a time delayfor example 5 seconds after the page loads
Show after scrolling past an elementa CSS selector such as .hero; the buttons appear once the visitor scrolled past it
Show on exit intentwhen the mouse moves toward the browser bar; touch devices fall back to 50 percent scroll depth

Hide at Footer hides the buttons while the footer is on screen so they never cover footer content. Useful selectors for Custom CSS: .wp-sticky-cluster, .wp-sticky-cta, .wp-sticky-cta-1 to .wp-sticky-cta-5, .wp-sticky-back-to-top, .wp-sticky-badge.

6. CTA profiles (Pro)

A profile is a complete button set of its own: up to five buttons, each with text, icon, colors and click action, plus the rules that decide where the profile appears. Without a rule a profile stays inactive.

1

Go to Sticky CTA Button > CTA Profiles > Add New Profile and give it a name. The name is only visible to you, for example “Shop pages”.

2

Open Button 1, tick Enable this button and set text, icon, Click Action, Background Color, Gradient Color (optional), Text Color, Badge (up to four characters) and Tooltip on hover. Repeat for up to five buttons; they show in this order.

3

Set at least one rule in the Targeting box (section 8). Optional: Audience, A/B Test, Schedule.

4

Leave Use the global layout settings (recommended) ticked, or untick it to give this profile its own position, display behavior, dismiss button, animation, grouping, offsets and radius. Each profile also decides whether back-to-top shows with it.

5

Publish.

screenshot: CTA Profiles editor: Button 1 open with Click Action “Start a WhatsApp chat”, the Targeting box below (grayscale)

Fig. 2: A profile: five button slots, each with its click action, and the Targeting box.

7. Click actions (Pro)

ActionWhat it does
Open a link (URL)A classic link, same or new window. The only action in the free plugin.
Call a phone numberStarts a call via tel:, ideal on phones.
Start a WhatsApp chatOpens WhatsApp with your number and an optional prefilled message. Number in international format without + or spaces, for example 49123456789.
Write an emailOpens the visitor’s mail app with your address and an optional subject.
Scroll to a section (anchor)Smoothly scrolls to an element ID on the page, for example #pricing.
Copy a coupon codeCopies the code to the clipboard and shows “Copied!” for a moment.
WooCommerce: add product to cartAdds the current product page’s product, or a fixed product ID, to the cart and opens the cart. Shown only while WooCommerce is active.
WooCommerce: go to cart (with count badge)Links to the cart; the badge shows the live item count.

8. Targeting and priority (Pro)

A profile shows when any of its rules matches the current page:

Entire websiteeverywhere, for a site-wide campaign profile
Special pagesfront page, blog page, archives, search results, 404
Post typesall pages, all posts, all products, and so on
Specific posts/pagescomma-separated IDs
URL patterns (one per line, * as wildcard)for example /shop/*

When several profiles match, the most specific one wins: page IDs beat URL patterns, which beat post types, which beat special pages, which beat “entire website”. If two profiles are equally specific, the lower Priority number wins.

Hiding buttons: tick Hide all buttons where this profile matches to use a profile as a “no buttons here” rule, for example on a checkout or landing page.

9. Audience and A/B tests (Pro)

AudienceOptions
Login statuseveryone, logged-in users only (optionally specific roles), or logged-out visitors only
Deviceall devices, mobile devices only, desktop only. Decided on the server; see the caching note.
Languagescomma-separated language codes, empty means all. Works with WPML, Polylang or the site language.

A/B Test: pick a partner profile under “Show this variant to 50% of views instead”. Half of the views get the partner instead of this profile; the partner’s own rules are ignored. Compare views, clicks and CTR of both under Statistics, then keep the winner.

Note: full-page caching plugins cache one rendered page. Device targeting and the A/B split are decided on the server, so a cached page can pin one variant until the cache expires.

screenshot: A profile’s Schedule box and Audience section: date range, weekdays, time window, login status, device, languages (grayscale)

Fig. 3: Schedule and Audience: who sees the profile, and when.

10. Schedule (Pro)

Date rangefor example a sale week; outside the range the profile is skipped
Weekdaystick the days; no weekday checked means every day
Daily time windowfor example 09:00 to 18:00 for a “Call now” button during business hours; windows across midnight such as 20:00 to 06:00 work too

All times use your WordPress timezone from Settings > General. Outside the schedule, the next matching profile or the default profile shows instead. A caching plugin can delay a scheduled change until its cache expires.

11. Per-page override (Pro)

Every page and post has a small Sticky CTA Button box in the editor sidebar with three choices: Automatic (targeting rules), Hide buttons on this page, or a specific profile that shows on this page regardless of any rules.

screenshot: Block editor with the Sticky CTA Button box open in the sidebar, a specific profile selected (grayscale)

Fig. 4: The per-page override in the editor sidebar.

12. Statistics and privacy (Pro)

Sticky CTA Button > Statistics shows the last 30 days per profile: views, clicks per button (1 to 5), back-to-top clicks, total clicks and the click-through rate (CTR). Inline buttons from the block or shortcode count the same way.

What is storedaggregated daily totals per profile and metric in a table on your own site: date, profile, metric, count. No IP addresses, no user agents, no visitor IDs.
Cookiesnone. No consent-banner entry is needed for the statistics.
Administratorslogged-in administrators are never counted, so your own testing does not distort the numbers.
Switching offSettings > Statistics > Collect Statistics. When off, the browser sends no events and the server rejects any. Existing data stays visible.
Third partiesnothing is sent anywhere. There is no Google Analytics or other integration.

screenshot: Sticky CTA Button > Statistics with two profiles, views, clicks per button and CTR (grayscale)

Fig. 5: The statistics screen: views, clicks and CTR for the last 30 days.

13. Inline buttons: block and shortcode (Pro)

Place a profile’s buttons inside your content, with the same look and the same statistics: add the CTA Buttons block and pick a profile, or use the shortcode with the profile ID from the profile list.

[scb_buttons profile="123"]

14. Import and export (Pro)

Sticky CTA Button > Import/Export downloads all profiles and the global settings as one JSON file with Download Export File. Use it as a backup or to copy a setup to another site.

Importing always creates new profiles and never touches existing ones. Tick Also overwrite the global settings with the imported ones if you want the global settings replaced too. A/B partner links are dropped on import; set them again on the new site.

15. License and updates (desk9design.com edition)

The Pro plugin from desk9design.com receives updates inside WordPress through your license key. Without an active license the plugin keeps working with every feature; only automatic updates in the WordPress dashboard are unavailable. The CodeCanyon edition has no License page and updates through Envato.

1

Copy the license key from your account on desk9design.com. It is also in your purchase email.

2

Open Sticky CTA Button > License, paste the key into License Key and click Activate License.

3

The Status shows Active on this site with “Valid until” and “Sites: x of y used”. Updates now appear under Dashboard > Updates like any other plugin.

screenshot: Sticky CTA Button > License with Status “Active on this site”, Valid until and Sites x of y (grayscale)

Fig. 6: The License page after activation.

Deactivate on this site frees the slot so you can use the key on another site. Update checks run every 12 hours and when you activate or deactivate; a just-published release can take up to that long to appear, and “Check again” on the Updates screen forces it.

Note: an update check sends the product slug, your license key, this site’s address and the installed version to desk9design.com. No visitor data is transmitted. An expired key stops updates, never the plugin; renew from your account to receive updates again.

16. Staging and moving sites

Development environments never count against your site limit. Anything on localhost, a .test, .local or .dev domain, or a subdomain starting with staging. or dev. activates as a free slot: same key, full functionality.

Licenses are not locked to a domain forever. Click Deactivate on this site on the old site, or deactivate it next to the subscription in your account, then activate the key on the new site. This takes under a minute and never requires a support ticket. Site swaps do not change your renewal date.

Profiles, settings and statistics live in the database and move with a normal site migration. To copy only the buttons to another site, use Import/Export.

17. Troubleshooting and FAQ

My profile does not appear

Check in this order: is the profile published? Is at least one button enabled? Is at least one targeting rule set? Does a schedule exclude the current time? Does a more specific profile or a per-page override win on that page? The profile list shows the rules of every profile.

The buttons do not show up at all

With “Show after scrolling (100 px)” they appear after scrolling; pages too short to scroll show them immediately. Check the Display Behavior in the global settings and in the profile’s Layout Override, and the per-page override box of the page in question.

Changes do not show for visitors

A caching plugin is serving an older page. Purge the cache. Device targeting, schedules and A/B splits are decided on the server and stay pinned in a cached page until it expires.

The WooCommerce buttons are missing

They render only while WooCommerce is active. With WooCommerce deactivated, buttons with a cart action are skipped and the other buttons stay.

Can I run the free and the Pro version at the same time?

No. Pro replaces the free version. While both are active, Pro pauses itself and shows a notice. Deactivate the free plugin; your settings carry over.

Update not showing

Under Sticky CTA Button > License the status must be Active on this site. Update checks run every 12 hours; “Check again” on the Updates screen forces one. If your host blocks outgoing requests, allow desk9design.com on port 443. CodeCanyon edition: updates come through Envato.

License says it ran out

The plugin keeps working with every feature. Renew the subscription from your account and click Activate License again to receive updates.

Does the plugin load external fonts or scripts?

No. Icons are emoji or Unicode glyphs and inline SVG masks, the front-end script is dependency-free vanilla JavaScript, and assets load only when a button is enabled.

Is the plugin GDPR-friendly?

Yes. It sets no cookies, stores no personal data and sends nothing to external services. The dismiss button uses the visitor’s localStorage only, and the statistics are aggregated daily totals on your own server.

18. Uninstall

Before uninstalling the desk9design.com edition, click Deactivate on this site under Sticky CTA Button > License so the site slot frees up for another site.

Deleting the Pro plugin removes its settings unless the free plugin is still installed; then the settings stay for the free plugin to use. Profiles are stored as their own content type and stay in the database until you delete them under CTA Profiles. Export first if you might come back.

Changelog

1.3.0Statistics can be switched on and off in the settings (new Statistics tab). Enforced in the browser and on the server; existing data is kept.
1.2.0The profile editor uses the same visual icon picker as the settings page.
1.1.1Own top-level admin menu with Settings, CTA Profiles, Statistics, Import/Export and License. Fix: admin styles did not load on the settings screen.
1.1.0Display triggers (scroll depth, delay, element, exit intent), hide at footer, dismiss button, attention animations, gradients, badges, tooltips, custom CSS, five buttons, mobile bar icon style, audience targeting, WooCommerce actions, A/B testing, block and shortcode, import/export.
1.0.0Initial Pro release: CTA profiles with targeting, scheduling, click statistics, per-page override and all features of the free version.

On this page

Docs are versioned with each release. Pro-only sections are marked in the navigation.