How to Setup WooCommerce Subscriptions with LearnDash?

If you are interested in selling subscriptions to your online courses, LearnDash and WooCommerce Subscriptions make a terrific combination.

The two together provide everything that you need, no matter how you want to offer your courses.

In this article, I will show you how to both install and set up the two products on your WooCommerce site as well as how to set up LearnDash.

Installing LearnDash and WooCommerce Subscriptions

To set this up you will need to purchase LearnDash and WooCommerce Subscriptions. After purchasing both plugins you will need to upload and activate both plugins on your WordPress site.

Configuring LearnDash for WooCommerce Subscriptions

In order to properly integrate LearnDash with WooCommerce Subscriptions, you must disable guest checkout, as LearnDash needs a user account in order to function correctly.

To disable guest checkout with WooCommerce, do the following:

  1. Select Settings from the WooCommerce dashboard.
  2. Click the Accounts & Privacy tab.
  3. Uncheck Allow customers to place orders without an account.
  4. Check Allow customers to create an account during checkout.

Setting Up LearnDash Courses with WooCommerce Subscriptions

You can set up LearnDash courses with WooCommerce Subscriptions as either a Simple subscription or a Variable subscription.

If there are no variations in your LearnDash course offering, you probably want to set it up as a Simple payment plan. To do this, you need to edit the product in WooCommerce and select Simple payment plan from the Product data dropdown list. You also need to click Virtual on.

Then, in the Subscription price ($) fields, enter the price of the offering and the regularity that you would like to bill, such as every month. From the Expire after dropdown list, select when the offering will end.

While there are other fields on this screen that you may want to enter, the most important is the Related Courses dropdown list, where you should select all the LearnDash courses that apply to this offering.

If you want to offer variations of your LearnDash course offering, you need to select Variable subscription from the Product data dropdown list. Then, you need to add both the attribute of the course that will vary and all its variations.

To add a new attribute, select Attributes from the Products menu and enter the name of the attribute in the Name field. Then, click the Add attribute button.

The attribute will afterward appear in the list of attributes on the right-hand side of the page. To add variations to this attribute, hover over it and click Configure terms, and the Edit Attribute page will display.

Here enter all variations of the attribute by entering their names in the Name field and clicking the Add new [Attribute] button for each one, which will then display on the right-hand side of the page.

Next, go back to the Product page and select the Attributes menu option. Then, select the attribute that you just added from the Custom product attribute dropdown list and click the Add button. Also, click the Select All button, which will place all the variations in the Value(s) field, and click on Used for variations. Finally, click the Save attributes button.

Next, select Variations from the Product Data menu. Then, from the Add variation dropdown list, select Create variations from all attributes and click Go.

After creating the variations, you will now have all the fields that you had available for a Simple subscription for each variation that you just created.

Note: Make sure to enter a price for each variation or they will not appear in your store.

When a customer buys a subscription to the course that we have just created, they will see the following:

Setting Up LearnDash Courses with WooCommerce Subscriptions

The WooCommerce Subscriptions plugin is compatible with LearnDash courses. But, when applying it to LearnDash courses, you need to apply it as a Simple product.

Here are the steps for applying the WooCommerce Subscriptions plugin to a LearnDash course:

  1. Create a new WooCommerce product in WordPress.
  2. Select Simple product from the Product data dropdown box.
  3. Check the Virtual checkbox.
  4. Add the price of the course.
  5. Select the course(s) that you want to offer.
  6. Click the Subscriptions tab.
  7. Configure your subscription options.
  8. Save and publish your product.

In the following example, I have set up a Learn Guitar Course that I am selling for $100 or 4 monthly payments of $25:


To properly apply the plugin to a LearnDash course, you also have to change some LearnDash settings. Go to LearnDash LMS > Courses and update the course’s settings to Closed Access Mode and set the Button URL to either your cart or product page, like this:


Finally, do the following steps to prevent LearnDash from removing a user from a course after they complete all their payments:

  • On your WordPress dashboard, go to  WooCommerce > Settings > and click the Subscriptions tab.
  • Next, scroll down to the bottom of the Subscriptions settings and check the  Disable checkbox under Access Removal on Expiration.
  • Finally, click Save changes.

Is WooCommerce Payment Plans Compatible with LearnDash Courses?

Yes, the WooCommerce Payment Plans plugin is compatible with LearnDash courses. But, when applying it to LearnDash courses, you need to apply it as as Simple product instead of as a Course.

