Guide
How to sell online courses on WordPress
To sell online courses on WordPress you need four things: a plugin that hosts and protects your lessons, a payment processor such as Stripe, a sales page with a clear price, and a student area where buyers log in. If the plugin sends payments to your own Stripe account, you keep your revenue minus Stripe’s processing fee, with no platform commission. The steps below take you from an empty site to your first test sale.
On this page
1 Decide what you are selling
Before you touch any software, choose how people will pay. The model changes which features you need, so settle it first.
| Model | How it works | Best for |
|---|---|---|
| One-time purchase | The student pays once and keeps access. | A finished course or a bundle of courses |
| Subscription | The student pays every month or year while they want access. | A growing library or ongoing coaching |
| Free lessons plus a paid course | Visitors sample a few lessons, then buy the full course. | Building trust with a new audience |
If you are starting out, a one-time purchase is the simplest: one price, one checkout, no renewals to manage. You can add subscriptions later; the guide to selling subscriptions covers that step.
2 Understand where commissions come from
There are three common ways to sell a course online, and they differ mostly in who sits between you and your student’s payment.
- Marketplaces list your course in their catalogue and usually keep a percentage of each sale in exchange for the audience they bring.
- Hosted course platforms give you a ready-made site for a monthly fee, and some also add transaction fees depending on the plan.
- A plugin on your own WordPress runs on your hosting. Students pay through your own payment account, so the only fees are the payment processor’s and the plugin’s license, if it has one.
Selling courses on WordPress without commissions therefore means choosing a plugin where payments go straight to your Stripe account and the vendor never touches the money. Stripe still charges its own processing fee per transaction, which varies by country and card type; check the current rates on stripe.com/pricing.
3 Prepare your WordPress site
A course site is a normal WordPress site with a few extra requirements. Check these before you install anything:
- HTTPS. Real payments require a secure site (a valid SSL certificate). Most hosts include one for free.
- Versions. Far LMS needs WordPress 6.0 or later and PHP 7.4 or later. Your hosting panel shows the PHP version.
- A backup. Take a full backup before adding a plugin that creates pages and database tables.
- A Stripe account. Opening one is free and takes a few minutes.
4 Install a course plugin
This guide uses Far LMS, whose free version sells courses with one-time Stripe payments, with no time limit and no account needed. It is one honest option among several; see the criteria for choosing an LMS plugin to compare it with others. Installing any WordPress plugin from a ZIP file works the same way:
- Download far-lms.zip to your computer.
- In your WordPress admin, go to Plugins → Add Plugin and click Upload Plugin.
- Choose the file, click Install Now and then Activate.
- On activation the plugin creates the pages you need: checkout, student dashboard, one-time purchase, login, sign-up and password recovery.
5 Connect Stripe
- In your Stripe Dashboard, open Developers → API keys and copy the publishable key (
pk_…) and the secret key (sk_…). While you test, use the test keys. - In WordPress, go to Far LMS → Settings and paste both keys.
- Copy the webhook URL shown on that page. In Stripe, open Developers → Webhooks, add an endpoint with that URL and select the events listed in the getting started guide.
- Copy the endpoint’s signing secret (
whsec_…), paste it in Far LMS → Settings and save.
The webhook is what tells your site that a payment succeeded, so the student account and access are created automatically. Card details are entered on Stripe’s side and never touch your site.
6 Build the course and set the price
- Go to Far LMS → Course content and create the course.
- Add a module, then sections and lessons inside it. For each lesson paste a video link (YouTube, Vimeo, Wistia, Loom, Dailymotion, Streamable or your own file) and, if you like, a downloadable material.
- Go to Far LMS → One-time sale and set the price of the course, or of all your courses together.
Protect your files. Downloadable materials are stored in a protected folder, so only students with access can open them. Keep the paid material there, not in the public media library.
7 Run a test purchase, then go live
- Open the one-time purchase page the plugin created and buy the course with Stripe’s test card
4242 4242 4242 4242, any future expiry date and any CVC. - Check three things: the student account exists, the welcome email arrived, and the course appears in the student dashboard.
- Swap the test keys for your live keys and create the webhook again in live mode, because Stripe keeps test and live webhooks separate.
- Make one small real purchase yourself and refund it from Stripe if you wish.
8 Launch: sales page, taxes and first students
Your sales page is what converts visitors, so write it like one. Say who the course is for, what they will be able to do afterwards, show the lesson list and state the price. Use [acad_figure key="lessons"] to display a live lesson count that never goes out of date, and link the button to the purchase page.
Taxes depend on where you and your customers live, so talk to an accountant. As a starting point, VAT on digital services sold to consumers in the EU generally follows the customer’s country, and the EU’s One-Stop Shop lets you declare it in a single place. Read the official explanation at the EU One-Stop Shop page.
Then start small: invite a handful of people you know, collect feedback on the first modules and fix what confuses them before you advertise.
Checklist before you sell
- The site uses HTTPS and you have a recent backup.
- Stripe keys and the webhook secret are saved in the plugin.
- At least one module with lessons and a clear price is ready.
- A test purchase created the account, the email and the access.
- Live keys and a live webhook replace the test ones.
- Your sales page, privacy policy and terms are published.
When you are ready to grow, look at the full feature list and the plans, or read how subscriptions can turn one-off buyers into recurring members.
Questions
Frequently asked questions
Can I sell courses on WordPress without paying commissions?
Yes. With a plugin whose payments go to your own Stripe account, there is no platform commission. You only pay Stripe’s processing fee and, if the plugin has paid plans, its license. Far LMS charges 0% commission on every plan, including the free one.
Do I need a paid plan to sell a course?
Not with Far LMS. The free version sells one course, or all your courses together, with one-time Stripe payments. Subscriptions, discount codes, quizzes and certificates start in the Basic plan; see the pricing page for the exact split.
Where should I host my course videos?
Most course plugins embed videos from a video host rather than serving them from your WordPress hosting, which would be slow and costly. Far LMS accepts YouTube, Vimeo, Wistia, Loom, Dailymotion, Streamable and your own video files.
Will it work with my theme?
Far LMS pages use their own full-width template, tested with block themes and classic themes, and pick up your colours and fonts. You can also set your own in Far LMS → Customization.
Your academy. Your brand. Your revenue.
Install the free version today and start building your academy on the WordPress site you already own.