In this guide, you will learn how to successfully get started with selling subscriptions on your WordPress site using WooCommerce!
I probably don’t need to tell you subscriptions/recurring revenue model is growing across all industries or that it is INSANELY PROFITABLE.
The problem is that many companies that are thinking of using WooCommerce don’t know all the cool functionalities WooCommerce Subscriptions has to offer. Fortunately, I am going to show you how to set up WooCommerce Subscriptions on your store!
To start, there are a few reasons to use WooCommerce Subscriptions:
- Recurring billing for Physical Products: For example, subscribe to get a new razor every 2 weeks, every month, every 2 months or every 2 years. The possibilities are endless!
- Recurring billing for Digital Services: Memberships, Online Newspapers, Software, Plugins, Hosting etc
The result is that you will be able to charge your customer automatically! No more waiting on customers to manually pay an invoice each month. They will be relieved. And you be excited too! You will have new orders every month, which will only increase your recurring revenue and cash flow.
Quick Examples
I have used WooCommerce Subscriptions on many client sites and also my own site. For example, I have used WooCommerce Subscriptions with clients of mine to sell all-natural soap on a monthly basis. Customers could choose to subscribe every month, every 2 months, or every 3 months. Super cool!
I also have used WooCommerce Subscriptions for my own business to sell monthly (or yearly) packages for recurring services such as web maintenance. This had led us to no longer accept checks. No more checking the mail everyday to see if a check arrived!
Overall, whatever your use case may be, you should be able to sell it using WooCommerce Subscriptions. If you are have any questions let me know in the comments below.
If you are more of a visual learner, see the video tutorial below (over 45,000 views).
Let’s jump into it!
1. Install the WooCommerce Subscriptions plugin
To get started, purchase the WooCommerce Subscriptions plugin.
Next, download the .zip file.
Then, on your WordPress dashboard, hover over Plugins and click “Add new”. Upload the .zip file and click “Install now”.
Finally, activate the plugin and go to the WooCommerce Subscription settings.
2. Configure the WooCommerce Subscriptions settings
Let’s setup the optimal settings for WooCommerce Subscriptions!
On your WordPress dashboard, go to WooCommerce > Settings and click the Subscriptions tab.
Under the Renewals heading, uncheck “Accept Manual Renewals”.
Unless you have a reason to accept manual renewals, I recommend always unchecking this!
WooCommerce Subscriptions is setup to automatically run your customer’s payment method every billing interval (i.e. every day, every week, every month, every year). Unless a customer’s credit card is declined, payments will continue to run without the need for customers to re-add their payment method. A major time saver!
Next, scroll down to Retry Failed Payment ( bottom of the page) and check Enable automatic retry of failed recurring payments.
If a customer’s payment fails on a subscription renewal order this will allow the payment to be retried 5x in the next week. If the payment still fails after 5 retries, the order status will be updated to Failed. In my experience this rarely happens but something to keep in mind.
Finally, Save changes.
3. Allow customers to create account during checkout
Go to the Accounts & Privacy tab in your WooCommerce Settings.
Make sure that you are allowing customers to create an account during checkout. You could also check the option to automatically create account for customer based on their email address.
Their username and password will be emailed to them after they Checkout.
4. Check your payment methods
Go to the Payments tab in your WooCommerce settings.
To use WooCommerce Subscriptions, make sure you have at least 1 payment method that supports Automatic Recurring Payments.
If you see a checkmark next to your payment method, you are all set!
If you do not have a payment method that supports WooCommerce Subscriptions, see the full list of payment methods that support subscriptions including Stripe, Authorize.Net, and PayPal.
5. Create your first subscription product
Add a new product to your store. Name the product.
Next, scroll down to the Product data section and set the Product Type to Simple subscription.
Then, add the subscription price, billing interval, etc.
In this example I am selling Coffee Beans and charging $10 per month.
Finally, upload an image of your product and “Publish” your product.
Pro Tip: If you already have an existing non-subscription product and want to offer this product on subscriptions, it may be easier to just “clone” an existing product using the Duplicate Post plugin. Then, edit that product and scroll down to the bottom and update your product to a Simple Subscription or Variable Subscription.
Create a Variable Subscription Product
Next from WooCommerce dashboard, click Products > Add New.
From the product page, scroll down to product data section and select “Variable Subscription” from the dropdown.
Add Attributes
Next, click “Attributes” and then click “Add”.
Attribute #1 (Required)
From here, name your attribute, enter in the attribute values, and click the checkbox to enable visibility on the product page and used for variations.
Here is a example of the attributes we implemented for a customer to give you a complete visual for how to insert this information:
- Attribute Name: Billing Frequency
- Value(s): Month | Year
- Enable/Checkbox:
- Visible on the product page
- Used for variations
Click save.
Attribute #2
Next, if necessary, add an additional attribute (i.e. scent, flavor, color, etc.). Follow the same process as before, click “Add” and then entering the attribute information. Here is a example of the attributes we implemented for a customer to give you a complete visual for how to insert this information:
- Attribute Name: Grind
- Value(s): Whole | Ground
- Enable/Checkbox:
- Visible on the product page
- Used for variations
Click save.
**Important**: My most popular question for variable subscriptions is how to setup multiple attributes. Thus, I provided this screenshot below to show how the product page will look like when each attribute was filled in on the back-end.
Create variants from all Attributes
Next, click “Variations” and select “Create variations from all attributes” from the dropdown and select “Go”.
Next, fill in pricing/SKU information for each subscription variation.
Note: you need to fill in the price for each variation, as subscription variations won’t display on your product page if they have no price.
Click save.
6. Do a test order with a subscription product
Now, let’s do a test checkout to simulate how a customer would go through this process.
Open up an incognito window and go to your Product page. Click “sign up now”.
Add the product to your Cart and go through the Checkout process. I would recommend using a email address that is not an Administrator on your site.
This will allow you to better understand how your customers will go through this process.
Check your email. You should have received a subscription order receipt.
On your Order Received page, click the “view” button to see details about your subscription on your Account page.
Your customers will see the start date, last order date, and next payment date.
They also will have the option to cancel, change their payment method, or renew now (if early renewal is enabled).
Navigate back to the backend of your WooCommerce store and click “Orders”.
Reference the screenshot below for the difference between the parent order icons and the renewal order icons.
Frequently Asked Questions
Can I buy 1 subscription product and a non-subscription product on the same order?
Yes, you need to purchase the All Products for WooCommerce Subscriptions extension on your WooCommerce site.
How to allow subscriptions and one-time products be purchased in a single transaction?
To allow multiple subscriptions and products to be purchased in a single transaction, check the option for the Mixed Checkout setting in your WooCommerce settings under the Subscriptions tab.
If you do not want multiple subscriptions and products to be purchased in a single transaction, uncheck the Mixed Checkout setting. If you try to add a product to your Cart, you will see the following message “A subscription has been removed from your cart. Products and subscriptions can not be purchased at the same time.”
How to manually apply a discount to a existing subscription?
On your WordPress dashboard, go to WooCommerce > Coupons > and create a new coupon.
On the General tab, set the Discount type as a Recurring Product % Discount for 100% and for 1 payment. Reference the screenshot below.
Next, go to the Usage Restriction tab and add your subscription product under the Products section. Save your coupon.
Then, go to the customer’s subscription and click Apply Coupon and enter the coupon code.
What is a mixed checkout in WooCommerce?
A Mixed Checkout in WooCommerce is when a single transaction includes both subscription products and one-time products.
To allow multiple subscriptions and products to be purchased in a single transaction, check the option for the Mixed Checkout setting in your WooCommerce settings under the Subscriptions tab.
If you do not want multiple subscriptions and products to be purchased in a single transaction, uncheck the Mixed Checkout setting. If you try to add a product to your Cart, you will see the following message “A subscription has been removed from your cart. Products and subscriptions can not be purchased at the same time.”
Does Stripe work with WooCommerce Subscriptions to accept recurring payments?
Yes, Stripe accepts recurring payments and works on WooCommerce Subscriptions.
What are the limitations of PayPal Standard with WooCommerce Subscriptions?
Read more about the limitations of PayPal Standard with WooCommerce Subscriptions here: https://docs.woocommerce.com/document/subscriptions/limitations-of-paypal-standard/
How enable Guest Checkout for WooCommerce Subscription Orders?
How enable Guest Checkout for WooCommerce Subscription Orders?
-
WooCommerce > Settings > Accounts & Privacy > Guest Checkout:
- Disable: Allow customers to place orders without an account
- Enable: Allow customers to log into an existing account during checkout
-
WooCommerce > Settings > Accounts & Privacy > Account Creation:
- Enable: Allow customers to create an account during checkout
- Enable: When creating an account, automatically generate an account username for the customer based on their name, surname or email
- Click ‘Update’
Video tutorials
- Sell Subscriptions with WooCommerce
- Setup All Products for WooCommerce Subscriptions
- Setup a Prepaid Subscription (billed yearly, ships monthly)
- Create a Subscription Box Site with WooCommerce
- Synchronize renewals with WooCommerce Subscriptions
- Send follow-up emails with WooCommerce Subscriptions
- Manually add (or edit) a Subscription in WooCommerce?
- How to setup a First Order Discount with WooCommerce Subscriptions?
Sell Subscriptions with WooCommerce
Setup All Products for WooCommerce Subscriptions
If you want to see the full post, see how to add subscriptions to existing products.
Setup a Prepaid Subscription (billed yearly, ships monthly)
Create a Subscription Box Site with WooCommerce
Synchronize renewals with WooCommerce Subscriptions
Learn how to synchronize WooCommerce Subscriptions renewals in the video below.
Send follow-up emails with WooCommerce Subscriptions
If you want to send follow-up emails to customers before their next payment date, you can use AutomateWoo or the Follow-Ups emails extension.
Simon, Your instructions are so helpful and clear. You have saved me at least a couple of hours of trying to understand myself. Thank you!
Hi Simon!
Thank you for a great article! Do you know is it possible to set up a subscription product, so while buying people have a choice: using stripe and autorenewal or normal payment gate where they can prolong it manually?
Hi there, do you have a solution. Our Prorate Recurring Payment isn’t working, it’s set as Never, however customers are being charged when they make the switch.
This is very helpful! Question. How do we setup an introductory sale on a subscription, where the first period has a reduced price but the renewal price is standard? I am not seeing this anywhere, pretty common/basic use case. Thanks!
Hey Zachary! Great question. I just created a video on how to apply a first order discount. I added this to the bottom of this blog post. You also can check it out here: https://youtu.be/X1JKUFFVZL4. Let me know what you think. I gave 3 methods on how to do this.
Hello simon, I have a problem with this plugin and its use of recurring payment with paypal, since when the renewal time comes, it does not do it automatically, but manual and the manual renewal check is deactivated, do you have any knowledge of it?
Hey Jean, what PayPal plugin are you using? Is it the one supported by WooCommerce?
Hello Simon,
I am using woocommerce subscrition and all products. I want to change the text displayed on the site.
I want it to say “1 month”, “2 months”,… Instead of “Every month”, “Every 2 months”.
Just like your branch basics products.
Thank you
Hey Martin, you would have to customize the plugin files. See this post on exactly how to do this: How to add subscription plans to your existing products on WooCommerce?
Hello Simon,
I run a store with Woo Subscriptions, but there’s a case that I can’t find a way to solve.
We sell cleaning packages for home use and deliver them monthly. It’d be awesome if customers can pay for a yearly subscription, but receive their orders (+pay for delivery) monthly.
I see a plugin from Woo that potentially covers our needs, but I cannot figure out how to set up that prepaid payments. Do you by any chance have a tutorial for this – Prepaid Subscriptions? Or is there any other option to accomplish that?
Hi Jerome! Great question. I just created a new tutorial that goes over how to set up a prepaid subscription. Check it out here: https://youtu.be/AYistm0IB8c
Hi Simon, first of all, thank you for this tutorial and the videos.
A question, I would like to make a subscription with a recurring payment of up to 60 months, but it only comes up to 24 months in the plugin configuration. How could I fix it?
Thank you very much in advance.
Hey Jose, great question! Reference the snippets in this doc for how to extend the default lengths past 24 months: view here
Hola Simón, muchas gracias por proporcionar esta ayuda.
No encuentro cómo un suscriptor puede cambiar el método de pago, en este caso agregar una nueva tarjeta.
Muchas gracias.
Hi Simon, As per your tutorial with the branch basics is there a way I can add a line above and below the delivery options? Would this be a function or CSS change to the "element" around the subscriptions container?
Hey Simon, thanks for all your help! I want to send an E-Mail to my customers the second they unsubscribe. How do I do that? Settings->E-Mail shows only the option to inform me if someone unsubscribes. Greetings from Germany!
I have a product for sale for $150. I want to give the customer the option to add one of three recurring subscription to the product, 1 month, 2 months or 3 months but not charge for the subscription at checkout? It looks like WooCommerce Subscriptions doesn’t allow me to sell the product and the subscription as an optional product. Is it possible to sell the product with optional subscriptions?
Hey Marc, can you explain your example in more detail? You sell Product A for $150. You also want to give the customer the option to subscribe to Product B (1 month, 2 month, 3 month) as well during the Checkout process? Or, you also want to give the customer the option to subscribe to Product A during the Checkout process?
Great tutorial! Is there a way to generate a receipt for subscriptions every month?
Thanks Doug! Are you referencing a Invoice that is downloadable? Or an automated email with that month’s subscription details such as order date, payment amount, etc?
Am using subscription for Videos but what happens when the subscription ends, does the product get automatically removed from the user Account , I would like to know the Logic.
Does your subscription product expire after a set period of time or is this set to renew every month and never expire unless the customer cancels? If you set the subscription to expire after a specific time period the customer will not have access to the subscription product after the subscription expires.
For example, you set up your subscription product to be $10/month and expire after 4 months. A customer signs up on December 4th and pays $10 for their 1st payment. Their next order date is January 4th for $10, February 4th for $10, and March 4th for $10. the customer’s subscription will automatically update from Active to Expired on April 3rd/4th. The customer would no longer have access as their subscription is Expired now. Note: are you using another plugin to manage the customer’s access besides subscriptions?
Another situation is if you set the subscription product to be $10/month and never expire. A customer signs up on December 4th and pays $10 for their 1st payment. Their subscription will keep renewing each month for $10 and always be Active unless the customer cancels their subscription. If the customer decides to cancel June 15th of next year, their subscription status will update from Active to Pending Cancellation until July 4th and they will still have access since they paid $10 for that month already. On July 4th, their subscription status will update from Pending Cancellation to Cancelled and thus no longer have access.
I got this error on my woocommerce subscription “Subscriptions Mode: Staging” the woocommerce it has a read label Staging, i would like to know what it means.
Good question! What this means is that your site is in ‘staging mode’ and will not automatically charge customer’s credit cards or subscription related emails. This was setup so if you copied your live site to a staging site your customer’s credit cards would not get charged twice. See more here.
Odd scenario maybe you can help? We have monthly subscriptions and annual subscriptions (two different products). The monthly ones we want to automatically renew and charge, but the annual ones we want to automatically renew (generate invoice) but not charge.
Any thoughts on a method to prevent the storing of cards for one particular membership/subscription level?
I got this message on checkout “woocomerce subscription No Available Payment Gateways Warning” I have set up woocommerce subscription with paypal standard what is the problem?
On your WordPress dashboard, hover over WooCommerce and click ‘Settings’. Next, click the ‘Payments’ tab and then click ‘Manage’ in the PayPal Standard row. Then, check ‘Enable PayPal Standard for Subscriptions’. Finally, scroll to the bottom of the and click ‘Save changes’.
Hi Sam, Thanks for these! you are a super star! Quick question – we are offering a yearly golf membership. the first 6 months of a year are set. then the last 6 months each have different prices. At the moment, the visitors has to chose e.g. june – dec and they get 1 price or they have to choose e.g. feb – dec and they get another price. do you think there is a way where this plugin can automate that e.g. jan – dec costs $100, mar – dec costs $80, nov – dec costs $20 – and that WP can automatically give them the cost based on the current month? hope that makes sense. Thanks for any help 🙂
Hey Lindsay, anything is possible with the right developer and no perfect way to do this.
What I would recommend is setting up a simple subscription product for $100/year and have it always renew on a specific date of the year (i.e. the 1st of January).
Then, in your WooCommerce Subscriptions settings, under Synchronize renewals enable “Align Subscription Renewal Day”. In addition, set Prorate First Renewal to “Never (do not charge any recurring amount)”.
Finally, edit your product and update the Sign-up fee price to what price you should charge for that period. For example, since it’s still October you would update the Sign-up fee price to $80. If customer John signed up for a membership in October, 2020 he would pay $80.
On January 1st, 2021 his membership could automatically renew for $100 because that is the subscription price each year. Another example is for the month of November 2020…you would go back and edit the Sign-up fee price from $80 to $20. If Sam purchased a membership in November or December he would pay $20 on that date and then his subscription could automatically renew for $100 on the 1st of the year. What about the price for January – December? On January 1st, 2021 simply update the Sign-up fee price from $20 back to $100. If Katie signs up on February 5th, 2021 she would pay $100. Her next payment would automatically renew on January 1st, 2022. On March 1st, 2021 update the Sign-up fee from $100 to $80. On November 1st, 2021 go back and update the Sign-up fee from $80 to $20.
Overall, this method requires you to update the Sign-up fee price only a few times a year but assures customers have the same renewal price. You could also look into prorating the $100 fee but that is calculated by the number of days left in the year and not the months and could get confusing quickly.
Hey Simon,
Thanks for the help on getting this started! Would you be able to help remove the “-subscribe and save X%” from the pricing. It’s everywhere, on the homepage, shop, products, recently viewed products… Just makes the site look too busy. I can’t find anything on the internet about removing this. Thanks!
Nicole
Yes for sure! The quickest way to remove the “-subscribe and save X%” from the pricing would be to add this to your CSS file:
You could also add this filter and function to the bottom of your functions.php file: