Woo Subscriptions ACH Renewal Helper self-updates
Keep WooCommerce Subscriptions ACH renewals from falling behind schedule
by Abundant Designs LLC · github.com/robertstaddon/woo-subscriptions-ach-renewals · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/robertstaddon/woo-subscriptions-ach-renewals/archive/refs/heads/main.zipShips its own WordPress updater (Update URI header), so new versions show up under Dashboard → Updates.
Keeps WooCommerce Subscriptions async bank-debit renewals on schedule.
When ACH (and similar bank debits) take several days to clear, WooCommerce Subscriptions normally recalculates the next payment date from when the payment cleared. Over a year that drift can cost you a full renewal cycle. This plugin calculates the next payment from the original due date instead.
Requirements
- WordPress 6.0+
- WooCommerce 8.0+
- WooCommerce Subscriptions
- One of:
How it works
- A renewal is due. Subscriptions creates the renewal order and puts the subscription on hold. The stored
next_paymentdate (the due date) is left alone. - The bank debit stays pending for several days.
- When the payment clears and the subscription is reactivated, Subscriptions would normally set the next payment to clearance date + billing interval.
- This plugin hooks
wcs_calculate_next_payment_from_last_paymentand returnsfalsefor async bank-debit gateways, so Subscriptions uses original due date + billing interval instead.
Card and other synchronous payment methods are unchanged.
Supported payment methods
WooCommerce Stripe Gateway
| Gateway ID | Method |
|---|---|
stripe_us_bank_account |
ACH (US bank account) |
stripe_acss_debit |
ACSS Debit |
stripe_sepa_debit |
SEPA Direct Debit |
stripe_sepa |
SEPA (legacy) |
stripe_bacs_debit |
Bacs Direct Debit |
stripe_au_becs_debit |
BECS Direct Debit |
Payment Plugins for Stripe WooCommerce
| Gateway ID | Method |
|---|---|
stripe_ach |
ACH |
stripe_sepa |
SEPA Direct Debit |
stripe_becs |
BECS Direct Debit |
Additional gateway IDs can be added with the wsar_async_bank_debit_gateways filter.
What this does not do
- It does not realign subscriptions that have already drifted. It only stops further slip on future renewals.
- It does not change gateway webhook or order-status behavior.
- It has no settings UI.
Debug logging
Silent by default. To log when the schedule is preserved (subscription ID and payment method), add this to wp-config.php:
define( 'WSAR_DEBUG', true );
Logs appear under WooCommerce → Status → Logs with source woo-subscriptions-ach-renewals.
Installation
- Upload the
woo-subscriptions-ach-renewalsfolder to/wp-content/plugins/, or install from a zip. - Activate Woo Subscriptions ACH Renewal Helper.
- Ensure WooCommerce, WooCommerce Subscriptions, and a supported Stripe gateway are active.
Manual verification
- Use a monthly subscription on
stripe_achorstripe_us_bank_accountwith next payment on day D. - Let the renewal create an order and sit on-hold while ACH is pending.
- After clearance completes the order, confirm the subscription is active.
- Confirm the new
next_paymentis D + 1 month (not clearance date + 1 month). - Optionally confirm a late-paid card subscription still recalculates from last payment.
License
GPL v2 or later. See license.txt.