Course launch checklist

Complete this before students are invited. Every access check is done with a real non-administrator account.

1. Platform

  • [ ] The POM theme, or a child of it, is active.
  • [ ] The License section reports a valid state for this domain.
  • [ ] On multisite, POM LMS is active on the main site with its network license configured there.
  • [ ] WooCommerce is active if any course is sold or the account area is used.
  • [ ] Course and lesson URL slugs are final.
  • [ ] Permalinks have been re-saved after the last slug change.

2. Structure

  • [ ] The course has sections, named the way students will read them.
  • [ ] Every lesson has an Attached course.
  • [ ] Every lesson has an Attached section — no dashes in the lesson list's Section column.
  • [ ] Lesson order values produce the intended sequence.
  • [ ] The outline matches the course you intended to teach.
  • [ ] No draft or test lesson is reachable.

3. Content

  • [ ] The course description explains what the course teaches and who it is for.
  • [ ] The course has a featured image; it is used on the course page and in the student's account area.
  • [ ] Every lesson has content, not just a video.
  • [ ] Every video URL opens the right video and is embeddable.
  • [ ] Estimated times are set, or deliberately left empty on all lessons.
  • [ ] Nothing references a lesson or a module that does not exist.

4. Access

  • [ ] The course's access model is deliberate: open, login-gated, rule-gated or paid.
  • [ ] If a permission rule is used, it exists and was tested.
  • [ ] Lesson-level rule overrides, if any, are intentional.
  • [ ] Preview lessons are exactly the ones you want to give away.
  • [ ] Preview lessons also require login is set deliberately.
  • [ ] The Content if no access message is written, useful, and links somewhere.
  • [ ] The "Lesson not available" text is written.
  • [ ] The login form on the course is enabled or disabled deliberately.

5. Tested with real accounts

  • [ ] Signed out: the expected result, for the course and for a lesson URL opened directly.
  • [ ] Signed in without access: the no-access message, and no protected content.
  • [ ] Signed in with access: everything opens.
  • [ ] Preview lessons behave as intended in all three states.
  • [ ] Previous/next navigation works through the whole course.
  • [ ] The back-to-course link works from a lesson.

6. Progress

  • [ ] The completion mode — automatic or manual — is chosen deliberately.
  • [ ] Opening or ticking a lesson changes the percentage.
  • [ ] The progress bar appears where you configured it.
  • [ ] A course with no lessons does not show a misleading percentage.

7. The account area

  • [ ] The My courses entry appears in the WooCommerce account menu.
  • [ ] Its name and slug are the ones you want.
  • [ ] A student with access sees the course, its completion and a sensible access reason.
  • [ ] A student with no courses sees the empty-state text you wrote.
  • [ ] Access the course opens the course.

8. Paid courses

  • [ ] A test purchase grants access end to end.
  • [ ] The product name identifies the course clearly.
  • [ ] The no-access message points at the right product.
  • [ ] The order emails say what the buyer gets and where to start.
  • [ ] Refund and cancellation behavior is understood and documented for the team.

9. Presentation

  • [ ] The course subheader and layout settings are deliberate.
  • [ ] The lesson subheader shows the course name as intended.
  • [ ] The page reads well on a phone: outline, video, content and navigation.
  • [ ] Videos are responsive and do not overflow.

10. The team

  • [ ] Someone owns course content.
  • [ ] Someone owns access rules and knows how to test them.
  • [ ] The team knows POM LMS sends no emails.
  • [ ] The team knows an administrator's view proves nothing about student access.

The course is ready when the right student gets in, the wrong student gets a useful message, and the outline reflects the course you meant to publish.