{"id":314831,"date":"2026-06-08T05:42:48","date_gmt":"2026-06-08T05:42:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sales-automation-for-ecommerce-lite\/"},"modified":"2026-08-22T08:30:24","modified_gmt":"2026-08-22T08:30:24","slug":"cartcue-sales-automation","status":"publish","type":"plugin","link":"https:\/\/it.wordpress.org\/plugins\/cartcue-sales-automation\/","author":20447401,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.12","stable_tag":"1.0.12","tested":"7.0.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"CartCue \u2013 Abandoned Cart Recovery & Sales Automation for WooCommerce","header_author":"UserElements","header_description":"Simple ecommerce automations that take 2 minutes to launch. Set-and-forget automation for WooCommerce. Recover abandoned carts, welcome new customers, and win back lapsed buyers \u2014 no monthly SaaS fee, no data leaving your server.","assets_banners_color":"c4b4d9","last_updated":"2026-08-22 08:30:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.userelements.com\/cartcue-woocommerce-automation\/","header_author_uri":"https:\/\/userelements.com","rating":5,"author_block_rating":0,"active_installs":0,"downloads":518,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.10":{"tag":"1.0.10","author":"userelements","date":"2026-07-18 07:04:17"},"1.0.11":{"tag":"1.0.11","author":"userelements","date":"2026-08-20 13:40:46"},"1.0.12":{"tag":"1.0.12","author":"userelements","date":"2026-08-22 08:30:24"},"1.0.3":{"tag":"1.0.3","author":"userelements","date":"2026-06-08 05:42:09"},"1.0.4":{"tag":"1.0.4","author":"userelements","date":"2026-06-16 03:49:36"},"1.0.5":{"tag":"1.0.5","author":"userelements","date":"2026-06-19 06:45:45"},"1.0.6":{"tag":"1.0.6","author":"userelements","date":"2026-06-20 11:43:29"},"1.0.7":{"tag":"1.0.7","author":"userelements","date":"2026-06-24 07:46:21"},"1.0.8":{"tag":"1.0.8","author":"userelements","date":"2026-07-01 11:36:57"},"1.0.9":{"tag":"1.0.9","author":"userelements","date":"2026-07-17 01:39:53"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3564146,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3564146,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3564146,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.10","1.0.11","1.0.12","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3564146,"resolution":"1","location":"assets","locale":"","width":1248,"height":563},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3564146,"resolution":"2","location":"assets","locale":"","width":1305,"height":646},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3564146,"resolution":"3","location":"assets","locale":"","width":1126,"height":827},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3564146,"resolution":"4","location":"assets","locale":"","width":870,"height":641},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3564146,"resolution":"5","location":"assets","locale":"","width":1121,"height":780}},"screenshots":{"1":"<strong>Active plays dashboard<\/strong> - see all live automations with status, run count, and last activity at a glance.","2":"<strong>Abandoned cart recovery play<\/strong> - the abandoned cart recipe pre-configured and ready to activate.","3":"<strong>Play builder (wizard)<\/strong> - build automations in a guided 4-step flow: trigger, timing, email, and review.","4":"<strong>Trigger selection<\/strong> - choose from 10 free WooCommerce triggers including cart abandoned, order paid, win-back, and more.","5":"<strong>Email builder<\/strong> - write personalized emails using a visual block editor with variable chips and live preview."}},"plugin_section":[],"plugin_tags":[15962,11133,267318,286,26756],"plugin_category":[45],"plugin_contributors":[210940],"plugin_business_model":[],"class_list":["post-314831","plugin","type-plugin","status-publish","hentry","plugin_tags-abandoned-cart","plugin_tags-cart-recovery","plugin_tags-win-back","plugin_tags-woocommerce","plugin_tags-woocommerce-email","plugin_category-ecommerce","plugin_contributors-userelements","plugin_committers-userelements"],"banners":{"banner":"https:\/\/ps.w.org\/cartcue-sales-automation\/assets\/banner-772x250.png?rev=3564146","banner_2x":"https:\/\/ps.w.org\/cartcue-sales-automation\/assets\/banner-1544x500.png?rev=3564146","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cartcue-sales-automation\/assets\/icon-256x256.png?rev=3564146","icon_2x":"https:\/\/ps.w.org\/cartcue-sales-automation\/assets\/icon-256x256.png?rev=3564146","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cartcue-sales-automation\/assets\/screenshot-1.png?rev=3564146","caption":"<strong>Active plays dashboard<\/strong> - see all live automations with status, run count, and last activity at a glance."},{"src":"https:\/\/ps.w.org\/cartcue-sales-automation\/assets\/screenshot-2.png?rev=3564146","caption":"<strong>Abandoned cart recovery play<\/strong> - the abandoned cart recipe pre-configured and ready to activate."},{"src":"https:\/\/ps.w.org\/cartcue-sales-automation\/assets\/screenshot-3.png?rev=3564146","caption":"<strong>Play builder (wizard)<\/strong> - build automations in a guided 4-step flow: trigger, timing, email, and review."},{"src":"https:\/\/ps.w.org\/cartcue-sales-automation\/assets\/screenshot-4.png?rev=3564146","caption":"<strong>Trigger selection<\/strong> - choose from 10 free WooCommerce triggers including cart abandoned, order paid, win-back, and more."},{"src":"https:\/\/ps.w.org\/cartcue-sales-automation\/assets\/screenshot-5.png?rev=3564146","caption":"<strong>Email builder<\/strong> - write personalized emails using a visual block editor with variable chips and live preview."}],"raw_content":"<!--section=description-->\n<p><strong>CartCue<\/strong> helps WooCommerce stores recover revenue from lapsed customers and abandoned carts, entirely inside WordPress. No monthly SaaS fee, no customer data leaving your server.<\/p>\n\n<p>Most stores lose sales in two predictable places: shoppers who abandon checkout, and buyers who have not ordered in months. CartCue gives you both automated recovery and controlled win-back campaigns so you can win those customers back with personalised emails and WooCommerce coupons.<\/p>\n\n<h4>Win back lapsed customers (Pro)<\/h4>\n\n<p>CartCue Pro includes <strong>Campaigns<\/strong> - manual win-back campaigns you launch on your schedule:<\/p>\n\n<ul>\n<li>Target customers who have not ordered in 90, 120, or any number of days<\/li>\n<li>Generate a <strong>unique WooCommerce coupon<\/strong> per customer<\/li>\n<li>Reach <strong>registered buyers and imported guest customers<\/strong> in one segment<\/li>\n<li><strong>Send in batches<\/strong> (50, 100, \u2026) so you can monitor deliverability and results<\/li>\n<li><strong>Test on your own email<\/strong> before sending to customers<\/li>\n<li>Track <strong>recovered revenue<\/strong> per campaign<\/li>\n<\/ul>\n\n<p>Use the built-in <strong>Win-back coupon campaign<\/strong> template to get started in minutes.<\/p>\n\n<h4>Abandoned cart recovery (Free)<\/h4>\n\n<p>CartCue detects when a shopper enters their email at checkout and leaves before completing the order. It waits your chosen delay (10 minutes, 1 hour, or 1 day) and sends a personalised recovery email with cart contents, total, and a direct recovery link. You can include a coupon to bring them back.<\/p>\n\n<p>Works for registered customers and guest shoppers. No external account needed.<\/p>\n\n<h4>WooCommerce automation without the complexity<\/h4>\n\n<p>Every automation follows a plain-English flow:<\/p>\n\n<ol>\n<li><strong>Trigger:<\/strong> what WooCommerce event starts this?<\/li>\n<li><strong>Timing:<\/strong> how long to wait?<\/li>\n<li><strong>Conditions:<\/strong> who qualifies?<\/li>\n<li><strong>Action:<\/strong> send email, generate coupon, add order note, or change order status.<\/li>\n<\/ol>\n\n<p>No drag-and-drop canvas or 40-tab wizard. Most stores are running in under 5 minutes.<\/p>\n\n<h4>Automation triggers included free<\/h4>\n\n<ul>\n<li><strong>Cart Abandoned<\/strong> - recover carts from shoppers who entered their email and left<\/li>\n<li><strong>Checkout Started<\/strong> - catch shoppers who reached checkout but did not finish<\/li>\n<li><strong>Order Paid<\/strong> - post-purchase follow-ups, thank-you emails, review requests<\/li>\n<li><strong>Order Status Changed<\/strong> - trigger when orders move between WooCommerce statuses<\/li>\n<li><strong>Payment Failed<\/strong> - recovery reminder when payment fails<\/li>\n<li><strong>Order Refunded \/ Cancelled<\/strong> - follow up after refunds or cancellations<\/li>\n<li><strong>New Customer Created<\/strong> - welcome new registered customers<\/li>\n<li><strong>Customer Win-Back<\/strong> - daily automated re-engagement for inactive customers<\/li>\n<li><strong>Never Purchased<\/strong> - nudge registered users who signed up but never bought<\/li>\n<\/ul>\n\n<h4>Personalized WooCommerce emails<\/h4>\n\n<p>Built-in variables for customer name, order details, cart contents, coupon codes, store name, and recovery links. Sent through <code>wp_mail()<\/code>. Compatible with WP Mail SMTP, Post SMTP, and any SMTP plugin.<\/p>\n\n<p>Variable fallbacks prevent awkward blanks: <code>{{customer.first_name|there}}<\/code> outputs \"there\" when a guest has no stored name.<\/p>\n\n<h4>Audience conditions<\/h4>\n\n<ul>\n<li>Order total above or below a threshold<\/li>\n<li>Customer placing their first order<\/li>\n<li>Customer has ordered N or more times<\/li>\n<li>Days since last paid order<\/li>\n<li>Customer is registered or guest<\/li>\n<li>Customer has a specific WordPress role<\/li>\n<\/ul>\n\n<h4>Ready-made templates<\/h4>\n\n<ul>\n<li>Abandoned cart recovery (1-email and escalating sequences)<\/li>\n<li><strong>Win-back coupon campaign<\/strong> (Pro - manual batches with unique coupons)<\/li>\n<li>Post-purchase review request<\/li>\n<li>Automated win-back for inactive customers<\/li>\n<li>Welcome email with coupon for new customers<\/li>\n<li>Failed payment recovery<\/li>\n<\/ul>\n\n<h4>Reports and email tracking<\/h4>\n\n<ul>\n<li>Email open rate and click rate per automation<\/li>\n<li>Revenue attributed to each play (Pro)<\/li>\n<li>Activity log with success, skipped, and error status<\/li>\n<li>Execution history per customer<\/li>\n<\/ul>\n\n<h4>Why CartCue instead of a marketing SaaS?<\/h4>\n\n<p>Most abandoned cart and email tools are monthly subscriptions that send customer data to external servers. CartCue stores everything in your WordPress database.<\/p>\n\n<p><strong>CartCue Pro is a one-time purchase per site<\/strong>, not a monthly fee that scales with your revenue.<\/p>\n\n<h4>WooCommerce compatibility<\/h4>\n\n<ul>\n<li>WooCommerce High-Performance Order Storage (HPOS) compatible<\/li>\n<li>Works with WooCommerce Blocks checkout (for consent)<\/li>\n<li>Compatible with any SMTP or transactional email plugin<\/li>\n<li>Supports WooCommerce multi-currency<\/li>\n<\/ul>\n\n<h4>Free plan limits<\/h4>\n\n<ul>\n<li>Up to 5 active automation plays at a time<\/li>\n<li>2 timed follow-up steps per play<\/li>\n<li>All free triggers and actions listed above<\/li>\n<li>Reports, email tracking, and recipe templates included<\/li>\n<\/ul>\n\n<h4>CartCue Pro<\/h4>\n\n<p><a href=\"https:\/\/www.userelements.com\/cartcue-woocommerce-automation\/?utm_source=plugin&amp;utm_medium=readme&amp;utm_campaign=upgrade\">CartCue Pro<\/a> adds campaign mode and advanced automations for growing stores:<\/p>\n\n<p><strong>Campaigns (hero feature):<\/strong>\n* Manual win-back campaigns with unique coupon per customer\n* Staged batch sending (50, 100, \u2026) with test-email mode\n* Registered + imported guest segments (deduplicated)\n* Revenue attribution per campaign<\/p>\n\n<p><strong>Additional Pro triggers:<\/strong>\n* New Product Review\n* Low Stock Alert\n* Customer Birthday\n* WooCommerce Subscriptions (renewal, cancellation, pause, reactivation)\n* Manual Campaigns (send to a custom segment on demand)<\/p>\n\n<p><strong>Additional Pro actions:<\/strong>\n* Unique coupon generation per customer\n* SMS notifications via Twilio or Vonage\n* CRM sync - FluentCRM, Mailchimp, MailPoet, ActiveCampaign, Klaviyo\n* Outgoing webhooks (Zapier, n8n, Make)\n* Slack notification, trigger another play, change customer role, loyalty points<\/p>\n\n<p><strong>Pro also includes:<\/strong>\n* Unlimited follow-up sequence steps\n* Revenue attribution per play\n* CSV export of logs and customer data\n* Play import \/ export (JSON)<\/p>\n\n<h4>Learn more<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/www.userelements.com\/win-back-inactive-woocommerce-customers\/?utm_source=plugin&amp;utm_medium=readme&amp;utm_campaign=resources\">How to win back inactive WooCommerce customers<\/a><\/li>\n<li><a href=\"https:\/\/www.userelements.com\/woocommerce-review-request-automation\/?utm_source=plugin&amp;utm_medium=readme&amp;utm_campaign=resources\">How to automatically ask for a product review<\/a><\/li>\n<li><a href=\"https:\/\/www.userelements.com\/woocommerce-order-status-update-emails\/?utm_source=plugin&amp;utm_medium=readme&amp;utm_campaign=resources\">How to send WooCommerce order status update emails<\/a><\/li>\n<li><a href=\"https:\/\/www.userelements.com\/introducing-cartcue-woocommerce-sales-automation\/?utm_source=plugin&amp;utm_medium=readme&amp;utm_campaign=resources\">Introducing CartCue Pro<\/a><\/li>\n<li><a href=\"https:\/\/www.userelements.com\/list\/best-woocommerce-automation-plugins\/?utm_source=plugin&amp;utm_medium=readme&amp;utm_campaign=resources\">Best WooCommerce automation plugins compared<\/a><\/li>\n<\/ul>\n\n<p>Pro tutorials:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/www.userelements.com\/woocommerce-birthday-coupon-automation\/?utm_source=plugin&amp;utm_medium=readme&amp;utm_campaign=resources_pro\">Automatic birthday coupons in WooCommerce<\/a><\/li>\n<li><a href=\"https:\/\/www.userelements.com\/reward-vip-customers-woocommerce\/?utm_source=plugin&amp;utm_medium=readme&amp;utm_campaign=resources_pro\">Reward your top WooCommerce customers automatically<\/a><\/li>\n<li><a href=\"https:\/\/www.userelements.com\/woocommerce-crm-sync-mailchimp-fluentcrm-klaviyo\/?utm_source=plugin&amp;utm_medium=readme&amp;utm_campaign=resources_pro\">Sync WooCommerce customers to Mailchimp, FluentCRM, or Klaviyo<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress dashboard, go to <strong>Plugins \u2192 Add New<\/strong> and search for \"CartCue\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Go to <strong>CartCue<\/strong> in the admin sidebar.<\/li>\n<li>Click <strong>Browse Recipes<\/strong> to pick a ready-made automation - or <strong>Build from Scratch<\/strong> to start fresh.<\/li>\n<li>Activate your play.<\/li>\n<\/ol>\n\n<p><strong>Recommended first automation:<\/strong> The Abandoned Cart Recovery recipe. It runs hands-free once activated and is the fastest path to recovered revenue for most WooCommerce stores.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20cartcue%3F\"><h3>What is CartCue?<\/h3><\/dt>\n<dd><p>CartCue is a WooCommerce abandoned cart recovery and sales automation plugin. It lets you create automated plays triggered by WooCommerce events - abandoned carts, paid orders, failed payments, new customers, inactive customers, and more - and takes actions like sending a personalized email, generating a coupon, or changing an order status.<\/p><\/dd>\n<dt id=\"how%20does%20woocommerce%20abandoned%20cart%20recovery%20work%3F\"><h3>How does WooCommerce abandoned cart recovery work?<\/h3><\/dt>\n<dd><p>When a shopper enters their email address at checkout and leaves before completing the order, CartCue captures the cart and schedules a recovery email. You can send the email immediately or after a delay (e.g., 1 hour, 24 hours). The email includes the cart contents, total, and a one-click recovery link that restores their cart automatically.<\/p><\/dd>\n<dt id=\"does%20abandoned%20cart%20recovery%20work%20for%20guests%3F\"><h3>Does abandoned cart recovery work for guests?<\/h3><\/dt>\n<dd><p>Yes. CartCue recovers guest carts as long as the shopper has entered their email address at checkout. You can also configure plays to send only to registered customers if you prefer.<\/p><\/dd>\n<dt id=\"does%20cartcue%20require%20a%20monthly%20subscription%3F\"><h3>Does CartCue require a monthly subscription?<\/h3><\/dt>\n<dd><p>No. The free version is fully functional with no subscription or credit card required. CartCue Pro is a per-site purchase, not a monthly recurring fee that scales with your revenue or contact count.<\/p><\/dd>\n<dt id=\"will%20cartcue%20work%20with%20my%20smtp%20or%20transactional%20email%20plugin%3F\"><h3>Will CartCue work with my SMTP or transactional email plugin?<\/h3><\/dt>\n<dd><p>Yes. CartCue sends email through <code>wp_mail()<\/code>, the standard WordPress email function. It is compatible with WP Mail SMTP, Postmark, Mailgun, SendGrid, FluentSMTP, and any other SMTP or transactional email plugin.<\/p><\/dd>\n<dt id=\"is%20cartcue%20compatible%20with%20woocommerce%20hpos%3F\"><h3>Is CartCue compatible with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. CartCue is fully compatible with WooCommerce High-Performance Order Storage (HPOS \/ custom order tables).<\/p><\/dd>\n<dt id=\"can%20i%20send%20personalized%20woocommerce%20emails%20with%20customer%20and%20order%20data%3F\"><h3>Can I send personalized WooCommerce emails with customer and order data?<\/h3><\/dt>\n<dd><p>Yes. CartCue emails support variables for customer first name, last name, email, order number, order total, order items, product review URL (<code>{{order.review_url}}<\/code>), cart total, cart recovery link, coupon code, store name, and store URL. You can use fallback values for missing data - for example <code>{{customer.first_name|there}}<\/code> outputs \"there\" for guests with no stored name.<\/p><\/dd>\n<dt id=\"can%20i%20create%20and%20send%20coupon%20codes%20automatically%3F\"><h3>Can I create and send coupon codes automatically?<\/h3><\/dt>\n<dd><p>Yes. The free version includes a Create Coupon action that creates a coupon with your chosen discount and inserts it into the email. For a unique, one-time coupon code generated per customer, upgrade to CartCue Pro.<\/p><\/dd>\n<dt id=\"how%20is%20cartcue%20different%20from%20funnelkit%20automations%20or%20automatewoo%3F\"><h3>How is CartCue different from FunnelKit Automations or AutomateWoo?<\/h3><\/dt>\n<dd><p>CartCue is lighter, faster to set up, and does not require an external CRM account or a monthly subscription. It is focused on WooCommerce-native automations that store owners need most: abandoned cart recovery, win-back, post-purchase follow-ups, and payment recovery. Advanced marketing CRM features are not included by design.<\/p><\/dd>\n<dt id=\"can%20i%20build%20a%20follow-up%20sequence%20-%20multiple%20emails%20over%20several%20days%3F\"><h3>Can I build a follow-up sequence - multiple emails over several days?<\/h3><\/dt>\n<dd><p>Yes. Each CartCue play supports follow-up steps with individual time delays. The free version includes up to 2 follow-up steps per play. CartCue Pro supports unlimited steps.<\/p><\/dd>\n<dt id=\"does%20cartcue%20track%20email%20opens%20and%20clicks%3F\"><h3>Does CartCue track email opens and clicks?<\/h3><\/dt>\n<dd><p>Yes. CartCue embeds a tracking pixel for opens and wraps links for click tracking. Open rate, click rate, and per-play performance are visible in the Reports dashboard.<\/p><\/dd>\n<dt id=\"can%20i%20use%20cartcue%20to%20send%20win-back%20emails%20to%20inactive%20customers%3F\"><h3>Can I use CartCue to send win-back emails to inactive customers?<\/h3><\/dt>\n<dd><p>Yes. The free <strong>Customer Win-Back<\/strong> trigger runs daily for customers who have not placed a paid order in a set number of days. For controlled batch campaigns with a unique coupon per customer - send 50 at a time, test on your own email first - upgrade to <strong>CartCue Pro Campaigns<\/strong> and use the Win-back coupon campaign template.<\/p><\/dd>\n<dt id=\"does%20cartcue%20store%20customer%20data%20on%20my%20server%3F\"><h3>Does CartCue store customer data on my server?<\/h3><\/dt>\n<dd><p>Yes. All automation logs, cart data, email tracking, and customer consent records are stored in your WordPress database. No customer data is sent to CartCue or any external server.<\/p><\/dd>\n<dt id=\"is%20cartcue%20compatible%20with%20woocommerce%20subscriptions%3F\"><h3>Is CartCue compatible with WooCommerce Subscriptions?<\/h3><\/dt>\n<dd><p>The free version works with standard WooCommerce orders. CartCue Pro adds dedicated triggers for WooCommerce Subscriptions renewal, cancellation, pause, and reactivation events.<\/p><\/dd>\n<dt id=\"can%20i%20export%20activity%20logs%20or%20customer%20data%3F\"><h3>Can I export activity logs or customer data?<\/h3><\/dt>\n<dd><p>Log export (CSV) is available in CartCue Pro. The free version provides in-dashboard reporting with the activity log view.<\/p><\/dd>\n<dt id=\"what%20woocommerce%20version%20does%20cartcue%20require%3F\"><h3>What WooCommerce version does CartCue require?<\/h3><\/dt>\n<dd><p>CartCue requires WooCommerce 8.0 or higher. It has been tested up to WooCommerce 9.9.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>New: {{order.review_url}} merge tag \u2014 links to the WooCommerce reviews section for the first product in the order (also {{order.product_url}} and {{order.review_links}} for multi-product orders).<\/li>\n<li>Improved: Button Link URL personalization now includes Order tags (review_url, product_url, etc.), not only Cart and Shop.<\/li>\n<li>Improved: Ask for a review template uses {{order.review_url}} instead of the shop homepage.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Fixed: Global Styles brand\/header color now applies to the purple header bar on sent emails and test emails (previously only the builder preview used it).<\/li>\n<li>Improved: Global Styles label renamed to \"Brand \/ header color\" to make the setting clearer.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Fixed: Contacts page now includes registered WooCommerce customers (WP_User_Query fields returned stdClass objects that were skipped).<\/li>\n<li>Fixed: Paid order status queries no longer use array_keys(wc_get_is_paid_statuses()), which produced numeric indexes instead of status slugs.<\/li>\n<li>Fixed: Product, category, and tag purchase triggers now fire only the matching automation instead of every workflow on that trigger.<\/li>\n<li>Fixed: Customer Has Never Purchased and Win-Back daily jobs paginate past already-contacted or ineligible customers.<\/li>\n<li>Fixed: Campaign \"purchased\" \/ \"never purchased\" segments use paid order statuses; inactive 30\/60-day segments query last paid order dates instead of missing _wc_last_order_date meta.<\/li>\n<li>Fixed: Plugin deactivation and uninstall unschedules all CartCue Action Scheduler hooks (including jobs with arguments).<\/li>\n<li>Fixed: Condition rules fail closed when required context or configuration is missing.<\/li>\n<li>Improved: Contacts table is horizontally scrollable and uses a stacked card layout on narrow screens.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>New: Win-back coupon campaign template (Pro) - preview on Templates \u2192 Campaigns; manual trigger with unique coupon + email and Days Since Last Order &gt; 120 rule.<\/li>\n<li>New: Campaigns admin menu item with Pro upsell page explaining win-back batch campaigns, unique coupons, and guest + registered segments.<\/li>\n<li>New: Contacts admin page - search marketing contacts (registered + guests), add addresses, and manually unsubscribe or reactivate. Suppression survives guest re-import and does not affect WooCommerce transactional emails.<\/li>\n<li>Improved: Admin menu reordered - Campaigns second (Automations \u2192 Campaigns \u2192 Reports \u2192 Templates \u2192 Settings).<\/li>\n<li>Improved: Templates tab renamed One-time blast \u2192 Campaigns; campaign templates filtered to manual-trigger recipes with featured win-back quick-start.<\/li>\n<li>Improved: New automation type picker uses Campaign wording with win-back example; Pro template cards show a Pro badge when applicable.<\/li>\n<li>Improved: WordPress.org description rewritten - leads with win-back campaigns and abandoned cart recovery instead of generic autopilot copy.<\/li>\n<li>Improved: Plugin header description updated to match.<\/li>\n<li>Improved: Customer unsubscribe and admin suppress also clear registered-user consent meta for consistent status.<\/li>\n<li>Improved: Reports \u2192 Unsubscribe Reasons links to Contacts for manual management.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Improved: Send Now segment preview shows eligible count when an automation is selected (e.g. \"120 in segment, 45 eligible for this automation, 20 will be sent (limit)\") (Pro).<\/li>\n<li>Fixed: Send Now Limit now counts recipients who pass automation rules and frequency guards (not just the first N raw segment candidates) - staged batches (e.g. 50 or 100 at a time) send the requested number when enough eligible customers exist, and repeated runs advance to the next eligible recipients instead of re-scanning the same raw slice (Pro).<\/li>\n<li>Fixed: \"All registered customers\" segment no longer includes administrator accounts (aligned with Role: Customer segment).<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Fixed: \"Wait before this step\" values now persist correctly - the unified editor no longer overwrites saved per-action delays with hardcoded defaults on page load.<\/li>\n<li>Fixed: \"Send test\" button now fires the test AJAX request - <code>apCollectInlineActions<\/code> is exposed globally and the email builder syncs before collecting inline actions for the test payload.<\/li>\n<li>Fixed: shared coupon action now uses slug <code>create_shared_coupon<\/code>, separate from the Pro unique-coupon action (<code>create_coupon<\/code>), preventing schema collisions when license state changes; legacy saves with <code>create_coupon<\/code> still resolve correctly.<\/li>\n<li>Fixed: plain-text email bodies no longer apply a redundant <code>wp_unslash()<\/code> that could strip intentional backslashes.<\/li>\n<li>Fixed: Send Now segment preview count now respects the Limit field and shows \"X matching, Y will be sent\" when a cap applies (Pro).<\/li>\n<li>Fixed: \"Days Since Last Order\" rule now counts only paid orders for registered customers, matching the guest billing-email lookup.<\/li>\n<li>Fixed: email click-tracking links (<code>\/cartcue-track\/click\/<\/code>) returning 404 when rewrite rules were stale after install or update - rules now register before flush on activation, auto-flush on frontend loads via a versioned option, and a URI fallback handler records clicks even before rewrites refresh.<\/li>\n<li>Fixed: historical guest import and consent migration could overwrite a previous unsubscribe (<code>status = 0<\/code>) back to opted-in - <code>grant()<\/code> now blocks historical\/migration sources from resurrecting suppressed addresses; checkout opt-in can still restore consent.<\/li>\n<li>Fixed: duplicate <code>id=\"ap-test-btn\"<\/code> in the unified play editor - header and live-preview send buttons no longer collide; test-send handlers use a shared class.<\/li>\n<li>Fixed: loading an email preset in the visual builder no longer throws a <code>renderStylesPanel<\/code> reference error.<\/li>\n<li>Fixed: plays list overflow (\u22ef) menu now toggles closed on a second click instead of immediately reopening.<\/li>\n<li>Fixed: unified play editor no longer runs competing audience-count requests from <code>admin.js<\/code> and <code>audience-estimate.js<\/code> on the same container.<\/li>\n<li>Fixed: unified play editor timing and frequency pill clicks no longer fire duplicate handlers from legacy <code>admin.js<\/code> bindings.<\/li>\n<li>Improved: Send Now success message clarifies that automation rules are evaluated when the queued run executes (Pro).<\/li>\n<li>New: \"Customer email\" automation rule - equals, contains, or does not equal.<\/li>\n<li>New: Send Now - optional \"Send only to these test emails\" field to queue a campaign only to specified addresses within the selected segment (Pro).<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>New: Settings \u2192 SMS &amp; WhatsApp tab - configure Twilio and Vonage credentials (Pro required to send; credentials can be saved on Free). Auth tokens\/secrets are preserved when left blank on save.<\/li>\n<li>New: SMS test delivery on the SMS settings tab - verify Twilio or Vonage credentials with a test message.<\/li>\n<li>New: Custom email wrapper in Settings \u2192 Advanced - optional HTML shell with {{BODY}} for all CartCue outbound emails.<\/li>\n<li>Improved: Customer Win-Back trigger finds all customers inactive at least N days (not just a \u00b112h window), skips those already recorded in play_runs for the workflow, and supports batch limits via filter.<\/li>\n<li>Improved: Reports overview - clearer revenue labelling, stat card sublabels, open-rate empty state, chart polish, and per-play links; CSV export button links to Pro upgrade on Free.<\/li>\n<li>Improved: Reports \u2192 Activity Log - compact filter toolbar and fixed-width date inputs.<\/li>\n<li>Improved: Settings layout - tab navigation (General, SMS &amp; WhatsApp), grouped compliance fields, and consistent input sizing; removed dead ?tab=integrations and ?tab=advanced routes.<\/li>\n<li>Fixed: Reports tab header no longer shows a vertical scrollbar on narrow layouts.<\/li>\n<li>Fixed: visual email builder now persists sidebar edits (text, button, colours) to the hidden body field - <code>updateBlockPreview()<\/code> was targeting the removed card layout and skipped <code>persist()<\/code> on most edits.<\/li>\n<li>Fixed: builder sync runs in the submit capture phase and on submit-button click so the latest canvas state is posted even when other handlers run first.<\/li>\n<li>Fixed: email body save no longer double-applies <code>wp_unslash()<\/code> after the actions array is already unslashed; corrupted builder JSON now shows an admin error instead of silently saving empty content.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fixed: fatal error when saving or activating automations (missing SequenceBuilder and PlayLabels imports in the admin save handler).<\/li>\n<li>Fixed: one-time blast (manual campaign) now sets and saves Manual \/ Campaign correctly when CartCue Pro is active - dedicated editor UI, hidden trigger input, and server-side enforcement.<\/li>\n<li>Fixed: audience preview for one-time blasts includes registered customers and imported guest emails; audience filter changes update the match count (Pro).<\/li>\n<li>Guest import: campaign segment layer recognizes imported guest emails (Pro).<\/li>\n<li>UX: \"New automation\" opens the type picker (Triggered vs One-time blast) instead of jumping straight to Templates.<\/li>\n<li>Fixed: manual campaign editor fatal error (missing play-edit.php) - campaigns now use the unified play editor.<\/li>\n<li>Fixed: database errors for missing ap_carts triggered_at and lost_at columns on existing installs (schema upgrade runs on every load).<\/li>\n<li>Play editor: styled \u201cSee all tags\u201d expand control to match CartCue buttons.<\/li>\n<li>Settings: Save settings button now uses the same CartCue primary button style as the rest of the admin.<\/li>\n<li>New: block (Store API) checkout now captures guest emails for Cart Abandoned and Checkout Started recovery - previously only the classic shortcode checkout was supported. Capture runs server-side and respects the cart-tracking consent setting.<\/li>\n<li>Fixed: minimum cart total and cart-total trigger conditions now use a precise numeric amount, fixing incorrect matching on stores that use comma decimals or thousands separators.<\/li>\n<li>Fixed: completing an order after reaching checkout now cancels the queued \"you didn't finish checkout\" follow-up (carts in the checkout-started state are marked purchased).<\/li>\n<li>Improved: revenue attribution no longer credits transactional emails (order paid, payment failed, status change, refund\/cancel, review request) and requires an open or click by default (Pro). New filters: cartcue_non_attributable_triggers and cartcue_attribution_require_engagement.<\/li>\n<li>Fixed: multi-step manual campaign sequences no longer default to a 1-day delay between steps - subsequent steps run immediately unless a delay is explicitly configured.<\/li>\n<li>Fixed: \"Days Since Last Order\" audience filter now checks the customer's billing email in addition to their customer ID, so orders placed as a guest before registering are counted correctly.<\/li>\n<li>Fixed: email body content in the visual builder is now reliably included on save - the builder syncs its canvas state to the hidden textarea immediately before the form is posted.<\/li>\n<li>Fixed: TinyMCE no longer initialises on email-builder-controlled textareas, preventing raw builder JSON from appearing in the classic editor fallback.<\/li>\n<li>Fixed: \"Send test\" emails now bypass marketing-consent and unsubscribe checks so the admin address always receives the test message.<\/li>\n<li>Fixed: \"Send test\" now uses the live editor content rather than the last-saved database state, so unsaved changes are reflected in the test send.<\/li>\n<li>New: \"All eligible customers - registered + imported guests\" campaign segment combines and deduplicates registered customers and imported guest contacts by email address (registered account takes priority when the same email appears in both groups).<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Unified play editor: multi-step follow-ups now save correctly with per-action wait fields (fixes recipes losing sequence timing on save).<\/li>\n<li>Unified editor: trigger search, conditional trigger settings (description + show\/hide dependencies), and categorized action inserter groups.<\/li>\n<li>Removed legacy play editor and unused stepper\/timeline assets; all event automations use the unified editor.<\/li>\n<li>Play labels: comma-separated tags in Advanced settings, label chips on the automations list, and label filter in the toolbar.<\/li>\n<li>Cart abandoned trigger: priority field (one play per cart when multiple match) plus minimum cart total and required product ID filters with quick preset chips.<\/li>\n<li>Extended initial wait modes: send at a specific store time (optional weekdays) or until a chosen date\/time.<\/li>\n<li>Reports: per-play report page with step performance chart and recent customer activity; Steps link in the performance table.<\/li>\n<li>Reports overview: \u201cRevenue recovered\u201d hero stat with watching-state copy when attribution is still $0.<\/li>\n<li>Automations list: in-progress badge for plays with pending scheduled follow-up jobs; live status strip (carts seen today, recovery emails queued, recovered today).<\/li>\n<li>Performance: WooCommerce trigger hooks register only for triggers used by active plays (cart tracking always stays on).<\/li>\n<li>Onboarding: first-run wizard collapsed to one screen - pick a goal and activate in a single click.<\/li>\n<li>Empty state &amp; templates: one-click \u201cTurn on Abandoned Cart Recovery\u201d creates, activates, and opens the play report.<\/li>\n<li>Templates: 8 featured recipes up front; remaining templates under a collapsed \u201cMore templates\u201d section.<\/li>\n<li>Free admin menu streamlined - Send Now and Integrations removed (upsell rows on Templates and Settings instead).<\/li>\n<li>Free editor: Pro ghost inserter curated to 5 high-intent teasers (SMS, CRM sync, Subscriptions, Birthday, Webhook).<\/li>\n<li>Settings: global limits, quiet hours, non-production safety, and guest import moved into a closed Advanced accordion; JSON import is Pro-only.<\/li>\n<li>Settings: deliverability pre-flight - \u201cSending as \u2026\u201d with inline send test next to From email.<\/li>\n<li>Review prompt: one-time wp.org review ask after the first real email send or recovered order (dismissible).<\/li>\n<li>Metadata: keyword-rich plugin title, tags, and short description for WordPress.org search.<\/li>\n<li>Requires WooCommerce 8.0 or higher (tested up to 9.9).<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Release<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Free plan: up to 5 active plays at a time (unlimited paused plays); Pro has unlimited active plays.<\/li>\n<li>Merged execution logs into Reports (Overview and Logs tabs); the legacy Logs menu URL now redirects automatically.<\/li>\n<li>Added guided 4-step wizard for new plays: Trigger \u2192 Timing \u2192 Message \u2192 Review.<\/li>\n<li>Added variable fallback syntax: <code>{{customer.first_name|there}}<\/code> outputs fallback when variable is empty.<\/li>\n<li>Added frequency limit pill controls (every time \/ once per customer \/ cooldown period).<\/li>\n<li>Improved story bar: clicking any colored step jumps directly to that section.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed plugin name collision on activation.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release - WooCommerce abandoned cart recovery, win-back emails, post-purchase automations, coupon generation, email tracking, and reports.<\/li>\n<\/ul>","raw_excerpt":"WooCommerce win-back campaigns and abandoned cart recovery with unique coupons and safe batch sending. No monthly SaaS fee.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/314831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=314831"}],"author":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/userelements"}],"wp:attachment":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=314831"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=314831"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=314831"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=314831"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=314831"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=314831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}