Skip to content
GPLWP Guides

How to create and sell online courses

Membership & LMS Time About 2–4 hours for a basic course 7 steps Updated 9 Oct 2026

MEMBERSHIP & LMS
The short answer

WordPress can publish course content, but selling a proper course with enrolment, progress tracking, quizzes, and protected lessons requires an LMS plugin, often alongside WooCommerce or a payment integration. Build and test the learning path before sending customers to checkout.

The route
  1. 01Plan the course structure
  2. 02Choose the access route
  3. 03Create the course and lessons
  4. 04Set enrolment and payments
  5. 05Build the sales and student pages
  6. 06Test the complete purchase
  7. 07Use a faster branded setup

What you need

  • A self-hosted WordPress site with SSL enabled
  • Admin access to WordPress
  • Course content such as videos, lesson text, downloads, and quizzes
  • A payment account and business details for your chosen gateway

Plan the course structure

Write the course outline before opening WordPress. Divide it into modules, lessons, topics, quizzes, downloadable resources, and a clear completion point. Decide whether students can move freely or must complete lessons in order.

Keep videos, transcripts, and downloads organised with consistent names. Do not upload paid lesson files to a public media URL and assume the LMS will protect them; test whether an unauthorised visitor can open each file.

Choose the access route

For a small course that does not need tracking, you can publish lessons as protected pages and manually grant access after payment. This is inexpensive, but you will lack reliable enrolment records, progress tracking, quizzes, certificates, and automatic access removal.

For a course you intend to sell properly, install an LMS plugin. WordPress installs plugins from Plugins > Add New, or lets you upload a plugin ZIP from the same screen. Check compatibility information before activating it.

Create the course and lessons

Open the LMS course area, add the course title and description, then create the lessons and arrange them into the intended order. Add topics beneath lessons where a module needs smaller steps, and attach quizzes or assignments at the points where students need to demonstrate understanding.

Most LMS builders support either linear progression or free navigation. Linear progression normally requires the learner to mark each step complete before continuing, so check that the completion control appears on the front end before launch.

Set enrolment and payments

Choose whether the course is open, free after registration, a one-time purchase, recurring, or closed to direct purchases. Connect Stripe, PayPal, or another supported gateway, and set the price, currency, refund wording, tax settings, and customer emails.

If you use WooCommerce or a membership plugin as the shopping cart, use the LMS mode intended for external enrolment rather than also enabling the LMS's own direct checkout. Mixing both routes is a common cause of a successful order without course access. Some LMS documentation explicitly recommends a closed or externally controlled access mode for shopping-cart sales.

Build the sales and student pages

Create a sales page that explains the outcome, syllabus, expected workload, audience, prerequisites, price, refund policy, and what happens after payment. Link its purchase button to the actual course product or LMS checkout, not to a second duplicate product.

Check the login, registration, checkout, account, course, and password-reset pages on mobile. If you sell files as part of the course, configure download access and login requirements separately; WooCommerce's downloadable-product settings control when and where customers receive files.

Test the complete purchase

Place a real or test order with a separate student account, then confirm payment, account creation, enrolment, welcome email, course access, progress saving, quiz submission, and any certificate or download. Test both a successful payment and a failed or cancelled payment.

Also test the course while logged out. The Friday problem is usually not the course editor: it is a payment marked complete while the student remains unenrolled, a lesson visible through a direct URL, or an email trapped in spam. Fix those before launch.

Use a faster branded setup

If you want the course site to look designed without assembling the presentation layer yourself, Educavo is a practical shortcut. It is an education-focused WordPress theme with course layouts, student dashboards, progress tracking, page-builder support, and payment-related integrations described for launching a branded LMS site.

It does not remove the need to configure the underlying LMS, payment account, email delivery, access rules, and backups. After installing the theme, confirm which LMS and payment components your chosen course workflow uses, then repeat the purchase test above.

The fast route

Let Educavo do it

Education-focused theme with course pages, student dashboards, tracking, and payment support for launching a branded LMS site.

Get Educavo

Sources

  1. wordpress.org /documentation/article/manage-plugins/?utm_source=openai
  2. learndash.com /support/kb/core/uncategorized/course-create-wizard/?utm_sou…
  3. learndash.com /support/kb/core/courses/course-enrollment-mode/?utm_source=…
  4. woocommerce.com /document/digital-downloadable-product-handling/?utm_source=…

Questions

Can I create and sell a course in WordPress without a plugin?
You can publish lessons as pages and manually give buyers access, but WordPress alone does not provide a complete course system. It lacks built-in student enrolment, progress tracking, quizzes, certificates, and automatic paid access. A plugin is therefore required for a normal commercial course, while the manual route is only sensible for a small pilot or a simple content library.
Should I use WooCommerce or an LMS payment system?
Use one checkout and one enrolment authority for each course. An LMS's built-in payment option can be enough for simple one-off or recurring access. WooCommerce is better when you need a wider shop, coupons, taxes, order management, or multiple product types. If WooCommerce controls payment, configure the LMS for external enrolment rather than running two competing checkout flows.
Why has a customer paid but not received course access?
The usual cause is that payment and enrolment are using different systems or that the order has not reached the status that triggers access. Check the gateway callback, order status, customer email, product-to-course connection, and LMS access mode. Also confirm that the buyer created or received a WordPress account. Never assume a completed payment automatically enrols the student when an external cart is involved.
How should I protect paid course videos and downloads?
Protect the lesson page through the LMS and avoid treating an unlisted media URL as private. For downloads, use the LMS or WooCommerce access controls and test a direct file URL while logged out. WooCommerce can restrict downloads to logged-in customers and control whether access begins after payment or only after an order is completed.
Do I need a membership plugin as well as an LMS?
You only need a separate membership plugin when membership rules go beyond the LMS, such as several plans unlocking different course groups, site-wide content protection, subscriptions across non-course content, or member directories. For a single paid course, an LMS with its own checkout or a WooCommerce-linked LMS is usually simpler. Adding both without defining which system controls access creates avoidable support problems.