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.
- 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.