This page provides information about actions that are taken when recurring payments are handled by WooCommerce Subscriptions. There are similarities but not all the details here apply to Subscriptions by WooCommerce Payments.
We recommend reading the Store Manager Guide for Subscriptions to get a more general introduction to working with the extension.
A key feature of a subscription is a recurring payment — a payment due at a regular interval over time. These payments are the foundation block of a larger renewal process in WooCommerce Subscriptions.
Subscriptions performs a number of tasks as part of renewal, including generating an order to record payment, emailing both you and the customer via email of the renewal and sometimes, processing the payment. The actual tasks performed differ depending on which method is being used to process the renewal.
Subscriptions offers two methods for handling renewals:
- Automatic renewal
- Manual renewal
This table summarizes the differences between manual and automatic renewal methods.
|Manual Renewals||Automatic Renewals|
|Customer Involvement||Customer must log into your store and pay to renew the subscription.||No action required by the customer to renew the subscription.|
|Coupons||Customer can use product and cart coupons to reduce price of renewal because customer completes renewal via normal checkout process.||Only recurring coupons applied at the start of subscription will discount renewal payments as customer is not involved in renewal payment.|
|Taxes||Tax charged for each renewal payment is calculated at time the payment is processed, because customer completes renewal via normal checkout process. Taxes on a pending renewal order reflect the tax line items on the subscription prior to checkout.||Taxes calculated at time of sign-up are applied for all renewal payments. If you need to change recurring taxes, you need to manually change recurring tax line items for the subscription.|
|Payment Method||All payment gateway extensions can be used to process manual renewal payments. Customer can choose a different payment method for each renewal payment.||Some payment gateways support automatic renewals. The Subscription Payment Gateway Guide has a list of those that support automatic renewal payments. The same payment method is used for all renewal payments (unless payment fails).|
|Shipping Method||Customer can choose a different shipping method for each renewal payment.||Same shipping method is used for all renewal payments (unless payment fails).|
|Changing Address||Customer can enter a different billing and/or shipping address for each renewal.||Same billing and shipping address is used for each renewal. This address is from the original order. Customer can change address for renewal orders to use a different one.|
|Email Notifications||If enabled, the Customer Renewal Invoice is emailed to the customer to prompt them to log in and pay to renew subscription. After customer has completed payment, they receive the Processing/Completed Renewal Order email, and New Renewal Order email is sent to Store Manager.||If enabled, the Processing or Completed Renewal Order email is sent to the customer as a record of automatic payment. Store Manager is emailed the New Renewal Order notification immediately as the payment is processed immediately.|
With automatic payments, a recurring payment is charged without involvement from the customer or store manager. WooCommerce Subscriptions processes the payment with the payment gateway used to purchase the subscription. This method is the most convenient for you and your customers.
For a payment gateway extension to provide automatic payments, the extension developer must integrate their extension with Subscriptions. A current list of payment gateways that support automatic payments can be found at: Subscription Payment Gateways. Payment gateways that support automatic recurring payments are also listed in the Payment Gateways section of Subscriptions’ Settings on your site.
Automatic payments are on by default. To turn off automatic payments, tick the Turn Off Automatic Payments checkbox at Subscriptions settings.
With manual payments, a subscription is suspended until the customer logs into your store and pays to renew it.
For example, if a subscription is $100/year, 1 year after the customer first signed up for the subscription, the subscription is put on-hold and a new order for the $100 renewal is generated (and emailed to the customer if your store has the Customer Renewal Invoice email enabled). Once the customer logs into your store and pays $100, the subscription is reactivated for another year.
The manual renewal payment process uses the standard WooCommerce checkout flow. A customer pays for renewal in much the same way a customer would purchase a product or subscription. A walkthrough of the manual renewal payment process, with screenshots, is available in Subscriber’s View.
The only difference to the original subscription purchase is no recurring totals are displayed. For example, the price for a $100/year subscription is displayed for a renewal as $100, whereas it would have been displayed as $100/year for the initial purchase.
When a subscription accepts a manual renewal payment, the customer can choose a different payment method for each renewal payment. Also all payment methods on your site can be used for subscription payments, including bank transfer and cheque. However, because the customer is required to manually pay for renewal, manual payments are best suited for subscriptions billed infrequently, e.g., once a year.
Manual renewal payments are off by default. To accept manual payments, you must enable Accept Manual Renewals.
You can also choose whether to send the customer an email to remind them to log into the store and make the renewal payment by enabling or disabling the Customer Renewal Invoice email.
More info on the impact of manual payments on payment gateways at Subscription Payment Gateways.
The early renewal process is very similar to the manual renewal process. It also takes the customer through the checkout process. More info on early renewals can be found in the early renewal guide.
The recurring payment process is complex. The flow chart below maps out the most important actions performed to handle a subscription renewal. Follow each flow and see which steps WooCommerce Subscriptions performs for both the automatic and manual renewal methods.
The early renewal process is a sort of hybrid of manual and automatic renewal processes. While early renewal is available on both automatic and manual renewal subscriptions, once the process is undertaken, the customer must go through the checkout process to complete the renewal, such as with the manual renewal process. Doing this, however, does not change an automatic renewal to manual or vice versa.
As seen in the Renewal Process flow chart, the default behavior when a recurring payment fails is:
- To leave the subscription on-hold i.e., do not reactivate it.
- Email is sent to the customer to notify them of payment failure, if the Customer Renewal Invoice email enabled.
- Customer can log in and click the “Pay” button next to the failed order in My Account or My Account > View Subscription page to pay for failed renewal and reactivate the subscription.
Only gateways that support payment method changes by the customer are displayed when paying for a failed renewal order. This enables WooCommerce Subscriptions to resume the subscription and process future automatic recurring payments with the new payment method chosen.
Subscriptions version 2.1+ also offers a automatic failed recurring payment retry system.
This system can be used to change the default process outlined above to retry the payment multiple times and email the customer on multiple occasions to request they complete payment. For more details on this system, see Failed Recurring Payment Retry System.
Here is a flow chart for the basic handling of automatic retries.
WooCommerce includes a Hold stock setting. This allows you to set a time limit, after which any unpaid, pending parent order is cancelled. This does not include pending renewal orders, which remain pending indefinitely.
To provide subscribers with a more generous payment period, the time limit is set to 10080 (one week). The value can be left blank to disable completely.
For stores that accept both manual and automatic payments, the payment method the customer uses to sign up for their subscription determines if a subscription is renewed manually or automatically. There is an optional feature that will allow your customers to switch between automatic and manual renewals whenever they choose.
This feature will be off by default. To enable it:
- Go to the WooCommerce > Settings > Subscriptions screen.
- Scroll down to the Renewals section.
- Check the option to Display the auto renewal toggle.
Enabling this feature will display an auto-renew toggle on the customer’s View Subscription page. Clicking this will switch their subscription between manual and automatic renewals.
If the customer chooses to turn on automatic payments and the subscription doesn’t have an automatic payment method set, the customer will be asked to add one by following the Add Payment method flow. This process is similar to the existing change payment method process.
If you want to change a subscription from automatic to manual renewal method from admin, this is possible by setting a flag on the order used to purchase the subscription. For more information, see the guide to changing a Subscription from automatic to manual renewals.
Changing a subscription from manual renewals to automatic renewals is more complicated, and only some payment gateways support it. Read the guide to charging recurring payments for manually added subscriptions for information on setting up automatic payments with a payment gateway which supports it.
If you need to switch from manual to automatic renewals for a different payment gateway, contact the author of the payment gateway extension for advice on how to achieve it.
There is another type of renewal not included in the guide above – resubscribing.
After a customer’s subscription has expired or been cancelled, they can create a new subscription which extends the old subscription’s terms using the resubscribe button on the My Account page.
Resubscribing to a subscription that ended will create a new subscription for the same product or products; but it does not have the same behavior as purchasing a new subscription, or renewing a subscription.
Resubscribing has a number of special behaviors. These are outlined in detail in the Resubscribe Guide.
The subscription renewal process is at the heart of WooCommerce Subscriptions and, as such, is discussed on other pages.
To understand more about the difference between automatic and manual payments, and find which payment gateways are supported for each method, see Subscription Payment Methods & Gateways.
To learn how to switch on Manual Payments, switch off Automatic payments, and control which renewal emails are sent to customers, see Subscription Renewal Settings of the Store Manager Guide.
WooCommerce Subscriptions copies all custom fields (i.e. metadata) set on an order during checkout to the subscription/s created for that order during checkout. When the subscription renews, Subscriptions will then copy that data to the renewal order too.
If you add additional custom fields to a subscription via the WooCommerce > Edit Subscription administration screen, those fields will also be copied to renewal orders created after that data was added to the subscription.
Subscriptions also provides a way for developers to exclude metadata from being copied to renewal orders. Developers can use the
'wcs_renewal_order_meta' filters to exclude certain metadata from renewal orders.
To test the renewal process for a subscription, follow steps outlined in the Store Manager’s guide to process a renewal for an active subscription. This triggers all normal automatic or manual renewal process steps.
To use this process, you need to purchase a test subscription with a gateway that requires either:
- manual renewal payments (e.g. Cheque, Bank transfer); or
- a payment gateway that supports modifications to the renewal date.
For most subscriptions, the next payment date is based on date of last payment. This is to ensure the subscriber receives access to the subscription for the full period of each renewal.
For example, if a monthly subscription product is purchased on the 1st of January, and it renews on the 1st of February, the next renewal payment date is calculated as 1 month from the 1st of February, which is 1st of March. If the automatic renewal payment fails on the 1st of March and the customer then manually pays for the renewal on 3rd of March, the next payment date is calculated as 3rd of April, not 1st of April.
The exception to this behavior is when the subscription contains a synchronized subscription product. If the subscription is synchronized, the next renewal payment date is calculated from last scheduled payment date, not the time the payment was processed. This ensures synchronized dates are preserved, even when payment is late.
For example, consider a monthly subscription product synchronized to the 1st of the month that is purchased on 1st of February. If the automatic renewal payment fails on the 1st of March and the customer then manually pays for the renewal on the 3rd of March, the next payment date is 1st of April, not 3rd of April, to ensure it continues to be processed on the 1st of the month.
If you want the next payment date to always be calculated from the last scheduled payment date, install the free WooCommerce Subscriptions – Preserve Billing Schedule plugin.
Yes, if early renewals are enabled then subscribers can renew early under certain conditions. Renewing early means that the subscriber does not have to wait until the next payment date to pay for the next subscription period. They can pay early and the next payment date will be extended accordingly. More info on early renewals can be found in the early renewal guide.
If you have subscriptions, for example, paid with WooCommerce Stripe Payment gateway, then the gateway plugin is disabled. Here’s what happens:
The payment method for subscriptions paid with Stripe will change to Manual Payment method, and the Payment Method on the subscription will read Manual Renewal.
When the subscription scheduled renewal is due and
woocommerce_scheduled_subscription_payment event is triggered, a renewal order is created with Pending payment status.
The order note on the renewal order will read: Manual renewal order awaiting customer payment:
The above behavior is applicable regardless of whether you have enabled Accept Manual Renewals or not under the Subscription setting.