Paid course workflow

Selling a course once, through WooCommerce, from an empty editor to a tested purchase.

What you are building

A WooCommerce product a customer buys, and a course they can open once the order reaches a paid status. The product carries the price, the description and the checkout; the course carries the content.

Requires WooCommerce.

Build it

1. Create the product

Products → Add New. A simple product with a price.

Write the product description as sales copy: what the course covers, how long it takes, who it is for. This is the page customers decide on.

Set a product image consistent with the course's featured image, so the two read as the same thing.

Publish it.

2. Create the course

Courses → Add New, with a title, a description and a featured image.

The course description is read by students who already own it. It does not need to sell — it needs to orient. Say what the course contains and where to start.

3. Add sections and lessons

Define the sections, then create each lesson with Attached course, Attached section, video type and URL, and estimated time. Order them.

Publish everything.

4. Connect the product to the course

Enable This is a paid course, then connect the product that grants it.

A course can be granted by more than one product — a standalone purchase and a bundle, for instance. Any one of them is enough.

See Connect products to courses.

5. Write the no-access message

This is the most valuable text in the whole workflow. It is what a visitor reads when they land on a course they have not bought.

Include {related_product_links}, which is replaced by links to the products that grant the course:

This course is part of our paid program. {related_product_links}

Without it, the message is a wall. With it, it is a sales page.

6. Check the login handling

A signed-out visitor sees the login form. A signed-in visitor without access sees the no-access message.

Make sure the signed-in message covers the wrong-account case, which is the single most common paid-access support ticket:

You are signed in as {user_email}. If you bought this course with a different address, {logout_link} and sign in again.

Publish the course. Link the product from your catalogue and your shop.

Point marketing at the product, not the course — a customer who lands on the course before buying gets the no-access message, which is a worse first impression than a product page.

Test the purchase

Do this before you sell it to anyone, with a test account that is not an administrator:

  1. Sign out and open the course. Confirm the login form.
  2. Sign in as the test student. Confirm the no-access message, with the product links resolved.
  3. Buy the course through checkout, with a real payment method in test mode or by placing the order and completing it manually.
  4. Confirm the course appears in My courses, with the access reason naming the product.
  5. Open a lesson, confirm the video plays and progress advances.

See Test a paid course.

What buyers receive

The WooCommerce order confirmation, and nothing else. POM LMS sends no email.

Add the course link to your WooCommerce order-completed email — the account area link, not a lesson URL:

Your course is ready. Open it from My courses in your account.

Without that line, buyers finish checkout with no idea where the course is.

Access afterwards

Access continues while the order stays in a paid status. Refunding or cancelling it removes access; the student's progress remains.

See Refunds, cancellations and expiration.

What this workflow does not give you

  • No enrollment email.
  • No student list for the course.
  • No certificate.
  • No expiry — a one-off purchase grants access indefinitely unless you refund it or add a time-based rule.