{"id":313778,"date":"2026-05-25T15:10:46","date_gmt":"2026-05-25T15:10:46","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tab-teaser\/"},"modified":"2026-05-25T15:10:34","modified_gmt":"2026-05-25T15:10:34","slug":"tab-teaser","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/tab-teaser\/","author":23111453,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Tab Teaser","header_author":"Josip Me\u0161trovi\u0107","header_description":"Re-engages visitors who switch browser tabs by changing the page title and favicon while the tab is inactive. Supports flashing animation, trigger delay, bundled SVG icons, custom media-library images, live preview, and rich page targeting.","assets_banners_color":"f6f8fc","last_updated":"2026-05-25 15:10:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/josipmestrovic\/tab-teaser","header_author_uri":"https:\/\/e-com.hr","rating":0,"author_block_rating":0,"active_installs":0,"downloads":26,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"jokster33","date":"2026-05-25 15:10:34"}},"upgrade_notice":{"1.0.0":"<p>First public release of Tab Teaser.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3548054,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3548054,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3548054,"resolution":"1","location":"assets","locale":"","width":1352,"height":715},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3548054,"resolution":"2","location":"assets","locale":"","width":961,"height":407},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3548054,"resolution":"3","location":"assets","locale":"","width":954,"height":671}},"screenshots":{"1":"The settings page with live preview pane.","2":"Bundled SVG favicon presets (tile picker).","3":"Targeting by URL pattern.","4":"Live \"Simulate Tab Switch\" preview."}},"plugin_section":[],"plugin_tags":[264201,984,307,3841,264345],"plugin_category":[50,55],"plugin_contributors":[264346],"plugin_business_model":[],"class_list":["post-313778","plugin","type-plugin","status-publish","hentry","plugin_tags-abandonment","plugin_tags-conversion","plugin_tags-engagement","plugin_tags-favicon","plugin_tags-tab-title","plugin_category-media","plugin_category-seo-and-marketing","plugin_contributors-jokster33","plugin_committers-jokster33"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tab-teaser\/assets\/icon-256x256.png?rev=3548054","icon_2x":"https:\/\/ps.w.org\/tab-teaser\/assets\/icon-256x256.png?rev=3548054","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tab-teaser\/assets\/screenshot-1.png?rev=3548054","caption":"The settings page with live preview pane."},{"src":"https:\/\/ps.w.org\/tab-teaser\/assets\/screenshot-2.png?rev=3548054","caption":"Bundled SVG favicon presets (tile picker)."},{"src":"https:\/\/ps.w.org\/tab-teaser\/assets\/screenshot-3.png?rev=3548054","caption":"Targeting by URL pattern."}],"raw_content":"<!--section=description-->\n<p><strong>Tab Teaser<\/strong> is a lightweight engagement plugin that pulls visitors back when they switch to another browser tab. The moment your tab loses focus, Tab Teaser swaps the page title (and optionally the favicon) to a custom, attention-grabbing message. When the visitor switches back, everything is restored instantly.<\/p>\n\n<p>It is especially effective on cart, checkout, signup, and long-form sales pages where every distracted visitor matters.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Custom inactive title<\/strong> \u2014 show any message (emoji supported) when the visitor leaves the tab.<\/li>\n<li><strong>Optional flashing animation<\/strong> \u2014 alternate between active and inactive titles to grab attention in a crowded tab bar.<\/li>\n<li><strong>Trigger delay<\/strong> \u2014 wait N seconds after the tab is hidden before swapping. Visitors who tab back in time never see the change.<\/li>\n<li><strong>Bundled SVG favicons<\/strong> \u2014 three hand-crafted icons (Alert, Shopping Cart, Raised Hand) ship with the plugin. Crisp at every size, zero HTTP overhead.<\/li>\n<li><strong>Custom favicon upload<\/strong> \u2014 pick any image (PNG, JPG, ICO, SVG) from the WordPress Media Library.<\/li>\n<li><strong>Live preview<\/strong> \u2014 see exactly how your tab will look as you edit settings. Includes a \"Simulate Tab Switch\" button.<\/li>\n<li><strong>Rich page targeting<\/strong> \u2014 run on every page, on selected pages \/ posts \/ custom post types \/ taxonomy terms, or on URL patterns (<code>\/checkout\/*<\/code>). Independent <strong>exclude<\/strong> rules always win over includes.<\/li>\n<li><strong>No external requests<\/strong> \u2014 every asset is local. No tracking, no telemetry, no third-party scripts.<\/li>\n<li><strong>Accessible &amp; lightweight<\/strong> \u2014 vanilla JavaScript on the frontend, ~3 KB minified payload, no jQuery dependency.<\/li>\n<li><strong>Multisite-aware uninstall<\/strong> \u2014 every option is removed cleanly when the plugin is deleted.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>Tab Teaser does not collect, store, or transmit any visitor data. It does not make any external HTTP requests. It only reads the browser's standard <code>visibilitychange<\/code> event to decide when to swap the tab title and favicon.<\/p>\n\n<h4>Developer hooks<\/h4>\n\n<ul>\n<li><code>tab_teaser_should_load<\/code> (filter) \u2014 final boolean override before frontend assets are enqueued.<\/li>\n<li><code>tab_teaser_settings_defaults<\/code> (filter) \u2014 modify the default settings array.<\/li>\n<li><code>tab_teaser_localized_data<\/code> (filter) \u2014 modify the data passed to the frontend script.<\/li>\n<li><code>tab_teaser_bundled_presets<\/code> (filter) \u2014 register additional bundled favicon tiles.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Automatic<\/h4>\n\n<ol>\n<li>In your WordPress dashboard, go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for <strong>Tab Teaser<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Go to <strong>Tab Teaser<\/strong> in the admin sidebar to configure.<\/li>\n<\/ol>\n\n<h4>Manual<\/h4>\n\n<ol>\n<li>Download the plugin ZIP.<\/li>\n<li>Upload the unzipped <code>tab-teaser<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from <strong>Plugins<\/strong> in your WordPress admin.<\/li>\n<li>Go to <strong>Tab Teaser<\/strong> in the admin sidebar to configure.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>No. The frontend payload is a single ~3 KB vanilla JavaScript file, loaded only on pages that match your targeting rules. There are no external requests and no inline styles or scripts injected into the page.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The plugin's frontend logic runs entirely in the browser using JavaScript and the standard <code>visibilitychange<\/code> API, so it is unaffected by full-page caching, CDN caching, or static-site exporters.<\/p><\/dd>\n<dt id=\"does%20tab%20teaser%20track%20visitors%20or%20collect%20any%20data%3F\"><h3>Does Tab Teaser track visitors or collect any data?<\/h3><\/dt>\n<dd><p>No. The plugin does not collect, store, or transmit any visitor data. It does not make any external HTTP requests. See the Description section for the full privacy statement.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20mobile%20browsers%3F\"><h3>Does it work on mobile browsers?<\/h3><\/dt>\n<dd><p>Yes. The <code>visibilitychange<\/code> event is supported in every modern mobile browser, including iOS Safari (13+) and Android Chrome.<\/p><\/dd>\n<dt id=\"can%20i%20run%20it%20only%20on%20my%20checkout%20page%3F\"><h3>Can I run it only on my checkout page?<\/h3><\/dt>\n<dd><p>Yes. Switch the targeting mode to \"On selected content\" and pick the checkout page in the include list, or use \"On URLs that match patterns\" with <code>\/checkout\/*<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20exclude%20specific%20pages%3F\"><h3>Can I exclude specific pages?<\/h3><\/dt>\n<dd><p>Yes. The targeting card has independent \"Exclude\" lists for content, taxonomy terms, and URL patterns. Exclusions always win over includes.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20%2F%20easy%20digital%20downloads%20%2F%20membership%20plugins%3F\"><h3>Does it work with WooCommerce \/ Easy Digital Downloads \/ membership plugins?<\/h3><\/dt>\n<dd><p>Yes. Targeting works with any registered public post type or taxonomy, including WooCommerce products, EDD downloads, BBPress topics, etc. They appear automatically in the targeting selectors.<\/p><\/dd>\n<dt id=\"how%20do%20i%20localize%20%2F%20translate%20the%20plugin%3F\"><h3>How do I localize \/ translate the plugin?<\/h3><\/dt>\n<dd><p>The plugin uses the text-domain <code>tab-teaser<\/code>. Translations are loaded automatically from <code>\/wp-content\/languages\/plugins\/<\/code> if available.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"Re-engage visitors who switch browser tabs by changing the page title and favicon while the tab is inactive.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/313778","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=313778"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jokster33"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=313778"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=313778"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=313778"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=313778"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=313778"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=313778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}