When a subscription renewal payment fails, DMSI Subscriptions Pro automatically attempts to collect payment again on a configurable schedule. This process — often called “dunning” — is the first line of defence for recovering failed revenue before a subscription is suspended.
📌 What This Extension Adds: Core DDLS marks a payment as failed and stops. Subscriptions Pro adds an automatic retry scheduler, retry attempt logging, a configurable retry schedule, and a maximum retry limit before suspension triggers.
How Payment Retries Work #
- Payment fails — WooCommerce reports a payment failure for a subscription renewal.
- Grace period begins — The subscription enters
grace_periodstatus. The customer retains full access. - Retry scheduler activates — Based on the configured schedule, the plugin queues retry attempts using WordPress cron.
- Each retry fires — At each scheduled interval, the plugin attempts payment via the WooCommerce gateway.
- Recovery or exhaustion — If a retry succeeds, the subscription returns to
active. If all retries are exhausted without payment, the subscription moves tosuspended.
Default Retry Schedule #
The default retry schedule is configured via dmsilm_sp_retry_schedule and attempts payment on:
| Retry | Days After Initial Failure |
|---|---|
| Retry 1 | Day 1 |
| Retry 2 | Day 3 |
| Retry 3 | Day 5 |
| Retry 4 | Day 7 |
The maximum number of retries is controlled by dmsilm_sp_max_retries (default: 4). Once this count is reached and payment has not been recovered, the grace period logic takes over.
Configuring the Retry Schedule #
Navigate to DMSI → Subscriptions Pro → Retries tab to modify the retry schedule. You can add or remove retry days, adjust the maximum retry count, and configure what happens when retries are exhausted. See Retry and Dunning Settings for the full settings reference.
Retry Logging #
Every retry attempt is recorded in wp_dmsilm_sp_payment_retries. Admins can view the full retry history for any subscription via the Payment Retry History Metabox on the order edit screen.
Manual Retry #
Admins can trigger an immediate retry from the Subscription Pro Status Metabox or the Payment Retry History Metabox without waiting for the scheduled attempt.
