Ask a room full of WordPress people how to sell an online course, and someone will say “just install WooCommerce” within about ten seconds. Sometimes that’s great advice; other times it’s like buying a delivery truck to carry one sandwich.
Here’s the thing. If your LMS plugin already has a built-in checkout (and most modern ones do), WooCommerce might add nothing except extra moving parts. But in a few very real scenarios, it’s exactly what you need. The trick is knowing which camp you’re in before you build.
This guide walks through how to make that call, shows the setup for both paths, and flags the gotchas that tend to bite people later. Let’s jump right in!
First: do you actually need WooCommerce?
Quick vocab check. An LMS (learning management system) is the plugin that builds, sells, and delivers your courses. WooCommerce is a complete ecommerce stack (cart, shop pages, orders, taxes, shipping) that can sell pretty much anything. It’s the most popular way to run a store on WordPress, and it’s free.
The key word there is complete. If the only thing you sell is courses, a full store stack is often more machine than the job needs. Every extra plugin is another thing to update, configure, and occasionally debug at 11 pm.
So here’s an honest decision framework:
| Your situation | Best route |
|---|---|
| One course (or a handful), and PayPal or Stripe works for your audience | Built-in LMS checkout ✅ |
| You sell courses only (no physical products, no merch) | Built-in LMS checkout ✅ |
| You want the leanest setup possible, with 0% platform fees | Built-in LMS checkout ✅ |
| Your audience needs a local or regional payment gateway | WooCommerce 🛒 |
| You’re selling courses alongside physical products (books, kits, merch) | WooCommerce 🛒 |
| You need serious tax, shipping, or inventory tooling | WooCommerce 🛒 |
| You want subscriptions powered by WooCommerce Subscriptions | WooCommerce 🛒 |
| You already run a WooCommerce store | WooCommerce 🛒 |
If every built-in-checkout row describes you, skip to Path A and go make some tea. If any WooCommerce row hits home, Path B is your friend. Somewhere in between? Read both. Honestly, the decision is the content of this post; the setups are the easy part.
Path A: sell with your LMS’s built-in checkout
The demo below uses Masteriyo. Disclosure: it’s a member of the Themeisle family, so yes, we’re related. The walkthrough stays factual, warts included, and the general logic applies to any LMS that ships its own checkout.
Haven’t built the actual course yet? Start with our guide on how to create an online course with WordPress, then come back here for the money part. Still picking a plugin? Our best free LMS plugins roundup is a good next tab.
What you get for free
Masteriyo’s free version genuinely transacts, so this isn’t one of those “free until you reach the checkout” situations:
- Offline payment and PayPal are built in. Offline payment even supports optional wire transfer details, which is handy if you sell to companies that pay by bank transfer.
- Stripe, Mollie, and Lemon Squeezy are free addons. Cards, European payment methods, or an all-in-one merchant of record (a service that sells on your behalf and handles taxes and compliance for a cut): pick your poison.
- 0% platform transaction fees. Masteriyo takes no cut of your sales. You still pay your gateway’s normal processing fees, but you’d pay those anywhere.
- Multiple currency support if you sell internationally.
Setting it up (about ten minutes)
- Go to
Masteriyo → Settings → Payments → Storeand set your country and business address. - Open the Currency tab and pick your currency and price format.
- Open Payment Methods and toggle on the gateways you want (Offline Payment, Standard PayPal, Stripe, Mollie, Lemon Squeezy), then fill in each gateway’s credentials.
Here’s the Payment Methods screen with Offline Payment expanded:

PRO TIP ⚡ Both PayPal and Stripe have a sandbox toggle in their settings. Flip it on and run a fake purchase end-to-end before you announce anything. Ten minutes of testing beats a launch-day “your checkout is broken” email.
What your students see
On the front end, the course page gets a Buy Now button that leads to a clean, one-page checkout with payment details on the left and the order summary on the right:

Two honest notes about this screen. The coupon field in the order summary is a Pro feature, so the free version doesn’t do discount codes. The tax row also sits at $0.00 here because automated, location-based tax calculation is Pro too, which is worth keeping in mind if you’re selling into multiple tax jurisdictions.
Where the free checkout stops
One-time payments are fully free. Recurring pricing, meaning charging $20 per month for ongoing access like this, is not:

Recurring pricing, along with coupons, course bundles, and the tax automation mentioned above, lives in Masteriyo Pro. That runs $149/year at the intro price. Fair warning: it renews at the “Normally” rate of $299/year, so budget for the renewal, not the intro.
But if your whole model is “one course, one price, PayPal or Stripe,” stop here. Done and done. WooCommerce would add nothing but weight. ✅
Path B: sell courses through WooCommerce
Now for the route this post is named after. WooCommerce itself is free and open source, just like WordPress:

