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.
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
- Configure the access and update the course.
- Sign in as a student who has not bought: the no-access message, with a working route to the product.
- Buy with that account.
- Reopen the course: it opens.
- Refund the order and confirm access is removed.
- If a subscription is involved, test active and cancelled states.
Full procedure: Test a paid course.