What Is the WooCommerce Failed Payment Grace Period?

A window of time between a failed payment and a subscription finally losing access, spanning several retry attempts

How It Works

When a renewal payment fails, WooCommerce Subscriptions doesn't necessarily cut access immediately — the subscription moves to a status (often "On hold") while the retry schedule runs its course. In practice, this retry window functions as the grace period: the customer has that many days to resolve the payment issue (usually by updating their card) before the subscription is treated as genuinely lapsed.

Where Store Owners Get This Wrong

  • Assuming a grace period exists without configuring retries at all. If Failed Payment Retry isn't enabled for the gateway, there's effectively no grace period — a single failed charge moves straight to whatever the immediate on-hold/cancel behavior is.
  • Access control not actually tied to subscription status. If a membership, download access, or custom feature gate doesn't check the subscription's current status correctly, a customer might keep access indefinitely regardless of payment failures — or lose it immediately with no grace at all, if the integration is overly strict.
  • Confusing the retry schedule with a fixed calendar grace period like "30 days." The actual grace window is only as long as the configured retry schedule, which defaults to a few days, not weeks.

How to Set the Grace Period You Actually Want

  1. Configure the retry schedule deliberately under the gateway's Failed Payment Retry settings, choosing intervals that match how long you actually want to give customers to fix a payment issue.
  2. Confirm what "On hold" actually does to access in your specific setup — test it directly rather than assuming, especially if access is controlled through Memberships or a custom integration.
  3. Communicate the grace period clearly in the failed-payment email, so customers know exactly how long they have before losing access.
  4. For a grace period longer than what retries alone provide, that needs custom logic explicitly keeping access active for a defined extra window after the final retry fails.

See custom WooCommerce development for grace-period logic beyond what the retry schedule provides by default.

Available for new projects

NEXT STEP

Rather have it fixed than keep reading?

Based in Bangladesh — serving clients worldwide. Tell me what's happening and you'll have a reply within one working day.

  • Reply within one working day
  • Fixed quote before work starts
  • UK, EU and US hours covered