Title: Renewal Rescue for WooCommerce
Author: Luke W
Published: <strong>September 3, 2026</strong>
Last modified: September 3, 2026

---

Search plugins

![](https://ps.w.org/renewal-rescue-for-woocommerce/assets/banner-772x250.png?rev
=3680487)

![](https://ps.w.org/renewal-rescue-for-woocommerce/assets/icon.svg?rev=3680487)

# Renewal Rescue for WooCommerce

 By [Luke W](https://profiles.wordpress.org/lukeaxiomflow/)

[Download](https://downloads.wordpress.org/plugin/renewal-rescue-for-woocommerce.1.0.2.zip)

 * [Details](https://wordpress.org/plugins/renewal-rescue-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/renewal-rescue-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/renewal-rescue-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/renewal-rescue-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/renewal-rescue-for-woocommerce/)

## Description

When a subscription renewal payment fails, WooCommerce Subscriptions can retry it
automatically — but the retry system ships **switched off**, its schedule is **hard-
coded** (5 retries across 7 days), and changing it officially requires writing PHP
against a filter. Most store owners never see any of it.

Renewal Rescue is the cockpit for that machinery:

**Recovery cockpit**

 * Every retry in the pipeline: which renewal, how much, when the next attempt runs.
 * Recent outcomes: which retries recovered the payment, which failed.
 * **“Needs a human”**: renewals that failed every automatic retry and are still
   unpaid — nothing further happens on its own for these.
 * Recovered-revenue counter: renewals and amount that came back through retries
   in the last 30 days.
 * Which of your gateways can actually run an automatic retry (manual methods like
   bank transfer can’t).
 * One-click enable for the retry system itself if it’s off (it writes the standard
   WooCommerce Subscriptions setting).

**Retry schedule editor — no code**

 * Edit the number of retries, the wait between attempts, which attempts email the
   customer or the store owner, and the order/subscription status applied while 
   waiting.
 * Live “runs at T+X” preview of the whole schedule.
 * Applied through the retry system’s own documented `wcs_default_retry_rules` filter—
   WooCommerce Subscriptions keeps doing the retrying; you finally control the schedule.
 * Hard safety bounds (each wait 1 hour–14 days, up to 8 retries, whole schedule
   inside 30 days) and one-click reset to the built-in rules.

**Watchdogs**

 * Digest email (daily or weekly): exhausted retries needing action, what runs next,
   what got recovered. Only sent when there’s something to say.
 * Site Health checks: retry system off, exhausted unpaid renewals, retry actions
   sitting past-due in the queue.
 * WP-CLI: `wp rrwc status --format=json`.
 * Event log history is your setting, defaulting to keep everything. It is housekeeping,
   not a tier: no build removes the bound for you.

**Renewal Rescue Pro** (in-dashboard upgrade, 14-day trial, no card):

 * Gateway-specific retry schedule (treat PayPal failures differently from Stripe).
 * Retry timing windows — run retries in business hours, skip weekends.
 * Card-expiry pre-dunning: email customers to update their card _before_ the renewal
   fails.
 * Your own recovery email at chosen attempt numbers.
 * Slack / webhook alerts when retries are exhausted (HIGH VALUE flag above your
   threshold).
 * REST status endpoint and CSV export for agencies.

**Read-mostly by design.** Renewal Rescue never edits orders, subscriptions or retry
records. The only WooCommerce settings it can write are the standard “Enable Automatic
Retry” toggle (when you click the button) and the retry schedule you save — applied
through the documented filter.

Renewal Rescue helps you monitor and recover failed renewal payments; recovery always
depends on your gateway, your customers and the retry system itself. No plugin can
guarantee a payment succeeds.

### External services

**The plugin’s own features contact nothing external.** Everything it reads comes
from your own database, and emails go through your site’s normal mail system. No
subscription or customer data ever leaves your site.

**Freemius (freemius.com), who sell and license the Pro version**

Freemius is contacted in four situations. Every one of them is something you click.
It is never contacted in the background.

 1. **If you opt in on the activation screen** (or start a trial / activate a licence).
    Sent to api.freemius.com: your site URL, your WordPress and PHP versions, and the
    email address of the account you activate with. Skipping the opt-in is a first-
    class choice and the plugin is fully functional without it.
 2. **If you open the “Upgrade” page** under the plugin’s menu. Your own server (not
    your browser) asks api.freemius.com for current plan prices, sending your site 
    URL. This happens whoever you are, including if you skipped the opt-in — but only
    when you open that page. The page itself loads no third-party scripts; everything
    it renders is served from this plugin’s own folder. The payment SDK’s bundled pricing
    script used to inject Google Analytics and a remote checkout script into wp-admin
    on that page; this build removes both, along with the SDK’s remaining remote references(
    all modifications are listed under “Source code” below).
 3. **If you open the “Contact Us” page**, which is Freemius’s hosted support form (
    wp.freemius.com). The link carries your site URL and your WordPress login URL so
    the form knows which site you are writing about.
 4. **If you click a plan to buy**, you go to Freemius’s hosted checkout (checkout.
    freemius.com). It receives your site URL, site name, WordPress and PHP versions,
    and your WordPress administrator email address (pre-filled, sent whether or not
    you complete the purchase). Freemius is the merchant of record. Their checkout 
    page loads its own third-party scripts (at the time of writing: Stripe, PayPal,
    Google Tag Manager, and Freemius’s own assets); we do not control that list. If
    you never click a plan, none of it loads.

Terms: https://freemius.com/terms/ — Privacy: https://freemius.com/privacy/

Installing, activating, skipping the opt-in, every scheduled check, using every 
screen, deactivating (the SDK’s deactivation-feedback dialog is switched off in 
this build, so deactivation is one click and sends nothing), and WordPress’s update
cycle all complete without contacting Freemius at all. Free updates come from WordPress.
org like any other plugin.

**Your own alert endpoints (Pro, optional)**
 If you enter a Slack or webhook URL,
exhausted-retry alerts are POSTed to that URL you chose, only when an alert fires.
Nothing is sent anywhere you did not enter yourself.

### Source code

This plugin’s own PHP and JavaScript are unminified and readable in the plugin folder.
The one exception is the third-party payment SDK in `vendor/freemius/`, which ships
pre-minified; its source and build tooling are public:

 * Freemius WordPress SDK: https://github.com/Freemius/wordpress-sdk
 * The pricing screen at `vendor/freemius/assets/js/pricing/freemius-pricing.js`:
   https://github.com/Freemius/pricing-page

This plugin ships four deliberate modifications to that SDK (all in `assets/js/pricing/
freemius-pricing.js`, all removing remote references from wp-admin): the `appendScripts()`
method is emptied (it injected Google Analytics + checkout.js), the GA pageview 
tracker is stubbed out, the remote loader GIF is replaced with an inline data-URI,
and testimonial photos are forced to the bundled placeholder. Three carry a “Renewal
Rescue:” comment at the patch site.

## Screenshots

[⌊The cockpit: pipeline, outcomes, exhausted renewals, recovered revenue.⌉⌊The cockpit:
pipeline, outcomes, exhausted renewals, recovered revenue.⌉[

The cockpit: pipeline, outcomes, exhausted renewals, recovered revenue.

[⌊The retry schedule editor with the runs-at timeline.⌉⌊The retry schedule editor
with the runs-at timeline.⌉[

The retry schedule editor with the runs-at timeline.

[⌊Site Health checks for the retry system.⌉⌊Site Health checks for the retry system
.⌉[

Site Health checks for the retry system.

## Installation

 1. Install and activate. You’ll find **Renewal Rescue** in the admin menu.
 2. It expects the WooCommerce Subscriptions extension (or another plugin built on 
    subscriptions-core, e.g. WooPayments subscriptions). Without one, the cockpit simply
    waits.
 3. If the retry system is off, the cockpit offers the one-click enable. Then set your
    schedule under **Retry Schedule**.

## FAQ

### Does it work without WooCommerce Subscriptions?

It activates fine but has nothing to watch: the failed-payment retry system it manages
is part of WooCommerce Subscriptions (and subscriptions-core hosts such as WooPayments
subscriptions).

### Does a schedule change affect retries that are already scheduled?

No — that’s how the retry system works: a retry keeps the rule it was created with.
Your schedule applies to retries created after you save it.

### What happens if I set fewer retries than the built-in five?

Retries stop after your last row, and the renewal order is treated as failed sooner.
The editor shows the full timeline so this is never a surprise.

### Which gateways can retry automatically?

Only gateways that support charging the stored payment method again (Stripe, PayPal
vaulting, WooPayments and similar). Manual methods — bank transfer, cheque, cash
on delivery — always need the customer to pay. The cockpit lists your gateways with
their capability.

### Does it change or delete any WooCommerce Subscriptions data?

No. It reads the retry pipeline; the only writes are the standard enable-retry setting
and your saved schedule (applied via the documented filter). Uninstalling removes
only Renewal Rescue’s own table and options.

### Where do the customer retry emails come from?

The standard WooCommerce Subscriptions retry emails — your schedule chooses on which
attempts they go out. Pro can additionally send your own custom recovery email.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Renewal Rescue for WooCommerce” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ Luke W ](https://profiles.wordpress.org/lukeaxiomflow/)

[Translate “Renewal Rescue for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/renewal-rescue-for-woocommerce)

### Interested in development?

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

## Changelog

#### 1.0.2

 * Initial public release: failed-renewal cockpit, no-code retry schedule editor
   with a runs-at preview, recovered-revenue tracking, exhausted-retry watchlist,
   digest email, Site Health tests and WP-CLI with JSON.

## Meta

 *  Version **1.0.2**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [dunning](https://wordpress.org/plugins/tags/dunning/)[failed payments](https://wordpress.org/plugins/tags/failed-payments/)
   [renewals](https://wordpress.org/plugins/tags/renewals/)[subscriptions](https://wordpress.org/plugins/tags/subscriptions/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/renewal-rescue-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/renewal-rescue-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/renewal-rescue-for-woocommerce/reviews/)

## Contributors

 *   [ Luke W ](https://profiles.wordpress.org/lukeaxiomflow/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/renewal-rescue-for-woocommerce/)