Description
When a subscription renewal payment fails, the customer often doesn’t know. The card expired, the bank declined it, or there wasn’t enough money that day. Without a follow-up, the subscription is lost.
Bahader Subscription Payment Recovery tries the payment again on the days you choose and emails the customer before each try, with a link to update their payment details. When the payment goes through, the subscription carries on. When it doesn’t, the subscription is cancelled or suspended, and the customer is told.
This plugin works with WooCommerce Subscriptions (and other plugins built on the WooCommerce Subscriptions core). It uses their own renewal orders, payment gateways and scheduled actions.
How it works
- A renewal payment fails. The plugin opens a “failed renewal” in its log and emails the customer.
- It retries the payment on the days you set, for example 1, 3, 5 and 7 days after the failure. A reminder goes out before each retry.
- If the customer saves a new card, the overdue payment is charged with it straight away.
- When the payment goes through, the subscription is active again and the customer gets a short thank-you email. If the last retry fails, the subscription is cancelled or suspended, as you choose.
Everything in this plugin
- Retry schedule – choose the days after the first failure and the maximum number of retries.
- No pointless retries – when the bank says the card was stolen, lost, picked up or closed, or says not to try again, the same card isn’t charged again. Reminders still go out, and once the customer saves a new card the retries charge it.
- On hold or active during retries – stop deliveries until the customer pays, or keep the subscription running while you retry.
- Customer emails – “payment failed”, a reminder before each retry, “cancelled or suspended” at the end, and “payment received” when it is sorted. Edit the subject, heading, message and button text, with placeholders like {first_name}, {amount} and {retry_date}.
- A link to fix it – emails link to the subscription’s “change payment method” page, or to the renewal checkout when the subscription is on hold. Customers log in to their account to use it.
- One email, not two – WooCommerce Subscriptions’ own failed-payment invoice is replaced by this plugin’s email (you can turn this off).
- Failed renewals log – WooCommerce › Payment Recovery lists every failed renewal with its retries, next retry, status and the gateway’s reason, plus the full history of each one. Retry now or stop retries with one click.
- Works with WooCommerce Subscriptions’ retry system – if its “Retry failed payments” option is on, this plugin takes over and switches the built-in retries off, so customers aren’t charged or emailed twice. Or you can let the built-in system run and pause this plugin.
- Works with your store – High-Performance Order Storage (HPOS) and legacy order storage, classic and block checkout.
Bahader Subscription Payment Recovery Pro
Pro is an optional add-on with smart retries that read the decline reason (no retries on stolen or closed cards, payday timing for insufficient funds), a payment page customers can use without logging in, card-expiry reminders, a “pause instead of cancel” offer, admin alerts, a recovery dashboard and branded emails. Everything in this plugin stays free. Learn more about Pro.
Screenshots





Installation
- Install and activate WooCommerce and WooCommerce Subscriptions.
- Go to Plugins > Add New, search for “Bahader Subscription Payment Recovery”, then install and activate it.
- Go to WooCommerce > Payment Recovery > Settings to check the retry schedule and the emails. The defaults work out of the box: retries 1, 3, 5 and 7 days after a failure, a reminder 12 hours before each retry, and cancellation after the last one.
The plugin makes no calls to outside services. Retries and reminders run through Action Scheduler, which comes with WooCommerce.
FAQ
-
Which subscriptions plugins does it work with?
-
WooCommerce Subscriptions, and other plugins built on the WooCommerce Subscriptions core. If none is active, its page under WooCommerce says so.
-
Which payment gateways can retry payments?
-
Any gateway that supports automatic subscription renewals in WooCommerce Subscriptions, such as Stripe, WooPayments, Square or Braintree. The plugin charges the renewal order through the gateway, the same way WooCommerce Subscriptions charges a renewal. Subscriptions with manual renewals are logged but not retried.
-
What if WooCommerce Subscriptions’ own retry system is switched on?
-
By default this plugin takes over and switches the built-in retries off, so customers get one set of retries and emails. You can choose to keep the built-in system instead, which pauses this plugin. The log page tells you which one is running.
-
When are the retries counted from?
-
From the first failure. With the schedule 1, 3, 5, 7 the payment is tried one, three, five and seven days after it first failed. If you allow more retries than days listed, the last gap repeats.
-
What happens to the subscription during retries?
-
You choose: on hold (the default, which stops deliveries and members’ access) or active. Either way, a successful payment makes it active again and moves the next payment date on.
-
Can customers fix it themselves?
-
Yes. The emails link to the subscription’s payment method page (for active subscriptions) or the renewal checkout (for subscriptions on hold). As soon as a new card is saved or the renewal is paid, the log shows it as recovered and retries stop. Pro adds a payment page that works without logging in.
-
Does it delete anything when I remove it?
-
Deleting the plugin removes its settings and log, unless you tick “Keep data” in the settings. Subscriptions, orders and their notes are not changed.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Bahader Subscription Payment Recovery for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Bahader Subscription Payment 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: retry schedule, reminders, no retries on the same card after a hard decline, customer emails with an update link, final cancel or suspend, failed renewals log, and hand-over with WooCommerce Subscriptions’ retry system.
