{"id":288013,"date":"2026-03-17T00:04:17","date_gmt":"2026-03-17T00:04:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/abovewp-add-to-cart-upsell-popup\/"},"modified":"2026-03-17T00:04:09","modified_gmt":"2026-03-17T00:04:09","slug":"abovewp-add-to-cart-upsell-popup","status":"publish","type":"plugin","link":"https:\/\/pl.wordpress.org\/plugins\/abovewp-add-to-cart-upsell-popup\/","author":23269463,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"AboveWP Add To Cart Upsell Popup","header_author":"AboveWP","header_description":"Shows a popup after add to cart with upsell products to be added to cart additionally.","assets_banners_color":"","last_updated":"2026-03-17 00:04:09","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/abovewp.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":277,"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":"wpabove","date":"2026-03-17 00:04:09"}},"upgrade_notice":{"1.0.1":"<p>Major compatibility update! Now works with any WordPress theme. Includes 5 different add-to-cart detection methods, better caching support, and enhanced mobile experience.<\/p>","1.0.0":"<p>Initial release of the plugin.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3484346,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3484346,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3484348,"resolution":"1","location":"assets","locale":"","width":2778,"height":1350}},"screenshots":{"1":"Plugin settings page - Configure upsell sources and customization options","2":"Popup example - Beautiful upsell popup with product suggestions","3":"Mobile responsive design - Optimized for all devices","4":"Color customization options - Match your brand colors"}},"plugin_section":[],"plugin_tags":[3175,13788,491,1311,286],"plugin_category":[45],"plugin_contributors":[241167,241166],"plugin_business_model":[],"class_list":["post-288013","plugin","type-plugin","status-publish","hentry","plugin_tags-add-to-cart","plugin_tags-cross-sell","plugin_tags-popup","plugin_tags-upsell","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-pdpetrov98","plugin_contributors-wpabove","plugin_committers-wpabove"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/abovewp-add-to-cart-upsell-popup\/assets\/icon-128x128.png?rev=3484346","icon_2x":"https:\/\/ps.w.org\/abovewp-add-to-cart-upsell-popup\/assets\/icon-256x256.png?rev=3484346","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/abovewp-add-to-cart-upsell-popup\/assets\/screenshot-1.png?rev=3484348","caption":"Plugin settings page - Configure upsell sources and customization options"}],"raw_content":"<!--section=description-->\n<p><strong>AboveWP Add To Cart Upsell Popup<\/strong> is a powerful WordPress plugin that displays upsell products in a beautiful popup after customers add items to their cart. <strong>Now enhanced for universal theme compatibility!<\/strong><\/p>\n\n<h4>\u2728 Key Features<\/h4>\n\n<ul>\n<li><strong>Universal Theme Compatibility<\/strong>: Works with any WordPress theme, including custom themes, Elementor, and page builders<\/li>\n<li><strong>Multiple Add-to-Cart Detection Methods<\/strong>: Supports both AJAX and non-AJAX add-to-cart scenarios<\/li>\n<li><strong>Flexible Upsell Sources<\/strong>: Choose from WooCommerce upsells, global products, or category-based upsells<\/li>\n<li><strong>Responsive Design<\/strong>: Optimized for all devices and screen sizes<\/li>\n<li><strong>Customizable Appearance<\/strong>: Colors, text, and button visibility options<\/li>\n<li><strong>Performance Optimized<\/strong>: Lightweight and cache-friendly<\/li>\n<li><strong>Accessibility Ready<\/strong>: WCAG compliant with keyboard navigation and screen reader support<\/li>\n<\/ul>\n\n<h4>\ud83d\udd27 Enhanced Compatibility Features<\/h4>\n\n<p><strong>Add-to-Cart Detection<\/strong>\nThe plugin now uses <strong>5 different methods<\/strong> to detect add-to-cart actions:<\/p>\n\n<ol>\n<li><strong>WooCommerce AJAX Events<\/strong>: Standard <code>added_to_cart<\/code> event<\/li>\n<li><strong>Form Submission Monitoring<\/strong>: Detects non-AJAX form submissions<\/li>\n<li><strong>Universal Button Clicking<\/strong>: Monitors all types of add-to-cart buttons<\/li>\n<li><strong>URL Parameter Detection<\/strong>: Handles redirects with add-to-cart parameters<\/li>\n<li><strong>Success Message Detection<\/strong>: Detects WooCommerce success messages<\/li>\n<\/ol>\n\n<p><strong>Supported Add-to-Cart Button Types<\/strong>\n* Standard WooCommerce buttons (<code>.single_add_to_cart_button<\/code>, <code>.add_to_cart_button<\/code>)\n* AJAX buttons (<code>.ajax_add_to_cart<\/code>, <code>.product_type_simple<\/code>)\n* Custom theme buttons (<code>[name=\"add-to-cart\"]<\/code>, <code>.wc-add-to-cart<\/code>)\n* Page builder buttons (Elementor, Gutenberg blocks)\n* Custom implementations with data attributes<\/p>\n\n<p><strong>Theme Compatibility<\/strong>\n* \u2705 <strong>Storefront<\/strong>: Full compatibility (as before)\n* \u2705 <strong>Astra<\/strong>: Full compatibility\n* \u2705 <strong>GeneratePress<\/strong>: Full compatibility\n* \u2705 <strong>OceanWP<\/strong>: Full compatibility\n* \u2705 <strong>Divi<\/strong>: Full compatibility\n* \u2705 <strong>Elementor Pro<\/strong>: Full compatibility\n* \u2705 <strong>Custom Themes<\/strong>: Enhanced detection methods ensure compatibility<\/p>\n\n<h4>\ud83c\udfaf Upsell Sources<\/h4>\n\n<p><strong>1. WooCommerce Upsells<\/strong>\nUses the built-in WooCommerce upsells defined for each product.<\/p>\n\n<p><strong>2. Global Products<\/strong>\nDefine specific product IDs to show as upsells for all products.\nExample: 123, 456, 789<\/p>\n\n<p><strong>3. Category-based Upsells<\/strong>\nSet different upsell products for each product category.<\/p>\n\n<h4>\ud83c\udfa8 Customization Options<\/h4>\n\n<ul>\n<li><strong>Popup Title<\/strong>: Customize the header text<\/li>\n<li><strong>Success Message<\/strong>: Personalize the \"added to cart\" message<\/li>\n<li><strong>Button Text<\/strong>: Customize all button labels<\/li>\n<li><strong>Colors<\/strong>: Set colors for prices and buttons<\/li>\n<li><strong>Button Visibility<\/strong>: Show\/hide View Cart, Checkout, and Continue Shopping buttons<\/li>\n<\/ul>\n\n<h4>\ud83c\udf10 Browser Support<\/h4>\n\n<ul>\n<li>Chrome 70+<\/li>\n<li>Firefox 65+<\/li>\n<li>Safari 12+<\/li>\n<li>Edge 79+<\/li>\n<li>Internet Explorer 11 (limited support)<\/li>\n<\/ul>\n\n<h4>\u26a1 Performance Metrics<\/h4>\n\n<ul>\n<li><strong>JavaScript Bundle<\/strong>: ~15KB minified<\/li>\n<li><strong>CSS Bundle<\/strong>: ~5KB minified<\/li>\n<li><strong>Page Load Impact<\/strong>: &lt;100ms<\/li>\n<li><strong>Memory Usage<\/strong>: &lt;1MB\n<h3>External Services<\/h3>\nThis plugin loads the Inter font from Bunny Fonts (https:\/\/fonts.bunny.net) on the plugin's admin settings pages. This is used to style the plugin's administration interface. No user data is sent to this service; only a standard HTTP request is made to load the font CSS file. This request is only made when an admin user visits the plugin's settings pages.<\/li>\n<\/ul>\n\n<p>Bunny Fonts is a GDPR-compliant font delivery service provided by BunnyWay d.o.o.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/fonts.bunny.net\">Bunny Fonts<\/a><\/li>\n<li>Terms of Service: <a href=\"https:\/\/bunny.net\/tos\/\">https:\/\/bunny.net\/tos\/<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/bunny.net\/privacy\/\">https:\/\/bunny.net\/privacy\/<\/a><\/li>\n<\/ul>\n\n<h3>Developer Information<\/h3>\n\n<h4>Hooks and Filters<\/h4>\n\n<p><strong>Actions<\/strong>\n    \/\/ Before popup is shown\n    do_action('abovewp_atc_before_popup', $product_id, $upsell_data);<\/p>\n\n<pre><code>\/\/ After popup is shown\ndo_action('abovewp_atc_after_popup', $product_id, $upsell_data);\n<\/code><\/pre>\n\n<p><strong>Filters<\/strong>\n    \/\/ Modify upsell data\n    $upsell_data = apply_filters('abovewp_atc_upsell_data', $upsell_data, $product_id);<\/p>\n\n<pre><code>\/\/ Modify popup HTML\n$popup_html = apply_filters('abovewp_atc_popup_html', $popup_html, $upsell_data);\n\n\/\/ Add custom button selectors\n$selectors = apply_filters('abovewp_atc_button_selectors', $selectors);\n<\/code><\/pre>\n\n<h4>Custom Integration<\/h4>\n\n<pre><code>\/\/ Manually trigger popup with custom data\nif (typeof AtcPopupUpsell !== 'undefined') {\n    AtcPopupUpsell.showPopup({\n        added_product_name: 'Product Name',\n        upsell_products: [\n            {\n                id: 123,\n                name: 'Upsell Product',\n                price_html: '$19.99',\n                image: 'image-url.jpg'\n            }\n        ]\n    });\n}\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/abovewp-atc-popup-upsell\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Navigate to <strong>AboveWP &gt; ATC Upsell Popup<\/strong> to configure settings<\/li>\n<li>Configure your upsell products and customize the popup appearance<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"why%20is%20the%20popup%20not%20showing%3F\"><h3>Why is the popup not showing?<\/h3><\/dt>\n<dd><ol>\n<li><strong>Check Plugin Settings<\/strong>: Ensure the plugin is enabled in settings<\/li>\n<li><strong>Verify Upsell Products<\/strong>: Make sure upsell products are properly configured<\/li>\n<li><strong>Theme Conflicts<\/strong>: Check if your theme overrides WooCommerce functionality<\/li>\n<li><strong>Caching<\/strong>: Clear all caches (site, CDN, and browser)<\/li>\n<li><strong>JavaScript Errors<\/strong>: Check browser console for errors<\/li>\n<\/ol><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>Yes! The plugin is designed for universal theme compatibility. It works with:\n* All popular WordPress themes (Astra, GeneratePress, OceanWP, Divi, etc.)\n* Custom themes\n* Page builder themes (Elementor, Beaver Builder, etc.)\n* WooCommerce-specific themes<\/p><\/dd>\n<dt id=\"why%20does%20it%20work%20on%20some%20pages%20but%20not%20others%3F\"><h3>Why does it work on some pages but not others?<\/h3><\/dt>\n<dd><p>The plugin now loads on all pages with WooCommerce content. If you're using custom add-to-cart buttons, ensure they have proper data attributes. The plugin handles both AJAX and non-AJAX scenarios automatically.<\/p><\/dd>\n<dt id=\"how%20can%20i%20improve%20performance%3F\"><h3>How can I improve performance?<\/h3><\/dt>\n<dd><ol>\n<li><strong>Reduce Upsell Count<\/strong>: Display fewer upsell products<\/li>\n<li><strong>Optimize Images<\/strong>: Compress upsell product images<\/li>\n<li><strong>Use Caching<\/strong>: Implement a caching plugin for better performance<\/li>\n<\/ol><\/dd>\n<dt id=\"how%20do%20i%20enable%20debug%20mode%3F\"><h3>How do I enable debug mode?<\/h3><\/dt>\n<dd><p>Add this to your <code>wp-config.php<\/code> file:\n    define('WP_DEBUG', true);\n    define('WP_DEBUG_LOG', true);<\/p>\n\n<p>Then check the browser console for debug messages.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20custom%20add-to-cart%20buttons%3F\"><h3>How do I add custom add-to-cart buttons?<\/h3><\/dt>\n<dd><p>If your theme uses custom add-to-cart buttons, ensure they have one of these attributes:<\/p>\n\n<p><strong>Method 1: Product ID in value<\/strong>\n    Add to Cart<\/p>\n\n<p><strong>Method 2: Data attribute<\/strong>\n    Add to Cart<\/p>\n\n<p><strong>Method 3: URL parameter<\/strong>\n    <a href=\"?add-to-cart=123\">Add to Cart<\/a><\/p>\n\n<p><strong>Method 4: Within form<\/strong><\/p>\n\n\n        \n        Add to Cart\n    <\/dd>\n<dt id=\"can%20i%20customize%20the%20popup%20appearance%3F\"><h3>Can I customize the popup appearance?<\/h3><\/dt>\n<dd><p>Yes! The plugin offers extensive customization options:\n* Custom colors for prices and buttons\n* Customizable text and messages\n* Button visibility settings\n* Responsive design options<\/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 is designed to work with aggressive caching through:\n* Session-based fallbacks\n* Transient data storage\n* Browser storage integration\n* Enhanced detection methods<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1 - Enhanced Compatibility Update<\/h4>\n\n<ul>\n<li><strong>Added<\/strong>: 5 different add-to-cart detection methods<\/li>\n<li><strong>Added<\/strong>: Support for non-AJAX add-to-cart scenarios  <\/li>\n<li><strong>Added<\/strong>: Universal button selector system<\/li>\n<li><strong>Added<\/strong>: Enhanced page detection for page builders<\/li>\n<li><strong>Added<\/strong>: Improved session and transient handling<\/li>\n<li><strong>Added<\/strong>: Better caching compatibility<\/li>\n<li><strong>Improved<\/strong>: CSS with !important declarations for theme override protection<\/li>\n<li><strong>Improved<\/strong>: JavaScript error handling and fallbacks<\/li>\n<li><strong>Improved<\/strong>: Mobile responsiveness<\/li>\n<li><strong>Fixed<\/strong>: Product ID extraction from various button types<\/li>\n<li><strong>Fixed<\/strong>: Popup display on custom theme implementations<\/li>\n<\/ul>\n\n<h4>1.0.0 - Initial Release<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Basic AJAX add-to-cart support<\/li>\n<li>WooCommerce upsells integration<\/li>\n<li>Customizable popup design<\/li>\n<\/ul>","raw_excerpt":"Display upsell products in a popup after add-to-cart. Works with any theme.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/288013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=288013"}],"author":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpabove"}],"wp:attachment":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=288013"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=288013"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=288013"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=288013"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=288013"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=288013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}