This page provides details about how WooCommerce Subscriptions handles recurring payments through the subscription renewal process.
Recurring Payments & the Renewal Process
↑ Back to topA key feature of a subscription is a recurring payment — a payment due at a regular interval over time (ex. monthly). 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 renewal method determines the order of these tasks and what triggers them and how Subscriptions performs them.
Subscriptions offers two methods for handling renewals:
- Automatic renewal – recurring payments process without customer intervention.
- Manual renewal – recurring payments require that the customer logs into the store and makes the payment for each payment interval.
Manual vs. Automatic Renewals
↑ Back to topWhen you activate both manual and automatic renewals in your store, it’s helpful to understand how WooCommerce processes each type of renewal and how customers experience them differently. The table below is a quick reference guide to the differences:
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 since renewal payments are processed automatically. |
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( see Subscription Payment Gateway Guide for more details). 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 (from parent order) is used for each renewal. Customers can update an address for future renewal orders. |
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 payment is complete, the customer receives the Processing/Completed Renewal Order email, and the store manager receives the New Renewal Order notification. | If enabled, the Processing or Completed Renewal Order email is sent to the customer as a record of automatic payment. Store Manager receives New Renewal Order notification immediately. |
Automatic Recurring Payments
↑ Back to topWith automatic payments, Subscriptions charges recurring payments without needing customer or store manager involvement. WooCommerce Subscriptions handles the payment through the payment gateway used for the initial purchase, making it the most convenient option for you and your customers.
For a payment gateway extension to provide automatic payments, the extension developer must integrate their extension with Subscriptions. You can find a current list of payment gateways that support automatic payments at: Subscription Payment Gateways. The Payment Gateways section of Subscriptions’ Settings on your site also lists payment gateways that support automatic recurring payments.
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 topWith manual payments, a subscription has a status of on-hold until the customer logs into your store and pays to renew it.
For example, if a subscription costs $100/year, 1 year after the customer first signed up, Subscriptions puts the subscription on-hold and generates a new order for the $100 renewal (and emails it to the customer if your store has enabled the Customer Renewal Invoice email). Once the customer logs into your store and pays $100, Subscriptions reactivates the subscription 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 new subscription. A walkthrough of the manual renewal payment process is available in Subscriber’s View.
When a subscription accepts manual renewal payments, the customer can choose a different payment method for each renewal payment. Any payment method active on your store is available for use as an option. We don’t recommend manual renewal payments for subscriptions that renew frequently (more than once per year) because they require customers to take action to continue their subscriptions; this could result in less customers renewing since it requires an additional step.
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. The Early Renewal Guide explains this in more detail.
Time Limit on Manual Payments
↑ Back to topWooCommerce includes a Hold stock setting. This allows you to set a time limit for how long a customer has to make a manual payment for an order, after which Subscriptions cancels any unpaid, pending parent order. This does not apply to pending renewal orders, which remain pending indefinitely.
To provide subscribers with a more generous payment period, Subscriptions sets the default time limit to 10080 minutes (one week). You can leave the value blank to disable it completely.
The Renewal Process
↑ Back to topThe 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.
Early Renewal
↑ Back to topThe early renewal process is a sort of hybrid of manual and automatic renewal processes. While Subscriptions offers early renewal on both automatic and manual renewal subscriptions, once the process begins, the customer either needs to go through the checkout process or pay via a early renewal modal. Doing this, however, does not change an automatic renewal to manual or vice versa. You can read more about the specifics in the Early Renewal Guide.
How Subscriptions calculates the “new renewal” payment date
↑ Back to topIn general, Subscriptions calculates the next renewal date based on the last payment date, not the scheduled date. For example, if a customer pays a late renewal on March 3rd, Subscriptions sets the next renewal for April 3rd. This is to ensure the subscriber receives access to the subscription for the full period of each renewal.
However, for synchronized subscription products, Subscriptions maintains the scheduled date regardless of late payments. If a subscription synchronized to the 1st of each month has a late payment on March 3rd, Subscriptions still sets the next renewal for April 1st. This approach preserves synchronized renewal dates.
To always calculate the next payment date from the last scheduled payment date (regardless of if the subscription is synchronized or not), either install the free Woo Subscriptions – Preserve Billing Schedule plugin or add the following snippet:
woocommerce-subscriptions-preserve-billing-schedule.php content:
<?php
/*
* By default, WooCommerce Subscriptions will calculate the next payment date for a subscription from the time of the last payment.
* This snippet changes it to calculate the next payment date from the scheduled payment date, not the time the payment was actually processed.
*/
add_filter( 'wcs_calculate_next_payment_from_last_payment', '__return_false' );
Testing the renewal process
↑ Back to topTo test the renewal process, follow steps outlined in processing 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.
Custom fields/meta data copied to renewal orders
↑ Back to topWooCommerce 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.
If you add any additional custom fields to the subscription manually, Subscriptions copies that data to all future renewal orders.
For Developers: Subscriptions offers a way to exclude specific meta-data from copying to renewal orders. Developers can use the 'wcs_renewal_order_meta_query'
and 'wcs_renewal_order_meta'
filters to exclude certain metadata.
Deactivating a payment gateway associated with a subscription
↑ Back to topWhen you deactivate the payment gateway plugin/extension currently handling automatic recurring payments for subscriptions, the subscriptions using that payment method will switch to Manual Renewal. The following explains what happens regardless of whether you have enabled Accept Manual Renewals or not under the Subscription setting:
Once you deactivate the payment plugin/extension (under Plugins in WordPress Admin):
- The user will need to manually renew their subscription using a different payment method. Additionally, the payment method will no longer be available as an option to the customer.
- The Payment Method in the subscription info (WooCommerce > Subscriptions > Edit Subscription ) will read as Manual Renewal.
- When the subscription’s scheduled renewal is due and a scheduled subscription payment is triggered (
woocommerce_scheduled_subscription_payment
event in Action Scheduler) a renewal order is created with Pending payment status.
- The order note on the renewal order will read: Manual renewal order awaiting customer payment:
Failed Payment Handling
↑ Back to topAs 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.
- Subscriptions sends an email to the customer to notify them of payment failure (if Customer Renewal Invoice is activated).
- Customer logs 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.
When paying for a failed renewal order, Subscriptions displays only gateways that support payment method changes by the customer. 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 topWooCommerce Subscriptions provides an automatic retry system for failed (automatic) recurring payments. You can activate this to retry payments multiple times and email customers to complete the payment. For more details, see Failed Recurring Payment Retry System. This differs from the default approach when a customer would receive an email and need to take action to renew their subscription.
The flow chart outlines how this process works:
Resubscribe Process
↑ Back to topAnother type of renewal not included in the guide above is resubscribing. After a customer’s subscription has expired or Subscriptions has cancelled it, the customer can create a new subscription that extends the old subscription’s terms by 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. The Resubscribe Guide explains these behaviors in more detail.
Questions and Support
↑ Back to topSomething missing from this documentation? Do you still have questions and need assistance?
- Have a question about a specific extension or theme you’d like to purchase? Click here.
- Already purchased and need some assistance? Get in touch with a Happiness Engineer via the WooCommerce.com Support page and choose this extension name from the “I need help with” dropdown.