WP Manifestindependent plugin directory
manifest / ecommerce / woo-subscriptions-ach-renewals

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

★ 0stars
0forks

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

Ships 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

How it works

  1. A renewal is due. Subscriptions creates the renewal order and puts the subscription on hold. The stored next_payment date (the due date) is left alone.
  2. The bank debit stays pending for several days.
  3. When the payment clears and the subscription is reactivated, Subscriptions would normally set the next payment to clearance date + billing interval.
  4. This plugin hooks wcs_calculate_next_payment_from_last_payment and returns false for 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

  1. Upload the woo-subscriptions-ach-renewals folder to /wp-content/plugins/, or install from a zip.
  2. Activate Woo Subscriptions ACH Renewal Helper.
  3. Ensure WooCommerce, WooCommerce Subscriptions, and a supported Stripe gateway are active.

Manual verification

  1. Use a monthly subscription on stripe_ach or stripe_us_bank_account with next payment on day D.
  2. Let the renewal create an order and sit on-hold while ACH is pending.
  3. After clearance completes the order, confirm the subscription is active.
  4. Confirm the new next_payment is D + 1 month (not clearance date + 1 month).
  5. Optionally confirm a late-paid card subscription still recalculates from last payment.

License

GPL v2 or later. See license.txt.