Paid access

Selling a course means access depends on a purchase. POM LMS offers two ways to express that, and one of them is better for anything beyond the simplest case.

The two ways

Mechanism Suits
This is a paid course One product, one course, nothing else
A permission rule Several products, subscriptions, roles, time windows

They do not combine. If a course has a rule, the rule decides and the paid setting is ignored.

The paid-course setting

Course settings → Configuration → This is a paid course.

When enabled and no rule applies, the student must have bought the product associated with the course, in an order with a paid status.

Orders that are pending, on hold, cancelled, refunded or failed do not grant access.

If the associated product is a subscription, the student must additionally have an active subscription to it. An expired, cancelled or on-hold subscription does not grant access.

Purchase rules

For anything more than one product, a rule expresses it better:

  • Has purchased any of these products — several ways to buy the same course;
  • Has purchased all of these products — a course requiring a prerequisite purchase;
  • Subscription based on any of these products — plan-based access;
  • purchase or subscription timing, for cohorts and windows.

See Permission-based access.

Access is evaluated when the student opens the course

There is no enrollment step. A student who buys is not registered into the course; instead, every time they open it, their purchase is checked.

Two consequences:

  • Access appears immediately once the order reaches a paid status.
  • Access disappears immediately when the order stops being paid — a refund removes it without any manual step.

What the student needs to see

A blocked student must be told what to buy:

  • Content if no access — the message on the course;
  • {related_product_links} inside it, which prints links to the products associated with the course;
  • a hand-written link as well, because the tag prints nothing when nothing is associated.

Add the already-purchased fallback too — Already enrolled? Sign in with the account you used to buy — because a signed-in student on the wrong account is the most common paid-access support request.

Pair it with the login gate

A student who has not bought and is not signed in is in two different situations. Enabling the login requirement alongside means signed-out visitors are told to sign in, with the form, while signed-in students without the purchase are told what to buy.

What POM LMS does not do

  • It does not display a price or a buy button on the course page.
  • It does not create the product; you create it in WooCommerce.
  • It does not send any email when someone buys.
  • It does not record an enrollment date.
  • It does not expire access on its own — that comes from the order or subscription status, or from a time-based rule.

Verify

  1. Configure the access and update the course.
  2. Sign in as a student who has not bought: the no-access message, with a working route to the product.
  3. Buy with that account.
  4. Reopen the course: it opens.
  5. Refund the order and confirm access is removed.
  6. If a subscription is involved, test active and cancelled states.

Full procedure: Test a paid course.