What you’re really buying into is the ecosystem. The WordPress.org listing mentions 100+ payment gateway integrations, so if your students need to pay through a local gateway that your LMS doesn’t support, that alone settles the debate. Add automated tax services, shipping labels, carrier integrations, and an extension for nearly everything, and you can see why “just use WooCommerce” is such common advice.
Here’s how the course side of it actually works with Masteriyo.
Step 1: install WooCommerce and enable the integration
Install WooCommerce from Plugins → Add New and run through its setup wizard. Then head to Masteriyo → Addons and enable the WooCommerce Integration addon. It’s one of the free addons, so no license is needed.
Step 2: link each course to a WooCommerce product
Every course you sell through WooCommerce needs a linked product. Open the course in Masteriyo → Courses, go to Settings → Pricing, set the course to Paid, and enter a price. Then open Settings → WooCommerce. You get two options:
- Create Product: spins up a new WooCommerce product of a special type called Masteriyo Course and links it automatically.
- Link Existing Product: pick a product you already have. A confirmation dialog warns you that its type will change to Masteriyo Course before it converts.
There’s also a handy reverse flow: in Products → All Products, hover any product and click Create Course. Masteriyo converts the product and drafts a linked course for you.
Step 3: understand the enrollment flow
This is the part that matters most, so read it twice. WooCommerce handles the payment, the checkout, and the order emails. The moment an order’s status reaches Completed, Masteriyo enrolls the student automatically. If the order later becomes Cancelled, Refunded, or Failed, they’re unenrolled. Enrollment always fires on Completed (that trigger is fixed), but you can edit the unenrollment statuses at Masteriyo → Settings → Integrations → WooCommerce Integration.
Two more useful settings live on that screen. Enable Add to Cart swaps Buy Now for a cart flow, so students can buy several courses in one go. And Auto Redirect to Courses drops students straight into their course after payment, instead of the standard WooCommerce order confirmation page.
ℹ️ Note: enrollment requires a WordPress account. If you want guest checkout, go to
WooCommerce → Settings → Accounts & Privacy, enable guest checkout, and set account creation to happen during or after checkout. WooCommerce then creates the account your student gets enrolled with. Get this wrong and you’ll see an admin warning with a direct link to the fix. Nice touch, that.
Selling subscriptions through WooCommerce
Want WooCommerce Subscriptions to handle recurring billing? Two things change, and neither is free. First, Masteriyo’s WooCommerce Subscriptions support is a Pro addon, so you need Masteriyo Pro at $149/year intro, renewing at $299. Second, you need the WooCommerce Subscriptions extension itself, which is $279/year. Once it’s running, students stay enrolled as long as their subscription is active.
💡 Do the math first. Masteriyo Pro’s built-in recurring pricing costs $149/year intro. The WooCommerce Subscriptions route costs that same Pro license plus $279/year for the extension. It’s worth it if you need Subscriptions-only features (free trials, sign-up fees, prorated upgrades and downgrades, synchronized renewal dates) or if you’re already paying for it. Otherwise, native recurring wins on price. Thinking bigger than single courses? Our guide on starting a membership site covers that model.
One quirk worth knowing from the official docs: with subscriptions, you set the recurring amount and billing interval twice: once on the course and once on the linked WooCommerce product, and the two must match exactly.
This walkthrough deliberately stays at the “what to click and why” level, following Masteriyo’s official WooCommerce integration docs. That page has screenshots for every step, so keep it open in a tab while you set things up.
Gotchas to know before you commit
Neither path is all sunshine. Here are the pain points worth knowing up front:
- The custom product type. Courses sold through WooCommerce become a proprietary Masteriyo Course product type. It works with the normal WooCommerce flow, but extensions that assume standard product types may need testing before you rely on them.
- Enrollment waits for “Completed.” Instant-payment gateways like cards and PayPal usually complete orders on their own. Manual methods (bank transfer, checks) leave the order on hold until you mark it complete. Until then, your student is locked out. If you sell B2B with invoices, plan for that delay.
- Double entry for subscriptions. Course price and product price, billing interval and billing interval: everything is set twice, and the pairs must match. It’s easy to bump one and forget the other.
- SSL and caching are not optional. You need SSL for payments, period. And exclude your learn, checkout, and account pages, plus the
masteriyo_sessionstable, from any caching plugin. Skip this and you’ll chase phantom “already purchased” states and stale carts for days. - Two systems to maintain. WooCommerce adds shop, cart, and account pages, plus its own update cadence and its own settings maze. None of this is a dealbreaker; it’s just a poor trade for a single $30 course.
The verdict
A quick recap:
- Courses only, and PayPal/Stripe covers your audience? Use your LMS’s built-in checkout. Simpler, leaner, and (in Masteriyo’s case) 0% platform fees on the free plan.
- Need a gateway your LMS doesn’t have, selling physical alongside digital, or already running WooCommerce? Go the WooCommerce route: the integration addon is free, and enrollment is automatic once orders complete.
- Want subscriptions? Native recurring pricing (Pro, $149/year intro) is the budget option. WooCommerce Subscriptions earns its $279/year only if you need trials, sign-up fees, or proration, and remember it needs Masteriyo Pro too.
The honest recommendation: start with the built-in checkout unless you already know you need one of the WooCommerce rows from the table. You can always add WooCommerce later; the integration is free, and linking a course to a product takes minutes. Overbuilding before your first sale is the classic course-creator trap. Don’t fall into it.
How are you planning to sell your courses: built-in checkout or WooCommerce? Let us know in the comments section below!
FREE GUIDE
4 Essential Steps to Speed Up Your WordPress Website
Follow the simple steps in our 4-part mini series and reduce your loading times by 50-80%. 🚀


















