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:
- Select Settings from the WooCommerce dashboard.
- Click the Accounts & Privacy tab.
- Uncheck Allow customers to place orders without an account.
- 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:
- Create a new WooCommerce product in WordPress.
- Select Simple product from the Product data dropdown box.
- Check the Virtual checkbox.
- Add the price of the course.
- Select the course(s) that you want to offer.
- Click the Subscriptions tab.
- Configure your subscription options.
- 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.
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.
12 thoughts on “How to Setup WooCommerce Subscriptions with LearnDash?”
Doesn’t work on my site. When using WooCommerce Subscriptions the LearnDash resource does not get added to the customers account.
Are you using the latest versions of WooCommerce Subscriptions and LearnDash?
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.
I would reach out to LearnDash support to see if they can take a look at this. I assume you are using the latest versions of LearnDash and WooCommerce Subscriptions?
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.
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?
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
having the same problem
Hey there! To prevent this using LearnDash 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.