In this guide, you will learn how to synchronize renewals when using WooCommerce Subscriptions.
Synchronization will allow you to set the renewal date of all your renewals for orders going forward to a set day of the month, such as the first of the month, instead of on the day of the month that each customer ordered.
Here is a quick visual.
You can also set it up so that it prorates the first month’s payment. This is the 3rd example in the diagram above.
For example, I sell a maintenance package that costs $250 per month.
And … I synchronize my renewals to be the 1st of every month.
This means that on 1st of every month I automatically am paid by my customers.
If a customer orders on March 10th, they are charged $177. Then, pay $20 on April 1st … then May 1st and so forth until they cancel.
If you are more of a visual learner, feel free to instead follow along with my video tutorial, where I outline everything described below.
Let’s jump into it!
Enable Synchronization of Renewals in WooCommerce
In its default state, WooCommerce Subscriptions will bill renewals on the day of the month that your customer ordered.
So, if you have three customers, with one ordering on September 5, a second ordering on October 15, and a third ordering on November 25, every month you would get a renewal on the 5th, 15th and 25th.
To synchronize your renewals to the same day of the month, the first thing that you must do is turn synchronization on.
Go to WooCommerce > Settings and click on the Subscriptions tab. About halfway down the page you will find the Synchronization heading.
There you will find the option Synchronize renewals. Click on Align Subscription Renewal Day.
Now, when a customer selects one of your subscription products in your WooCommerce site, they will see that the product will renew automatically on the first day of every month.
Quick Note: Changing this setting will not affect your existing subscription orders. So, if you already have orders that renew on different days of the month, they will continue to renew on these different days. To change this, you will have to edit every existing subscription. But this is not recommended unless you have a very good reason to do so. If you must check out my tutorial on bulk updating subscriptions.
Set the Synchronization Day for Each of Your Products (Optional)
If you don’t want your subscription products to renew on the first day of the month, you must set up the synchronization day for each subscription product that you would like to apply this feature.
You do this by selecting the Products menu option from your WordPress Dashboard and clicking All Products. Then, edit the subscription product that you want to apply synchronization by clicking the Edit option underneath the product.
In the Edit product page, go to the General tab and you will see the Synchronize renewals dropdown box. The default value is the Do not synchronize, but you can synchronize your renewals to a different day by selecting this day from the dropdown list. For example, set to the 15th day of the month.
In most cases I always set to the 1st day of the month if I am using synchronization but everyone has a different use case.
If you have a Variable Subscription Product, you have to click the Variations tab.
Then, click into each specific Variation.
Scroll down until you see the Synchronize renewals option. For example:
Enable Prorated Initial Payments (Optional)
By default, WooCommerce will not charge the initial payment of the subscription, regardless of the day of the order. So, if your subscription product costs $100, the first month’s charge will be $0 whether they ordered it on the first day of the month or the last. But you can change this.
First, go back to the Synchronization heading in the Subscription tab of your WooCommerce settings. Underneath Synchronize renewals, you will find the option Prorate First Renewal.
By default, this is set to Never (do not charge any recurring amount), but you can change this to one of the following options:
- Never (charge the full recurring amount at sign-up): You will charge your customer the full subscription price at sign-up. You have a subscription product that costs $100 and renews on the 1st of each month. If a customer signs up on any day besides the 1st they pay the full price. For example, if I sign up on May 25th I pay $100 … on June 1st $100 … July 1st $100 and so forth.
- For Virtual Subscription Products Only: For non-physical subscription products, such as eBooks and software, you will charge your customer the prorated price at sign-up. So, if your subscription product costs $100, their first payment will be $100 if they buy it on the first day of the month but only $50 if they buy it on the 15th of the month. However, for physical products, they will pay the full price at sign-up.
- For All Subscription Products: For all subscription products, you will charge the prorated price at sign-up.
Hi,
This an amazing tutorial thanks !
In case i have a yearly subscription product that should be renew with stripe every 1rst january. It grants a membership plan.
I don’t want to use prorate, i mean the price is 20€/year and even if the customer subscribe in december (jsut for one month) i need he pays 20€.
Is this possible (to bypass prorate) ?
Thanks alot
Hi Simon,
Very useful all the information you explained for aligning payments.
I have a different scenario in which I must charge the full recurring amount for all users so that each user may have a different recurring payment day. Basically each user will renew his subscription the same day of the following months. Subscriptions for our courses are 9 months long.
The problem that we have is that we never know the exact day to finalize the subscription for all subscribers. The decision is taken during the last month of the course when we get a final notice from the government to notify our students when the exam will take place. It may end at the middle of the month or at the 20th, etc.
We need a mechanism to calculate the remaining days of the last month to get the total money to refund each student manually once the course is over.
Some members may be refunded half of the money if their recurring payment happens the first day of the month. in case it happened exactly at the middle of the month then they will be refunded 100% of the amount, etc.
Do you think this may be achieved somehow?
Thanks in advance!
Hi Simon!
Thank you for such excellent material and your time to make these tutorials. i have a problem and i don’t know what i am doing wrong, i have made a one day trial, so that it will renew and collect the money. but it doesn’t work. the first payment works fine but then for the auto-renewal it doesn’t work. i don’t know what i am doing wrong. could you help me please.
Hey Oscar, what payment method are you using on your WooCommerce store? Are you using a payment method that supports Automatic Recurring Payments? Can you check by going to WooCommerce > Settings > Payments tab > then look under the “Automatic Recurring Payments” column?
Hey,
Thanks for the helpful content you’re producing.
I’d like to set up synchronized payments for variable subscriptions, but I can’t find a way to set it up.
The feature you’re showing above isn’t available on variable subscription products.
Could you help me out on this one?
Thanks!
Hey Kevin, sure thing! If you have a Variable Subscription Product, you have to click the Variations tab. Then, click into each specific Variation and scroll down until you see the Synchronise renewals option. Do you know see this option?
Hi Simon,
Thanks for your quick response, I’ve found the option to set you mentioned above.
Sadly this brings the total and subtotal to zero (I think because I synced them to the 15th of every month), but I’d like to get the first payment directly and the next one the month after on the 15th.
Thanks again for your help!
Re: Never (charge the full recurring amount at sign-up)
I have an issue where the customer ends up being charged twice with this solution. Once at signup then again at billing syncronisation.
Hey Lenny, can you provide more info of your use case? Is your subscription product synchronized on the 1st of each month?