CartCue – Abandoned Cart Recovery & Sales Automation for WooCommerce

Changelog

1.0.8

  • 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).
  • 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).
  • Fixed: “All registered customers” segment no longer includes administrator accounts (aligned with Role: Customer segment).

1.0.7

  • 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.
  • Fixed: “Send test” button now fires the test AJAX request — apCollectInlineActions is exposed globally and the email builder syncs before collecting inline actions for the test payload.
  • Fixed: shared coupon action now uses slug create_shared_coupon, separate from the Pro unique-coupon action (create_coupon), preventing schema collisions when license state changes; legacy saves with create_coupon still resolve correctly.
  • Fixed: plain-text email bodies no longer apply a redundant wp_unslash() that could strip intentional backslashes.
  • Fixed: Send Now segment preview count now respects the Limit field and shows “X matching, Y will be sent” when a cap applies (Pro).
  • Fixed: “Days Since Last Order” rule now counts only paid orders for registered customers, matching the guest billing-email lookup.
  • Fixed: email click-tracking links (/cartcue-track/click/) 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.
  • Fixed: historical guest import and consent migration could overwrite a previous unsubscribe (status = 0) back to opted-in — grant() now blocks historical/migration sources from resurrecting suppressed addresses; checkout opt-in can still restore consent.
  • Fixed: duplicate id=”ap-test-btn” in the unified play editor — header and live-preview send buttons no longer collide; test-send handlers use a shared class.
  • Fixed: loading an email preset in the visual builder no longer throws a renderStylesPanel reference error.
  • Fixed: plays list overflow (⋯) menu now toggles closed on a second click instead of immediately reopening.
  • Fixed: unified play editor no longer runs competing audience-count requests from admin.js and audience-estimate.js on the same container.
  • Fixed: unified play editor timing and frequency pill clicks no longer fire duplicate handlers from legacy admin.js bindings.
  • Improved: Send Now success message clarifies that automation rules are evaluated when the queued run executes (Pro).
  • New: “Customer email” automation rule — equals, contains, or does not equal.
  • New: Send Now — optional “Send only to these test emails” field to queue a campaign only to specified addresses within the selected segment (Pro).

1.0.6

  • Fixed: visual email builder now persists sidebar edits (text, button, colours) to the hidden body field — updateBlockPreview() was targeting the removed card layout and skipped persist() on most edits.
  • 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.
  • Fixed: email body save no longer double-applies wp_unslash() after the actions array is already unslashed; corrupted builder JSON now shows an admin error instead of silently saving empty content.
  • Improved: Customer Win-Back trigger finds all customers inactive at least N days (not just a ±12h window), skips those already recorded in play_runs for the workflow, and supports batch limits via filter.
  • New: Settings → SMS & 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.
  • New: SMS test delivery on the SMS settings tab — verify Twilio or Vonage credentials with a test message.
  • New: Custom email wrapper in Settings → Advanced — optional HTML shell with {{BODY}} for all CartCue outbound emails.
  • 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.
  • Improved: Reports → Activity Log — compact filter toolbar and fixed-width date inputs.
  • Improved: Settings layout — tab navigation (General, SMS & WhatsApp), grouped compliance fields, and consistent input sizing; removed dead ?tab=integrations and ?tab=advanced routes.
  • Fixed: Reports tab header no longer shows a vertical scrollbar on narrow layouts.

1.0.5

  • Fixed: fatal error when saving or activating automations (missing SequenceBuilder and PlayLabels imports in the admin save handler).
  • 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.
  • Fixed: audience preview for one-time blasts includes registered customers and imported guest emails; audience filter changes update the match count (Pro).
  • Guest import: campaign segment layer recognizes imported guest emails (Pro).
  • UX: “New automation” opens the type picker (Triggered vs One-time blast) instead of jumping straight to Templates.
  • Fixed: manual campaign editor fatal error (missing play-edit.php) — campaigns now use the unified play editor.
  • Fixed: database errors for missing ap_carts triggered_at and lost_at columns on existing installs (schema upgrade runs on every load).
  • Play editor: styled “See all tags” expand control to match CartCue buttons.
  • Settings: Save settings button now uses the same CartCue primary button style as the rest of the admin.
  • 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.
  • 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.
  • 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).
  • 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.
  • 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.
  • 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.
  • 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.
  • Fixed: TinyMCE no longer initialises on email-builder-controlled textareas, preventing raw builder JSON from appearing in the classic editor fallback.
  • Fixed: “Send test” emails now bypass marketing-consent and unsubscribe checks so the admin address always receives the test message.
  • 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.
  • 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).

1.0.4

  • Unified play editor: multi-step follow-ups now save correctly with per-action wait fields (fixes recipes losing sequence timing on save).
  • Unified editor: trigger search, conditional trigger settings (description + show/hide dependencies), and categorized action inserter groups.
  • Removed legacy play editor and unused stepper/timeline assets; all event automations use the unified editor.
  • Play labels: comma-separated tags in Advanced settings, label chips on the automations list, and label filter in the toolbar.
  • 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.
  • Extended initial wait modes: send at a specific store time (optional weekdays) or until a chosen date/time.
  • Reports: per-play report page with step performance chart and recent customer activity; Steps link in the performance table.
  • Reports overview: “Revenue recovered” hero stat with watching-state copy when attribution is still $0.
  • Automations list: in-progress badge for plays with pending scheduled follow-up jobs; live status strip (carts seen today, recovery emails queued, recovered today).
  • Performance: WooCommerce trigger hooks register only for triggers used by active plays (cart tracking always stays on).
  • Onboarding: first-run wizard collapsed to one screen — pick a goal and activate in a single click.
  • Empty state & templates: one-click “Turn on Abandoned Cart Recovery” creates, activates, and opens the play report.
  • Templates: 8 featured recipes up front; remaining templates under a collapsed “More templates” section.
  • Free admin menu streamlined — Send Now and Integrations removed (upsell rows on Templates and Settings instead).
  • Free editor: Pro ghost inserter curated to 5 high-intent teasers (SMS, CRM sync, Subscriptions, Birthday, Webhook).
  • Settings: global limits, quiet hours, non-production safety, and guest import moved into a closed Advanced accordion; JSON import is Pro-only.
  • Settings: deliverability pre-flight — “Sending as …” with inline send test next to From email.
  • Review prompt: one-time wp.org review ask after the first real email send or recovered order (dismissible).
  • Metadata: keyword-rich plugin title, tags, and short description for WordPress.org search.
  • Requires WooCommerce 8.0 or higher (tested up to 9.9).

1.0.3

  • Release

1.0.2

  • Free plan: up to 5 active plays at a time (unlimited paused plays); Pro has unlimited active plays.
  • Merged execution logs into Reports (Overview and Logs tabs); the legacy Logs menu URL now redirects automatically.
  • Added guided 4-step wizard for new plays: Trigger → Timing → Message → Review.
  • Added variable fallback syntax: {{customer.first_name|there}} outputs fallback when variable is empty.
  • Added frequency limit pill controls (every time / once per customer / cooldown period).
  • Improved story bar: clicking any colored step jumps directly to that section.

1.0.1

  • Fixed plugin name collision on activation.

1.0.0

  • Initial release — WooCommerce abandoned cart recovery, win-back emails, post-purchase automations, coupon generation, email tracking, and reports.

Plugin Website
Visit website

Author
UserElements
Version:
1.0.8
Last Updated
July 1, 2026
Requires
WordPress 6.2
Tested Up To
WordPress 7.0
Requires PHP
7.4

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.