Title: Plogins Recover &#8211; Abandoned Cart for WooCommerce
Author: Mariusz Szatkowski
Published: <strong>September 11, 2026</strong>
Last modified: September 11, 2026

---

Search plugins

![](https://ps.w.org/plogins-recover/assets/banner-772x250.png?rev=3691777)

![](https://ps.w.org/plogins-recover/assets/icon-256x256.png?rev=3691777)

# Plogins Recover – Abandoned Cart for WooCommerce

 By [Mariusz Szatkowski](https://profiles.wordpress.org/motylanogha/)

[Download](https://downloads.wordpress.org/plugin/plogins-recover.1.0.16.zip)

 * [Details](https://wordpress.org/plugins/plogins-recover/#description)
 * [Reviews](https://wordpress.org/plugins/plogins-recover/#reviews)
 *  [Installation](https://wordpress.org/plugins/plogins-recover/#installation)
 * [Development](https://wordpress.org/plugins/plogins-recover/#developers)

 [Support](https://wordpress.org/support/plugin/plogins-recover/)

## Description

Recover captures WooCommerce carts that shoppers leave behind and emails them a 
secure, one-click link that puts every item straight back into their cart so they
can finish checking out. It runs entirely on your own site: no third-party service,
no data leaves your store.

Because everything happens on your own server, you can read exactly what it does.
The full source lives at [github.com/wppoland/plogins-recover](https://github.com/wppoland/plogins-recover),
which is also where to file a bug or request a feature.

**How it works**

 1. As soon as a shopper has items in the cart, Recover saves a private snapshot of
    that cart.
 2. The customer email is captured early, automatically for logged-in customers, and(
    with consent) from the checkout email field for guests.
 3. If checkout is not completed within a window you choose, the cart is marked **abandoned**.
 4. On the next scheduled run, Recover emails a recovery message containing a secure,
    tokenised restore link.
 5. One click on that link repopulates the cart and sends the shopper back to checkout.
    Recovered carts are tracked separately so you can see your recovery rate.

**A few things worth knowing**

Emails go out through your own WordPress mailer (`wp_mail`), and cart data lives
in a single custom table (`{prefix}_recover_carts`) in your database. Nothing is
sent to an external service.

Guest email capture only happens after the shopper ticks a consent checkbox, and
you can edit the wording or turn the requirement off. Restore links carry an unguessable
64-character random token and nothing else: no customer id, no email in the URL.
From the carts screen you can wipe every stored cart for a single email address 
in one click.

On the implementation side, all output is escaped and all input sanitised, every
admin form and AJAX request is nonce-checked, and the admin pages need the `manage_woocommerce`
capability. Early email capture uses a small vanilla-JavaScript snippet (no jQuery)
loaded in the footer; the recovery worker runs on WordPress cron and is idempotent,
so a re-run never sends a second email for the same cart. Deleting the plugin drops
its table, removes its two options, and clears the scheduled task.

**Features**

 * Automatic cart snapshots whenever the cart changes
 * Early email capture for logged-in customers and (consent-gated) guests
 * Configurable abandonment window and email delay
 * Secure, tokenised one-click restore link that repopulates the cart
 * Recovery email sent on a WordPress cron schedule via `wp_mail`
 * Abandoned / recovered / pending cart list with a recovery-rate summary
 * Customisable email subject, heading, body and button text
 * GDPR-friendly consent checkbox and one-click per-email data wipe
 * Compatible with WooCommerce HPOS (Custom Order Tables) and Cart/Checkout Blocks

### Recover PRO

The free edition sends the whole recovery sequence, with no cap on what it will 
do. **Recover PRO** is for shops that want to tune it and measure it, and adds:

 * **Per-step sequence control** – a separate delay and its own copy for each step,
   plus a coupon on the steps you pick
 * **Discount codes** – a unique, expiring coupon in the recovery email, to give
   a hesitant shopper a reason to finish
 * **Conversion analytics** – recovered revenue, recovery rate by step, and what
   the coupon emails actually did

Everything in the free edition stays free and open. Recover PRO starts at 29 EUR
per year, billed in EUR.

Compare editions and pricing: [plogins.com/plogins-recover-pro/pricing/](https://plogins.com/plogins-recover-pro/pricing/)

### External Services

Recover does not connect to any external services. Recovery emails are sent through
your own site’s WordPress mailer (`wp_mail`), and all cart data stays in your WordPress
database.

### Translations

Plogins Recover is fully translatable and ships the `plogins-recover.pot` template.
Translations are delivered by WordPress.org language packs from translate.wordpress.
org, which is where Polish, German and Spanish are being contributed; the package
itself carries no compiled translation files.

## Screenshots

[⌊Abandoned cart list with pending / abandoned / recovered counts and recovery rate.⌉⌊
Abandoned cart list with pending / abandoned / recovered counts and recovery rate
.⌉[

Abandoned cart list with pending / abandoned / recovered counts and recovery rate.

[⌊The recovery email with its one-click "Complete my order" button.⌉⌊The recovery
email with its one-click "Complete my order" button.⌉[

The recovery email with its one-click “Complete my order” button.

## Installation

 1. Install and activate WooCommerce (8.0 or later).
 2. Install Recover from the WordPress plugin directory, or upload the `plogins-recover`
    folder to `/wp-content/plugins/`.
 3. Activate the plugin through the **Plugins** screen.
 4. Visit **WooCommerce > Recover** to set your timing and customise the email; sensible
    defaults work out of the box.
 5. Abandoned carts and your recovery rate appear under **WooCommerce > Recover Carts**.

## FAQ

### Documentation and links

 * **Documentation**: [plogins.com/plogins-recover/docs/](https://plogins.com/plogins-recover/docs/)
 * **Plugin page**: [plogins.com/plogins-recover/](https://plogins.com/plogins-recover/)
 * **Source code**: [github.com/wppoland/plogins-recover](https://github.com/wppoland/plogins-recover)
 * **Bug reports and feature requests**: [github.com/wppoland/plogins-recover/issues](https://github.com/wppoland/plogins-recover/issues)

### Is Recover free?

Yes. Recover is free and licensed under the GPL.

### Does Recover require WooCommerce?

Yes. Recover is a WooCommerce extension and requires WooCommerce 8.0 or later. It
shows an admin notice and stays inactive if WooCommerce is missing or out of date.

### How is the recovery email sent?

On a WordPress cron schedule (hourly by default). Each run marks carts that have
been inactive past your window as abandoned, then emails a recovery link to any 
abandoned cart that is due, using your own site mailer (`wp_mail`). The worker is
idempotent, so it never double-sends, so each cart receives a single recovery email.

### Is the restore link safe?

Yes. Each cart has a 64-character cryptographically random token. The restore link
contains only that token: no customer id, no email, nothing personal. Without the
exact token a cart cannot be restored, so there is no enumeration or IDOR risk.

### Does this comply with GDPR / consent requirements?

Guest email capture only happens after the shopper ticks a consent checkbox (you
can edit the wording, and consent can be required or not). Cart data is stored only
in your own database and never sent to any third party. From **WooCommerce > Recover
Carts** you can erase all stored cart data for any email address in one click. You
remain responsible for your store’s privacy policy.

### Where is cart data stored?

In a custom `{prefix}_recover_carts` table in your WordPress database. Nothing is
sent anywhere else.

### How do I remove all plugin data?

Deleting the plugin from the **Plugins** screen runs the uninstall routine, which
drops the `{prefix}_recover_carts` table, removes the `recover_settings` and `recover_db_version`
options, and clears the scheduled recovery task.

### Does this plugin work on WordPress Multisite?

Yes. This plugin is compatible with WordPress Multisite. Network activate it or 
activate it on individual sites; each site keeps its own settings and data.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Plogins Recover – Abandoned Cart for WooCommerce” is open source software. The 
following people have contributed to this plugin.

Contributors

 *   [ Mariusz Szatkowski ](https://profiles.wordpress.org/motylanogha/)

[Translate “Plogins Recover – Abandoned Cart for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/plogins-recover)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/plogins-recover/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/plogins-recover/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/plogins-recover/)
by [RSS](https://plugins.trac.wordpress.org/log/plogins-recover/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.16

 * Changed: the listing now says a paid edition exists and what it adds. It never
   did, so anyone reading the WordPress.org page had no way of knowing there was
   one.

#### 1.0.15

 * Fixed: the PRO upgrade promo kept selling to people who had already bought the
   paid edition. Only the banner could be dismissed, so the sidebar promo and the
   locked feature cards followed a paying customer around for good. The promo now
   checks whether the paid edition is active and steps aside when it is.
 * Fixed: the link under the timing fields had an arrow glyph inside the translatable
   string, so every translator had to carry the arrow and any locale that dropped
   it changed the layout. The label is plain text now.
 * Fixed: the German translation of the subject-line help carried two zero-width
   spaces, invisible in the editor and passed through to the screen.
 * Changed: Polish, German and Spanish are complete again at 93 of 93 strings. Twenty
   strings added since the last refresh, among them the whole cart search and the
   reminder plan, had no translation at all.

#### 1.0.14

 * Fixed: deleting the plugin left the per-user “dismiss” flag from the PRO notice
   in the database. Uninstall now removes it for every user, not just the one who
   dismissed it.

#### 1.0.13

 * Changed: **Number of reminders** now shows the plan it makes. That field and **
   Email delay (minutes)** only mean anything together, and neither could show it
   alone, so the sequence is now listed under the field, counted from the moment
   a cart is marked abandoned. Steps ease in and out as you change the count, so
   you watch the campaign grow or shrink instead of having to save to find out. 
   The list is rendered from the saved settings, so it is correct with JavaScript
   switched off too.
 * Changed: the field now carries the upper bound it always had. Anything above 
   5 was silently clamped down to 5 on save; the input says 1 to 5 now, so the browser
   stops you before the save does.
 * Fixed: the muted grey used across this screen measured 4.24:1 against the wp-
   admin background, under the 4.5:1 WCAG AA asks for text. That covered the next-
   run line, the card labels and the promo copy. It is 5.38:1 now.
 * Changed: every text, number and multiline field on the settings screen ties its
   help text to the input with `aria-describedby`, so a screen reader reads the 
   explanation with the field rather than leaving it to be found on its own.

#### 1.0.12

 * New: **Number of reminders**, from 1 to 5, under Timing. The sequence engine 
   was always in the plugin, but the count was pinned to 1 in code with no way for
   a merchant to change it. That made it a built-in feature the plugin refused to
   run, which the WordPress.org guidelines do not allow, so it is a setting now.
   Existing shops keep sending one reminder until they raise it.
 * The reminders are spaced by the existing Email delay, and every one of them uses
   the same subject and body. Different copy per step, and a coupon on a chosen 
   step, are what the paid edition adds on top.
 * Fixed: exporting personal data crashed for any shopper who had an abandoned cart.
   The export cast a date object straight to a string, which is a fatal in PHP, 
   so the one request a shop is obliged to be able to answer was the one that failed.
   The date is formatted now.

#### 1.0.11

 * The translation template was regenerated. It still named an older version of 
   the plugin and pointed at source lines that had since moved, which is what translation
   tools read to show a string in context.

#### 1.0.10

 * Renamed to Plogins Recover – Abandoned Cart for WooCommerce so the name leads
   with the brand rather than a generic word, which is what the WordPress.org plugin
   review team asks for. The plugin slug is unchanged.

#### 1.0.9

 * Removed the “Tested up to” header from the main PHP file. It belongs in readme.
   txt only, where it is already declared; present in both, the header can override
   the readme and show a compatibility version that was never intended.

#### 1.0.8

 * Tested against WordPress 7.1. Verified by activating this build on a clean 7.1
   install with WooCommerce 11.1, not by editing the header.

#### 1.0.7

 * Fixed the PRO promo on the settings screen quoting a price in PLN. PRO is priced
   and charged in EUR, so an admin on a Polish site was shown a zloty amount and
   then billed in euro, and the zloty figure was a fixed conversion that drifted
   from the real charge as the rate moved. The promo now shows the euro price that
   is actually taken.

#### 1.0.6

 * Logged-in customers now receive recovery emails again. With “Require consent”
   on, their carts were saved but never emailed, even though the consent checkbox
   is only ever shown to guests.

#### 1.0.4

 * Translations: completed Polish, German and Spanish for the PRO upgrade panel.

#### 1.0.3

 * Accessibility improvements to the admin and storefront markup.
 * Fixed low-contrast admin headings under an OS dark-mode preference.

#### 1.0.2

 * Added bundled Polish, German and Spanish translations for the plugin interface.

#### 1.0.1

 * First stable release.

#### 0.1.3

 * Renamed to Plogins Recover for WooCommerce for a more distinctive plugin name.

#### 0.1.2

 * `recover/email_sent` action after a recovery email is accepted by wp_mail.
 * `recover/cart_recovered` action when a cart is marked recovered.
 * `CartRepository::findById()` for cart lookup by primary key.

#### 0.1.1

 * Multi-email recovery sequences: `recover/max_emails`, `recover/email_step_delay`,
   
   recover/email/template_args, and a third `$step` argument on `recover/email/args`.
 * Cron worker increments `emails_sent` and schedules follow-ups from `last_email_at`.

#### 0.1.0

 * Initial release.

## Meta

 *  Version **1.0.16**
 *  Last updated **8 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [abandoned cart](https://wordpress.org/plugins/tags/abandoned-cart/)[cart recovery](https://wordpress.org/plugins/tags/cart-recovery/)
   [ecommerce](https://wordpress.org/plugins/tags/ecommerce/)[email](https://wordpress.org/plugins/tags/email/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/plogins-recover/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/plogins-recover/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/plogins-recover/reviews/)

## Contributors

 *   [ Mariusz Szatkowski ](https://profiles.wordpress.org/motylanogha/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/plogins-recover/)