How to setup WooCommerce Subscriptions? (2022 Guide)

In this guide, you will learn how to successfully get started with selling subscriptions on your WooCommerce store.

Use WooCommerce Subscriptions to sell physical products such as soap on a monthly basis.

WooCommerce Subscriptions setup

Or, to sell monthly (or yearly) maintenance packages for recurring services.

woocommerce-subscriptions-virtual-product

Whatever the use case may be, let’s get started!

Pro Tip: I would recommend setting up this plugin on a staging site first OR take a backup on your live site.

Steps to setup WooCommerce Subscriptions

  1. Install and activate the WooCommerce Subscriptions plugin
  2. Configure your subscription settings
  3. Allow customers to create account
  4. Check your Payment methods
  5. Create your first subscription product
  6. Create a variable subscription product
  7. Do a test order with a subscription product
  8. Video tutorials

If you are more of a visual learner, see the video tutorial below (over 30,000 views).

1. Install and activate 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 tab in your WooCommerce Settings.

woocommerce-subscriptions-account@2x

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.

woocommerce-subscriptions-account

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!

woocommerce-subscriptions-automatic-recurring-payments

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 Standard.

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.

woocommerce-subscriptions-product-type

Then, add the subscription price, billing interval, etc.

In this example I am selling Coffee Beans and charging $10/month.

woocommerce-product-simple-subscription@2x

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”.

I created a quick video about how to easily setup a simple subscription on WooCommerce.

Create a Variable Subscription Product

Next from WooCommerce dashboard, click Products > Add New.

Variable-Subscription-Product-WooCommerce-dashboard-Click-Products-Add-New

From the product page, scroll down to product data section and select “Variable Subscription” from the dropdown.

Make sure to select "Variable Subscription" and not "Variable Product".
Reminder: Make sure to select “Variable Subscription” and not “Variable Product”.

Add Attributes

Next, click “Attributes” and then click “Add”.

Variable-Subscription-Product-WooCommerce-dashboard-Products-Product-Data-Variable-Subscription-Attributes-Add-2048x533

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
Variable-Subscription-Product-WooCommerce-dashboard-Products-Product-Data-Variable-Subscription-Attributes-Add-Billing-Period

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
Variable-Subscription-Product-WooCommerce-dashboard-Products-Product-Data-Variable-Subscription-Attribute

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”.

variable-subscription-product-wooCommerce-product-data-variations-create-products-from-all-attributes

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.

Variable-Subscription-Product-WooCommerce-dashboard-Products-Product-Data-Variable-Subscription-Variations-PriceSKU

Click save.

I also created an awesome video about how to easily setup a variable subscription on WooCommerce.

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.

woocommerce-subscriptions-order-icons
Since this was a parent order of a subscription, your icon should look like the ‘blue’ section.

Video tutorials

  1. Sell Subscriptions with WooCommerce
  2. Setup All Products for WooCommerce Subscriptions
  3. Setup a Prepaid Subscription (billed yearly, ships monthly)
  4. Create a Subscription Box Site with WooCommerce
  5. Synchronize renewals with WooCommerce Subscriptions
  6. Send follow-up emails with WooCommerce Subscriptions
  7. WooCommerce Subscriptions Gifting
  8. Manually add (or edit) a Subscription in WooCommerce?
  9. 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.

WooCommerce Subscriptions Gifting

Manually add (or edit) a Subscription in WooCommerce?

How to setup a First Order Discount with WooCommerce Subscriptions?

Simon Gondeck

I’m a big fan of WordPress + WooCommerce (especially WooCommerce Subscriptions). Check out my YouTube channel.

27 thoughts on “How to setup WooCommerce Subscriptions? (2022 Guide)”

  1. 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

    Reply
      • You could also add this filter and function to the bottom of your functions.php file:

        add_filter( 'wcsatt_price_html_suffix', 'apfs_remove_suffix', 10, 3 );
        
        function apfs_remove_suffix( $suffix, $product, $args ) {
        	return '';
        }
        
        Reply
  2. 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 🙂

    Reply
    • 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.

      woocommerce subscriptions membership

      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.

      Reply
  3. 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?

    Reply
    • 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’.

      Reply
  4. 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?

    Reply
  5. 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.

    Reply
  6. 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.

    Reply
    • 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.

      Reply
  7. 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?

    Reply
    • 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?

      Reply
  8. 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!

    Reply
  9. 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?

    Reply
  10. 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.

    Reply
  11. 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.

    Reply
  12. 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?

    Reply
  13. 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

    Reply
  14. 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!

    Reply

Leave a Comment