This page provides information about actions that are taken when recurring payments are handled by WooCommerce Subscriptions.
We recommend reading the Store Manager Guide for Subscriptions to get a more general introduction to working with the extension.
Recurring Payments & the Renewal Process ↑ Back to top
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
Manual vs. Automatic Renewals ↑ Back to top
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.|
Automatic Recurring Payments ↑ Back to top
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.
Manual Recurring Payments ↑ Back to top
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 Renewal Process ↑ Back to top
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.
Failed Payment Handling ↑ Back to top
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.
Automatic Retry of Failed Recurring Payments ↑ Back to top
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.
Time Limit on Manual Payments ↑ Back to top
WooCommerce includes a Hold stock setting. This allows you to set a time limit, after which an unpaid, pending order is cancelled.
As Subscriptions creates a pending order for manual subscription renewals, this time limit is also applied to renewal orders. As a result, you can use this time limit to set a window during which a customer must pay for renewal.
By default, this value is set to 60 minutes. To provide subscribers with a more generous renewal period, increase the time limit to something like 10080 (one week) or leave the value blank to disable completely.
Changing from Automatic to Manual Renewals (or Manual to Automatic) ↑ Back to top
If you want to change a subscription from automatic to manual renewal method, this is possible by setting a flag on the order used to purchase the subscription. For more information, see Changing a Subscription from Automatic to Manual Renewals.
Changing a subscription from manual renewals to automatic renewals is far more complicated and in some cases impossible. Why? Because payments need to be processed by the payment gateway, and the way payments are processed differs by payment gateway.
Charging Recurring Payments for Manually Added Subscriptions provides information for setting up automatic payments with a few different payment gateways.
If you need to switch from manual to automatic renewals for a different payment gateway, contact Support for advice on how or if it can be achieved.
Resubscribe Process ↑ Back to top
There is another type of renewal not included in the document above. After a customer’s subscription has expired or been cancelled, she can create a new subscription which extends the old subscription’s terms by resubscribing from 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.
- If the subscription has a free trial, the customer will not receive the free trial because they are considered to have already benefited from the free trial.
- If the subscriptions recurring amount has changed, the customer’s new subscription will be grandfathered with the original price. For example, consider a product which had the price of $10/month, but has since had a price increase to $12/month. If the customer were to purchase the product normally, they would be charged $12 month. If the customer resubscribes to their expired or cancelled subscription, they will be charged $10/month.
- If the subscription has a sign-up fee, the customer will not be charged the sign-up fee to resubscribe to the subscription because they have already paid the sign-up fee for the original subscription. The exception to this is when the subscription has a $0 recurring total. Subscriptions assumes you are shipping physical products on a different schedule to the payment schedule and using the sign-up fee to charge the full amount of the subscription up front.
- The billing schedule for the new subscription is based on the date the customer resubscribes. For example, a customer has a $10/month subscription renewing on the 1st of the month and it expires after 6 months. If the customer waits until the 5th to resubscribe to the subscription, the next renewal will be processed on the 5th of the following month, and each renewal after that will be processed on the 5th.
- If a customer subscribes, cancels, and then decides to resubscribe before the next recurring payment, this doesn’t change the billing schedule. For example, a customer has a subscription that renews on the 1st of every month. They decide to cancel on 15 July. A quick aside, this will set their subscription status to pending-cancellation. This means they are still a subscriber with full benefits until the next recurring period, and when that period comes they won’t be charged and their subscription moves fully to cancelled. But let’s imagine on the 20th they decide to resubscribe. That’s great and their next recurring payment would be on the 1st of August.
Further Reading ↑ Back to top
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.
FAQ ↑ Back to top
Are custom fields/meta data copied to renewal orders?
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.
How can I test the renewal process?
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.
How is the next renewal payment date calculated?
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.