Test access with different users
The procedure that proves a course is configured correctly. It is short, and skipping it is the single most common cause of a course shipping open or shipping shut.
Why an administrator cannot test this
Administrators hold roles and capabilities that students do not, and they are often the account that created the products and rules involved. What an administrator sees says nothing about what a student sees.
Use real, non-administrator accounts. Every time.
The accounts you need
| Account | Purpose |
|---|---|
| Anonymous | A private browser window |
| Student without access | Signed in, does not satisfy the requirement |
| Student with access | Signed in, satisfies it |
| Partial-access student | Only when the course uses lesson overrides |
Create them once and reuse them. Name them so the team knows what each is for.
The matrix
For each course, check six cells:
| Course page | A lesson URL directly | A preview lesson | |
|---|---|---|---|
| Anonymous | |||
| No access | |||
| With access |
Fill it in. A course is verified when every cell matches what you intended.
What each row should show
Anonymous
- Open course → the course.
- Gated course → the no-access message, plus the login form if enabled.
- A lesson URL → the same treatment, never the protected content.
- A preview → readable, unless the course requires login for previews.
Signed in, without access
- The no-access message, reading as instructions rather than an error.
- Links in the message working.
- Lessons blocked, with the "Lesson not available" text.
- The outline visible, with lessons marked unavailable.
- Previews readable.
Signed in, with access
- The course in full.
- Lessons open, with video and content.
- The outline usable, previous/next navigation working, the back link working.
- Progress changing as expected for the completion mode.
Test the lesson URL directly
This is the check people skip and the one that catches real leaks. Copy a lesson's address, open it in a private window, and confirm the content is not served.
A course whose landing page is gated but whose lessons are reachable by URL is not gated.
Test previews from outside
Open the course in a private window and read the outline: the selectable lessons are your previews. Confirm the list is exactly what you intended.
Nothing in the administration shows this at a glance.
Test the boundaries of a rule
For time-based rules — bought more than two months ago, subscription started less than a year ago — test an account on each side of the boundary. A rule that is correct today can block everyone next month, and nothing warns you.
For subscription rules, test with an active subscription and with a cancelled one.
After changing a shared rule
A permission rule is shared by every course that selects it. After editing one, re-run this test on every course using it.
Record the result
Note which account saw what. When a student later reports a problem, the first useful question is which of the three states are they in? — and only a completed matrix makes that answerable.
When to run it
- Before launching a course.
- After changing any access setting.
- After editing a shared permission rule.
- After a plugin or theme update.
- Periodically on courses that several people edit.