Skip to content
Learnomy

Roles and Capabilities

Learnomy adds two roles on top of WordPress -- Student and Instructor -- and gates every action through a single permission check. New sign-ups become students automatically; instructors are approved by an admin. WordPress administrators always have full access.

What you can do

  • Let anyone who registers through Learnomy start as a Student with the right to enroll, learn, take quizzes, and leave reviews.
  • Promote a member to Instructor by approving their application, which adds course authoring, quiz management, grading, and their own students and earnings.
  • Keep full control with the WordPress Administrator, who has every Learnomy capability plus the site-wide settings.
  • Rely on one permission gate for every action, so access is decided the same way across the frontend, the admin, and the API.

Roles and Capabilities first view

How to use it

Students -- automatic on registration

When someone registers through Learnomy they are assigned the Student (lrn_student) role immediately. They can browse the catalog, enroll, take lessons and quizzes, and review courses without any further setup.

Instructors -- admin-approved

An instructor is not self-serve. A member applies to become an instructor, which creates an application for review. An admin approves it from Learnomy > Applications, and on approval the member gains the Instructor (lrn_instructor) role in addition to their student role. From then on they can create and manage their own courses, manage quizzes, grade submissions, and see their own students and earnings.

Administrators

Any WordPress user with the Administrator role has every Learnomy capability, including the academy-wide settings, categories, certificate management, instructor approvals, and analytics. You do not assign Learnomy roles to admins -- their access is total by default.

Settings and options

The three roles and what each can do:

Role Slug How it is assigned Can
Student lrn_student Automatically, on Learnomy registration Enroll in courses, learn (view lesson content), take quizzes, leave reviews, view courses
Instructor lrn_instructor Admin approves an instructor application Everything a student can, plus: create courses, manage their own courses, manage quizzes, grade submissions, view their own students, view their own earnings, and upload media
Administrator WordPress administrator WordPress core role Everything above, plus: manage settings, manage categories, manage users, manage certificates, approve instructors, and view analytics

Notes:

  • Instructor access is scoped to the instructor's own content -- for example, the grading inbox and earnings show only their own courses' data, not the whole site's.
  • WordPress subscribers are also granted the student capabilities, so an existing subscriber can enroll and learn without a separate Learnomy account.
  • Both Learnomy roles carry WordPress's baseline read capability, so dashboard, profile, and application flows behave like any other logged-in WordPress user.

For developers

  • Roles + capabilities: registered in Learnomy\Permissions\Capabilities. Student caps: learnomy_enroll, learnomy_learn, learnomy_take_quiz, learnomy_leave_review, learnomy_view_courses. Instructor adds: learnomy_create_course, learnomy_manage_own_courses, learnomy_view_own_students, learnomy_view_own_earnings, learnomy_manage_quizzes, learnomy_grade, upload_files. Admin adds: learnomy_manage_settings, learnomy_manage_categories, learnomy_manage_users, learnomy_manage_certificates, learnomy_approve_instructor, learnomy_view_analytics.
  • The single gate: every access decision goes through Learnomy\Permissions\Permission_Engine::can( $user_id, $action, $context_id ). It short-circuits to allow any user with manage_options (administrators), otherwise maps the action to the matching WordPress capability. REST controllers call it in their permission_callback; nothing checks capabilities directly.
  • Role maintenance: Capabilities::register() is idempotent and self-heals -- it re-applies any capability missing from an existing role on upgrade, so a role created on an older version still gains new caps.

Related