Description
Most shoppers who fill a cart never reach the “thank you” page. This plugin records those carts, waits a configurable amount of time, and then emails the shopper a single link that puts every product straight back into their cart.
How it works
- A shopper adds products to the cart. Logged-in customers are recorded immediately; guests are recorded as soon as they type an email address at checkout (classic checkout and Checkout Blocks are both supported).
- After the configured period of inactivity (60 minutes by default) a background scan marks the cart as abandoned.
- A reminder email goes out after the delay you choose, carrying a personal recovery link.
- Clicking the link restores the cart and pre-fills the checkout with the address already known. The cart becomes recovered automatically once an order is placed by that customer.
Features
- Cart capture for logged-in customers and for guests who entered an email at checkout
- Configurable inactivity window before a cart counts as abandoned
- A reminder email with a fully editable subject and body
- Placeholders:
{customer_name},{cart_items},{recovery_link},{store_name} - One-time recovery links with a configurable lifetime (7 days by default) — only a SHA-256 hash of the token is ever stored
- Cart statuses: active abandoned recovered / lost, with automatic recovery detection when an order arrives
- Admin cart list with a status filter, email search and four statistic tiles: carts abandoned, carts recovered, revenue recovered and recovery rate
- Anti-spam guard: the same address is not emailed more often than once every N days
- Automatic data retention cleanup and integration with the WordPress personal data exporter and eraser
- HPOS (custom order tables) compatible, works with the block-based checkout
Everything runs on your own server. Reminders are sent through your site’s own wp_mail(), and the captured carts are stored in your own database — the plugin does not contact any external service.
Requirements
- WooCommerce 7.0 or newer
- PHP 7.4+
- Working WP-Cron (or a real system cron calling
wp-cron.php)
The plugin interface is fully translated into Ukrainian. / Інтерфейс плагіна повністю перекладено українською.
External services
This plugin does not connect to any external service. It makes no outbound HTTP requests of any kind: cart capture, the abandonment scan, the reminder email (sent through your site’s own wp_mail()) and the recovery link all run entirely on your own server, and no data ever leaves your site.
Privacy
This plugin stores personal data of shoppers who did not complete an order, because a reminder cannot be sent without it.
What is stored: the email address, the customer name (when known), the WordPress user id for logged-in customers, a snapshot of the cart contents (product name, quantity, price), the cart total and currency, the cart status, and how many reminders were sent and when. Recovery tokens are stored only as a SHA-256 hash, never in plain text.
When it is stored: for logged-in customers, as soon as they have items in the cart; for guests, only once they have typed an email address at checkout. Anonymous browsing is never recorded.
Where it is stored: in the {prefix}catcode_abandoned_carts table in your own WordPress database. Nothing is sent to CatCode or to any other third party — the plugin makes no outbound requests at all.
How long it is kept: rows are deleted automatically by a daily job once they are older than the retention period set on the settings page (90 days by default; set it to 0 to keep the data indefinitely, which is not recommended). Uninstalling the plugin drops the table entirely.
Data subject requests: the plugin registers a WordPress personal data exporter and eraser, so a shopper’s carts are included in the standard Tools Export Personal Data and Tools Erase Personal Data flows, keyed by email address. The plugin also contributes suggested wording to the site privacy policy screen (Settings Privacy Policy guide).
Installation
- Upload the plugin folder to
/wp-content/plugins/catcode-abandoned-cart-recovery-for-woocommerce/ - Activate it in the “Plugins” menu
- Go to WooCommerce Abandoned Cart Settings and set the timings and the email text
- Watch the results under WooCommerce Abandoned Carts
FAQ
-
When exactly is a guest cart captured?
-
Only after the shopper has entered an email address at checkout. Before that there is nothing to send a reminder to, so nothing is stored — no personal data is collected from anonymous browsing.
-
Does it work with the block-based checkout?
-
Yes. The classic checkout is captured server-side through the
update_order_reviewAJAX call; the block checkout posts the email to the plugin’s own REST route as soon as the field is filled in. Both paths end in the same table. -
How often does the scan run?
-
Every 15 minutes, through WP-Cron (
catcode_abandoned_cart_scan). A second daily event (catcode_abandoned_cart_cleanup) closes expired carts and enforces the retention period. -
Is the recovery link safe to email?
-
The link carries a 32-character random token. Only its SHA-256 hash is stored in the database, the comparison is done with
hash_equals(), the token is single-use, and it is stripped from the address bar right after the cart is restored. -
Will a customer receive several reminders for several carts?
-
No. The “do not email the same address more often than once every N days” setting throttles reminders per address across all carts.
-
Does the plugin send anything to an external server?
-
No. It makes no outbound requests at all — see the “External services” section above.
-
What happens to the stored data when I uninstall?
-
Uninstalling the plugin drops its database table and deletes its options, so no captured cart data is left behind.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“CatCode Abandoned Cart Recovery for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “CatCode Abandoned Cart Recovery for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- First release: cart capture for customers and guests, abandonment scan, reminder email with a one-time recovery link, cart list with statistics, retention cleanup and privacy tools.