For complete instructions on applying the WooCommerce Payment Plans plugin to a LearnDash course, go here.

Final Words

LearnDash and WooCommerce Subscriptions together make it incredibly easy to sell subscriptions to your online courses. This allows you to focus on what’s truly important: creating great content that your customers will love.

If you have any questions about this topic, please feel free to ask them in the comment section below. Also feel free to add any pertinent comments that you have about the topic.

Simon Gondeck

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

19 thoughts on “How to Setup WooCommerce Subscriptions with LearnDash?”

  1. Hi there!

    Do I need BOTH the WooCommerce Subscriptions AND the Payment Plan extensions for having students register/purchase courses via LearnDash?

    As a practice run…

    I noticed when I JUST use Subscriptions there is NOT a “payment plan” option in WooCommerce product page and I also notice that I don’t officially “register” in the course.

    So do I need BOTH extensions for this to work properly?

    Thank you so much! I hope to hear from you asap and really appreciate your time. 🫶

  2. Hi there!

    Does this WooCommerce Subscriptions happen automatically with LearnDash, correct? In other words, I won’t have to go in and manually charge each person or send email reminders for them to purchase each month, right?

    Also, I can set up the subscription/membership indefinitely? And then my students can cancel their subscription at any time?

    Thank you so much for your help! Tabitha

  3. Hi there, hey guys I have a question. Let’s say a customer needs to pay on 4 rounds or quotas a payment of 100 USD and he’ll pay every month. I would like to be able to suspend his access to the course if he’s delaying this payment. Is that possible? What else I might need to do to fulfil this scenario?

    • I also have the same question. If the customer doesn’t pay any of the outstanding payments, can we auto remove the access to the learndash course?

  4. Hi, thank you for your tutorial. Just a little question.

    When the subscription period end does LearnDash automatically disable the user from the specific courses they have bought?


  5. Doesn’t work on my site. When using WooCommerce Subscriptions the LearnDash resource does not get added to the customers account.

  6. Hi and Thank you for this excellent tutorial!
    I have a big problem with course subscriptions. I did exactly all the steps using Woocommerce Subscriptions and LearnDash. I setup manual payment through custom gateway (no paypal, stripe, …). When a user buy a subscription, they can access the course but when their subscriptions expire, they still have access to the course! Why accessing to courses can’t be disabled after expiration?

    • On your WordPress dashboard, go to WooCommerce > Settings > and click the Subscriptions tab. Next, scroll down to the bottom of the Subscriptions settings and uncheck the Disable checkbox under Access Removal on Expiration. This will allow your users to no longer have access to your course after expiration.

      • Thanks for your response.

        That checkbox was and is unchecked but users after the end of subscriptions have access to courses they had subscribed.

      • This disable option if chaecks also means that if user cancel sebscription he will see the courses always? or it will expired after his last month ends?

        I mean if user stopped suscription in 7.2.24 so he will have accesss until ends of febuary? because he paid for it…

  7. Hey, I see this is an older thread, but very helpful. Thank you.
    I am looking to offer a course with an associated membership, but am not sure how to set up the backend…. What I have in mind is: a customer purchases the course (either one time fee or payment plan), and they receive a free four month trial to the membership, after which monthly payments for the membership start.
    It seems like I could create two separate ‘products’ and bundle them. (maybe?) What would be the best way to set something like this up?
    I am using LearnDash, Woocommerce, and Cartflows.

  8. Hello, what tool can I use to sell courses by bank transfer, right now I have a payment gateway that when the user registers and makes the purchase via transfer, the course is enabled without having completed it, I need the course to remain blocked until the user there concluded with the complete payment.

    • Hey there! What payment gateway are you currently using? It’s probably easier to fix the issue with your current payment gateway to restrict access to the course until the payment has gone through. Are you using any other plugins that are auto-completing orders in WooCommerce? Are you using PayPal or something else? Can you provide more details about your situation?

  9. Hi there, The course expiry date is not changing after renewing the subscription. Also, the course expiry date will not extend in account even after renewing the course. For example: I purchased 4 weeks course with 7-day free trial. And the payment is on weekly basis till 4 weeks. The problem is after 7 day trial when we renew subscription manually, the learndash course expiry date will not extend and removes the course access as well from account. Do you have any solution for this? I purchased the course


Leave a Comment