GoalPrevail Tab Notifications – User Guide
Bring wandering visitors back by displaying friendly browser-tab reminders, notification counters and favicon badges.
1. What this plugin does
GoalPrevail Tab Notifications changes the browser-tab title when a visitor switches to another tab, minimizes the browser or, optionally, moves to another application.
The reminder is designed to regain a visitor’s attention without changing the visible content of the page.
- Flashing tab titles — alternate between the original page title and a custom reminder.
- Replace mode — show one static reminder instead of flashing.
- Message rotation — cycle through several reminder messages.
- Notification counter — display a Facebook-style
(1),(2)or higher counter. - Favicon badge — add a colored notification dot to the site icon.
- WooCommerce targeting — show a dedicated reminder on cart and checkout pages.
- Page targeting — enable the reminder everywhere or only on selected pages.
- Audience controls — target everyone, guests or logged-in users.
- Welcome-back message — greet visitors briefly when they return.
- Session limits — stop triggering after a selected number of trips away.
- Live preview — preview the message, speed, favicon badge and counter while editing.
WooCommerce is optional. It is required only when using the Cart & checkout targeting options.
2. Requirements and installation
2.1 Requirements
- WordPress 6.0 or newer
- PHP 7.4 or newer
- Administrator access
- WooCommerce 6.0 or newer for cart and checkout targeting
- A modern browser with JavaScript enabled
2.2 Installation
- Upload the
goalprevail-tab-notificationsfolder to/wp-content/plugins/, or use Plugins → Add New → Upload Plugin. - Activate GoalPrevail Tab Notifications.
- Open GoalPrevail Plugins → Tab Notifications.
- Configure your message, targeting and behavior.
- Click Save settings.
- Open the website in a private or incognito window and switch to another browser tab to test the reminder.
2.3 Default configuration
New installations begin with the following configuration:
- Tab notifications enabled
- Message:
π Come back! - Flash mode enabled
- Flash speed set to 1.2 seconds
- Notification counter enabled
- Favicon badge enabled
- Badge color set to red
- Applied to every page
- Hidden from logged-in administrators
- Welcome-back message disabled
3. Where to configure the plugin
All plugin settings are available under:
GoalPrevail Plugins → Tab Notifications
The direct administration URL is:
admin.php?page=goalprevail-tab-notifications
The settings screen contains three tabs:
- Message — enable the plugin and configure one or more reminder messages.
- Where it shows — choose pages, WooCommerce areas and visitor groups.
- Behaviour — control flashing, timing, counters, favicon badges and return greetings.
A live browser-tab preview appears beside the settings. It updates while you edit the primary message, notification mode, flash speed, counter and favicon badge.
Settings are normally saved without reloading the page. If the background save fails, the plugin falls back to the standard WordPress settings form.
4. Quick-start configuration
- Open the Message tab.
- Enable Enable tab notifications.
- Enter a short message, such as
π Come back!. - Open Where it shows.
- Choose Every page, Cart & checkout only or Specific pages.
- Choose who should see the reminder.
- Open Behaviour.
- Select Flash or Replace mode.
- Configure the timing, counter and favicon options.
- Click Save settings.
- Test the result in a private browser window.
The plugin is hidden from logged-in administrators by default. If it appears to be inactive while you are testing, use a private window or temporarily disable the administrator exclusion.
5. Configuring reminder messages
5.1 Master switch
Enable tab notifications is the plugin’s master switch. When disabled, the front-end notification script is not loaded.
Disabling the switch does not delete your saved configuration.
5.2 Primary message
Use Message shown when they leave to enter the browser-tab reminder.
Example:
π Come back!
The message can contain plain text and emoji and is limited to 120 characters.
An emoji picker is available beside the field for quickly inserting commonly used symbols.
5.3 Rotating messages
Use Rotate through several messages to create a sequence of reminders. Enter one message per line:
π₯ Still there?
β° Your order is waitingβ¦
π Donβt miss out!
When rotating messages are provided, they replace the primary message and cycle while the title flashes.
- Empty lines are removed.
- Each message is limited to 120 characters.
- Up to 20 non-empty messages can be stored.
- The sequence starts from the first message each time the visitor leaves.
Keep the most important words at the beginning. Browser tabs are narrow and may display only the first part of a message.
6. Choosing where the reminder appears
The plugin provides three targeting scopes.
| Scope | Description |
|---|---|
| Every page | Loads the reminder throughout the front end, except where an exclusion or audience rule prevents it. |
| Cart & checkout only | Loads the reminder on WooCommerce cart and checkout screens. |
| Specific pages | Loads the reminder only when the current page matches an ID or path entered in the Pages field. |
6.1 Specific pages
Enter one page reference per line. The plugin accepts:
- A numeric page or post ID, such as
42. - A URL path, such as
/pricing/. homefor the site’s front page./for the site’s front page.
Example:
home
42
/pricing/
/special-offer/
Paths are matched without considering query-string parameters. A path must otherwise match the current URL path.
6.2 Page exclusions
Use Never show on these pages to prevent the reminder from appearing on selected pages.
The exclusion field accepts the same ID, path and home formats as the Specific pages field. Exclusions are checked before the selected targeting scope.
Useful exclusions may include:
/my-account/
/thank-you/
/privacy-policy/
7. Audience targeting
Use Who sees it? to select the visitor group that receives tab notifications.
| Audience | Description |
|---|---|
| Everyone | Displays the reminder to logged-in and logged-out visitors. |
| Logged-out visitors only | Displays the reminder only to guests who have not signed in. |
| Logged-in users only | Displays the reminder only to authenticated WordPress users. |
7.1 Administrator exclusion
Enable Don’t show it to logged-in administrators to prevent users with the manage_options capability from receiving notifications.
This setting is enabled by default so site administrators are not interrupted while editing or testing the website.
Audience and administrator rules are evaluated by WordPress while the page is generated. If a full-page cache serves the same HTML to different visitor groups, configure the cache to keep logged-in and logged-out content separate.
8. WooCommerce cart and checkout reminders
When WooCommerce is active, the plugin can focus its reminders on visitors with strong purchase intent.
8.1 Cart & checkout only
Select Cart & checkout only to run the reminder only on WooCommerce cart and checkout screens.
The WooCommerce order-received endpoint is not treated as an active checkout screen by this targeting mode, preventing completed customers from receiving the cart reminder.
8.2 Only when the cart has items
Enable Only when the cart actually has items to skip the reminder when the WooCommerce cart is empty.
This option applies when the selected scope is Cart & checkout only.
8.3 Dedicated cart message
Use Cart / checkout message to display a different reminder on WooCommerce purchasing screens.
The default message is:
π You left items in your cart!
The dedicated message is used whenever the current screen is recognized as a WooCommerce cart or checkout page, including when Every page is selected.
Leave the field empty to use the standard message or rotating messages instead.
WooCommerce must be active for cart status, cart pages and checkout pages to be detected.
9. Flashing and timing behavior
9.1 Flash mode
Flash alternates between the original page title and the configured reminder.
When the visitor leaves, the reminder appears immediately after any configured delay. The title then alternates according to the selected flash speed.
9.2 Replace mode
Replace changes the title to the reminder once and leaves it in place until the visitor returns.
Replace mode is calmer and does not use the flash-speed or stop-after cycle.
9.3 Timing controls
| Setting | Allowed range | Description |
|---|---|---|
| Flash speed | 0.2–30 seconds | Controls the time between title changes in Flash mode. |
| Wait before starting | 0–120 seconds | Delays the reminder after the visitor leaves. Use 0 to start immediately. |
| Stop after | 0–999 flashes | Stops alternating after the selected number of reminder displays and leaves the message visible. Use 0 to continue until the visitor returns. |
| Give up after | 0–999 trips away | Stops starting new reminders after the selected number of departures in the current browser-tab session. Use 0 for no session limit. |
If the visitor returns before the starting delay finishes, the pending reminder is canceled.
10. Notification counter and favicon badge
10.1 Facebook-style counter
Enable Show a (1) counter, Facebook-style to add an incrementing number before the reminder:
(1) π Come back!
(2) π Come back!
(3) π Come back!
The number represents how many times the visitor has left during the current browser-tab session.
The counter is stored in the browser’s sessionStorage under:
gptnAwayCount
Because session storage belongs to the browser tab, the counter can continue across page navigation in the same tab. It normally resets when that tab’s session ends.
10.2 Favicon badge
Enable Badge the favicon too to place a colored notification dot over the site icon.
- If the counter is enabled, its number is displayed inside the badge.
- If the counter is disabled, the favicon displays a plain colored dot.
- The badge color can be selected using the WordPress color field.
- The original favicon is restored when the visitor returns.
The badge is drawn in the browser using an HTML canvas.
A favicon hosted on another domain or CDN may prevent browser canvas access. If the icon cannot be read safely, the plugin leaves it unchanged while the title reminder continues to work.
11. Notification triggers
The plugin offers two trigger modes.
| Trigger | Description |
|---|---|
| Tab switch or minimise | Starts the reminder when the browser reports that the page is hidden, such as when the user changes tabs or minimizes the window. |
| Also when the window loses focus | Also starts the reminder when the browser window loses focus, such as when the visitor moves to another application. |
The second option is more noticeable because the reminder can begin even while the tab remains technically visible.
When focus moves into an embedded iframe, the plugin does not treat that event as leaving the page. This helps avoid triggering while a visitor is interacting with hosted payment fields, videos or other embedded content.
If a page initially opens in a background tab, the reminder can begin immediately after the script loads.
12. Welcome-back message
Enable Greet them when they return to display a short title message after the visitor returns to the page.
The default greeting is:
π Welcome back!
Use Show it for to control how long the greeting remains visible. The accepted range is 0.5 to 30 seconds.
After the selected time, the page’s original title is restored.
The greeting appears only if the away reminder was actually shown. If the visitor returns before a configured starting delay finishes, the plugin restores the normal title without displaying the welcome message.
13. How titles and favicons are restored
The plugin records the current page title immediately before starting each reminder.
When the visitor returns:
- Any pending starting delay is canceled.
- The flashing interval is stopped.
- The original favicon is restored.
- The welcome-back message is displayed when enabled.
- The original page title is restored.
This allows the plugin to work with pages whose title may change during navigation or through another script.
If another script changes the title while the tab is hidden, both scripts may compete for control. Test the final behavior when using other title-notification plugins or highly dynamic web applications.
14. Performance and cache compatibility
- The front-end script is loaded only when the reminder is enabled and applies to the current request.
- No front-end stylesheet is required.
- The browser performs all title animation and favicon drawing.
- No repeated AJAX requests are made while a visitor is away.
- No third-party tracking or analytics service is contacted from the front end.
- The original page title and favicon are restored locally in the browser.
- WooCommerce HPOS compatibility is declared because the plugin does not read or modify order records.
14.1 Full-page caching
Page selection, WooCommerce conditions and audience rules are evaluated on the server before the notification script is added.
Most caching systems already exclude logged-in users, carts and checkout pages. If your cache serves the same page output to different visitor groups, review its configuration when using:
- Logged-out visitors only
- Logged-in users only
- Don’t show it to logged-in administrators
- Only when the cart actually has items
15. Developer information
15.1 Front-end script
The front-end engine is registered with the following WordPress script handle:
gptn-tab-notify
The per-request configuration is added before the script as:
window.gptnConfig
15.2 PHP filters
| Filter | Purpose |
|---|---|
gptn_config |
Modify the completed front-end configuration for the current request, or return null to suppress the reminder. |
gptn_plugins |
Register plugins with the shared GoalPrevail administration dashboard. |
gptn_wporg_author |
Change or disable the WordPress.org author lookup used by the GoalPrevail dashboard. |
gptn_support_email |
Filter the support address returned by the plugin’s settings helper. |
15.3 Configuration filter example
add_filter( 'gptn_config', function ( $config, $settings ) {
if ( is_singular( 'product' ) ) {
$config['messages'] = array(
'π Your product is waiting!',
'π Return when you are ready',
);
}
return $config;
}, 10, 2 );
15.4 Suppressing the reminder conditionally
add_filter( 'gptn_config', function ( $config, $settings ) {
if ( is_user_logged_in() ) {
return null;
}
return $config;
}, 10, 2 );
This example disables tab notifications for all logged-in users.
15.5 Configuration values
| Key | Description |
|---|---|
messages |
Array of reminder messages. |
mode |
alternate or replace. |
interval |
Flash interval in milliseconds. |
trigger |
hidden or blur. |
startDelay |
Starting delay in milliseconds. |
maxFlashes |
Maximum number of reminder displays before settling. |
counter |
Whether the title counter is enabled. |
favicon |
Whether the favicon badge is enabled. |
badgeColor |
Hex color used for the favicon badge. |
sessionCap |
Maximum number of departures handled during the browser-tab session. |
welcomeBack |
Whether the return greeting is enabled. |
welcomeMessage |
The title displayed when the visitor returns. |
welcomeSecs |
Welcome-message duration in milliseconds. |
15.6 Stored data
| Item | Type | Purpose |
|---|---|---|
gptn_settings |
WordPress option | Stores the complete plugin configuration. |
gptn_family_* |
WordPress transient | Caches the GoalPrevail WordPress.org plugin catalogue. |
gptnAwayCount |
Browser session storage | Stores the number of times the visitor left during the current tab session. |
No custom database tables or scheduled cron jobs are created.
15.7 Shortcodes
The plugin does not provide a shortcode. Its output affects the browser tab rather than inserting visible content into a page or post.
16. Troubleshooting
- The notification does not appear: Confirm that the master switch is enabled and that the current page matches the selected scope.
- It does not appear while I am testing: The reminder is hidden from logged-in administrators by default. Test in a private window or disable that option temporarily.
- It does not appear immediately: Check the Wait before starting setting.
- The title changes only once: Replace mode may be selected. Choose Flash mode to alternate between the reminder and original title.
- It stops flashing: Check the Stop after and Give up after limits.
- Rotating messages do not appear: Confirm that each message is on a separate line and that Flash mode is enabled.
- The wrong message appears on the cart: Cart and checkout pages use the dedicated Cart / checkout message when that field is not empty.
- The cart reminder appears on an empty cart: Select Cart & checkout only and enable Only when the cart actually has items.
- Cart targeting does not work: Confirm that WooCommerce is installed and active.
- A specific page does not match: Use the numeric page ID or enter the complete path beginning with a slash, such as
/pricing/. - The notification appears on an unwanted page: Add the page ID or path to Never show on these pages.
- The favicon badge is missing: A remotely hosted favicon may block canvas access. The title notification should continue to function.
- The favicon does not restore correctly: Check whether another plugin or theme is changing the favicon dynamically.
- The title behaves unpredictably: Disable other plugins that modify
document.titleand test again. - Clicking a payment field triggers the reminder: The plugin ignores iframe focus where possible, but test the checkout with the standard Tab switch or minimise trigger if a payment integration behaves differently.
- Audience targeting is inconsistent: Clear the page cache and ensure logged-in and logged-out visitors receive separate cached pages.
- Changes do not appear: Clear any WordPress cache, server cache, CDN cache and browser cache.
- The counter does not reset during navigation: This is expected. It persists for the current browser-tab session.
17. Privacy and security
- The plugin does not collect visitor accounts or personal information.
- No tracking cookies are created.
- No visitor analytics are recorded.
- No front-end request is sent to a third-party service.
- The notification counter is stored locally in the browser using session storage.
- The stored session value contains only a departure count.
- Messages and favicon badges are generated in the visitor’s browser.
- Administrative settings require the
manage_optionscapability. - AJAX settings requests use WordPress nonce verification.
- Saved settings are validated, sanitized and restricted to recognized values.
- Front-end configuration is encoded using WordPress JSON handling.
- The plugin does not read or modify WooCommerce order records.
17.1 WordPress.org administration request
When the shared GoalPrevail Plugins dashboard is opened, the plugin may query the official WordPress.org plugin API to list other plugins published by GoalPrevail.
- The request occurs only in the WordPress administration area.
- It is not made from customer-facing pages.
- The query uses the public WordPress.org author name.
- No customer or visitor information is included.
- A successful response is cached for up to 24 hours.
- An empty or unsuccessful result may be cached for up to two hours.
18. Uninstalling the plugin
- Deactivate the plugin to stop tab notifications.
- Delete it from the WordPress Plugins page when it is no longer required.
- The uninstall process removes the
gptn_settingsoption. - The cached GoalPrevail WordPress.org catalogue is also removed.
On WordPress Multisite, uninstall cleanup is performed for every site on which the plugin may have stored its settings.
The browser’s session counter expires independently with the visitor’s browser-tab session.
Deleting the plugin permanently removes its WordPress settings. Record any messages or configuration you may want to recreate before uninstalling it.
19. Support
For questions, support or feature requests, contact [email protected] or visit goalprevail.com.