

Visual editor for the WordPress CTA highlighter - click any button, link, or element on the live page to add an animated cue
Your visitors are missing your most important buttons. Your “Add to Cart”, your signup form, your limited-time offer – they scroll right past them. GlanceLeader draws the eye exactly where you want it, with subtle animated cues that turn ignored elements into clicked ones.
GlanceLeader is a WordPress CTA highlighter and button-animation plugin that puts beacons, tooltips, borders, and glowing outlines on any button, link, or section – built for WooCommerce stores and conversion-focused sites, with no code required.
No shortcodes. No page builder. No CSS or JavaScript. Open the visual editor, click the element you want to highlight, choose how to highlight it, and save. That is the whole workflow.
Want to try it first? Launch a free demo site with GlanceLeader already installed – a disposable WordPress sandbox, no signup, ready in seconds.
Built for store owners and marketers who care about conversions:
Prove it is working. Built-in, privacy-first analytics show impressions, clicks on the highlighted element, and click-through rate for every campaign – so you can see exactly which cues drive action and double down. The built-in analytics use no third-party services, collect no personal data, and set no visitor cookies.
Animations play automatically as visitors scroll to each element – not as a forced guided tour, but as natural, eye-catching signals. Works with any theme and with WooCommerce and the block editor.
Seven built-in cue types:
Five more cue types in the separate GlanceLeader PRO plugin:
New cue types are added regularly, so the collection keeps growing.
Key features:
More in the separate GlanceLeader PRO plugin:
Pointer cue details (PRO):
Three built-in SVG arrow presets (Arrow, Chevrons, Block arrow) plus a custom image field that accepts any URL, including animated GIFs. Position the pointer at any of 8 compass positions around the element, or centered on it. Choose from bounce-toward, pulse, or wobble animations and set the gap between pointer and element independently of element size.
How it works:
Conditions (PRO, optional):
Each campaign can have one or more conditions that all must match for the campaign to run. Available condition types:
?key=value query stringThese filters are a PRO feature. GlanceLeader exposes the following PHP filters so developers can extend or override behaviour without modifying plugin files. They are available only in the PRO version – in the free version this code is not present, so the filters do not fire.
Modify the full data payload sent to the player before it is output to the page. Runs on every page load where a matching campaign is found, and also in the visual editor. The second argument is the campaign post ID.
add_filter( 'glanceleader_campaign_data', function ( $data, $campaign_id ) {
// Add extra steps, swap the trigger, override skip settings, etc.
$data['trigger'] = 'always';
return $data;
}, 10, 2 );
The $data array contains: id, trigger (always/once/session), mode (parallel/sequential), steps (array), skip (array), and ab (A/B test config: enabled, live, variants).
Filter the steps array before it is persisted to the database. Runs during the AJAX save triggered by the visual editor. The second argument is the campaign post ID.
add_filter( 'glanceleader_steps_before_save', function ( $steps, $post_id ) {
// Validate, sanitize, or inject steps before saving.
return $steps;
}, 10, 2 );
Override the skip button configuration for a specific campaign. Useful for showing or hiding the button based on the current user, role, or request context.
add_filter( 'glanceleader_skip_data', function ( $skip, $post_id ) {
// Hide the skip button for logged-in users.
if ( is_user_logged_in() ) {
$skip['enabled'] = false;
}
return $skip;
}, 10, 2 );
The $skip array contains: enabled (bool), text (string), position (top-right/top-left/bottom-right/bottom-left).
Override the built-in URL matching logic. Return true or false to short-circuit the default matching. Return null (or do not return a value) to let the default logic run.
add_filter( 'glanceleader_url_matches', function ( $result, $current_url, $pattern ) {
// Example: also match when a custom query parameter is present.
if ( isset( $_GET['gp_preview'] ) ) return true;
return $result; // null = use default matching
}, 10, 3 );
Override the result of the conditions check for a campaign. Receives the boolean result after all built-in conditions have been evaluated, plus the raw conditions array. Use this to add support for custom condition types.
add_filter( 'glanceleader_conditions_pass', function ( $passed, $conditions ) {
// Example: block campaigns on weekends regardless of other conditions.
if ( in_array( date('N'), ['6', '7'] ) ) return false;
return $passed;
}, 10, 2 );
Control which campaign post statuses are eligible to load on the frontend. By default, admins see publish/private/draft; other visitors see publish only.
add_filter( 'glanceleader_campaign_post_statuses', function ( $statuses ) {
// Example: never show draft campaigns, even to admins.
return ['publish'];
} );<h3>External services</h3>
GlanceLeader’s built-in analytics are fully self-contained: they are stored in your own WordPress database and are never sent anywhere.
The plugin connects to the following external services:
Freemius – our licensing, software-update, and (optional) usage-analytics provider.
Google Analytics (Google Tag / gtag.js) – part of the optional Google Analytics integration (a PRO feature, disabled by default).
glanceleader_cue_shown, glanceleader_cue_click, glanceleader_skip) each tagged with the campaign ID and A/B variant label, to your configured GA4 Measurement ID. If a GA4 tag is already present on the page, the events ride along with it; otherwise the plugin loads Google’s gtag.js from https://www.googletagmanager.com. No data is sent while the integration is disabled.