Wbcom Designs Learnomy Docs
Back to product Notify me

Getting Started

This section covers everything you need to go from a blank WordPress install to a working Learnomy academy.

Introduction to Learnomy

Learnomy is a WordPress LMS plugin that lets you build and sell online courses directly on your own site, without handing control to a third-party platform. It is designed for creators, educators, and businesses who want a professional academy they own completely.

Overview

Learnomy lives entirely inside WordPress. Courses, lessons, quizzes, students, and payments are all stored in your own database. No subscription to an external platform is required. The plugin registers three top-level admin menus and a set of front-end pages under your site's URL. A companion mobile/web app connects through a built-in REST API.

Who it is for

Learnomy works for anyone who wants to teach online through their WordPress site:

  • Independent instructors who sell courses and want full control over pricing, branding, and student data.
  • Training teams that need to host internal courses for employees or customers.
  • Membership sites that grant subscribers access to a library of courses.
  • Multi-instructor academies where revenue is split between the platform and individual instructors.

The plugin ships two roles out of the box: lrn_student (assigned automatically on registration) and lrn_instructor (admin-approved). Site administrators have full access.

What Free covers

The Free plugin is a fully working LMS. You can create unlimited courses with sections, lessons, and topics. Students enroll, track their progress, and receive signed completion certificates. Quizzes support six question types (true/false, single choice, multiple choice, short answer, essay, fill-in-the-blank). Instructors submit applications and manage their own courses from wp-admin. Payments work through Stripe, PayPal, or WooCommerce -- you set a price on any course and checkout is handled on your site. Reviews, notifications, search, and SEO schema are all included. The full course catalog, lesson player, student account area, and certificate verification page render on the front end.

For dedicated Pro features, see Enabling Features and Modules.

What Pro adds

Pro feature. Available in Learnomy Pro.

Learnomy Pro is a companion plugin that installs alongside Free and extends it. It does not replace any Free functionality. Pro adds 16 additional modules:

  • Cohorts -- group students into cohorts with a shared schedule and instructor.
  • Learning Paths -- sequence courses so a student must complete one before unlocking the next.
  • Spaces -- community or workspace areas attached to a membership plan or course.
  • Assignments -- file-upload and long-form tasks with instructor feedback.
  • User Journeys -- automated drip sequences that guide a student through content over time.
  • Content Drip -- release lessons on a schedule after enrollment.
  • Advanced Quizzes -- adds ordering and matching question types, plus rubric grading.
  • Stripe Connect -- pay instructors directly to their Stripe accounts.
  • Analytics -- detailed academy-wide reporting with charts and exports.
  • Frontend Builder -- a drag-and-drop editor for building custom front-end layouts without code.
  • White-label -- rename the plugin, menus, and emails to match your brand.
  • Bridges -- integrations with BuddyPress, BuddyBoss, and Slack.
  • Webhooks Pro -- outbound webhooks for 33 LMS lifecycle events, filterable via the API.
  • Notes and Bookmarks -- students annotate lessons and save progress markers.
  • Membership Pro -- advanced membership plan controls and analytics.
  • Certificates Pro -- additional certificate templates and Credly badge integration.

Each Pro module appears on the Modules page with a PRO badge. Activating a Pro module requires Learnomy Pro to be installed and the module toggled on.

Related

Installation and Activation

This page covers installing and activating the Learnomy Free plugin and, optionally, the Learnomy Pro add-on.

Overview

Learnomy is a standard WordPress plugin. You install it the same way as any other plugin -- either through the WordPress admin or by uploading the zip file directly. Once activated, Learnomy creates its database tables and launches the setup wizard automatically.

Requirements:

  • PHP 8.1 or higher
  • WordPress 6.7 or higher
  • MySQL 5.7+ or MariaDB 10.3+ (required for FULLTEXT search)

Installing Learnomy Free

  1. Download the learnomy.zip file from wbcomdesigns.com.

  2. In your WordPress admin, go to Plugins > Add New Plugin.

  3. Click Upload Plugin at the top of the page.

  4. Choose the learnomy.zip file you downloaded, then click Install Now.

  5. After the upload finishes, click Activate Plugin.

    WordPress activates Learnomy, creates the database tables (40 custom tables under the lrn_ prefix), and redirects you to the setup wizard.

    If the setup wizard does not appear automatically, go to Learnomy Settings > Settings and click Open setup wizard in the General section.

Installing Learnomy Pro

Pro feature. Available in Learnomy Pro.

Learnomy Pro is a separate plugin that extends Free. Both must be active at the same time.

  1. Download learnomy-pro.zip from your Wbcom Designs account.

  2. In your WordPress admin, go to Plugins > Add New Plugin > Upload Plugin.

  3. Upload learnomy-pro.zip and click Activate Plugin.

  4. After activation, go to Learnomy Settings > Settings > License and enter your Pro license key to enable automatic updates.

  5. Open Learnomy Settings > Modules to see the full module list, including modules with a PRO badge. Toggle any Pro module on to enable it.

Pro never replaces Free's pages or database tables. It adds to them.

Verifying the installation

After activating, you should see three new top-level items in the WordPress admin sidebar:

  • Learnomy -- courses, students, instructors, and content management.
  • Learnomy Commerce -- memberships, subscriptions, coupons, and earnings. This menu only appears when at least one commerce module is enabled.
  • Learnomy Settings -- settings, modules, and system tools.

If you see all three menus (or at least Learnomy and Learnomy Settings), the plugin is active and working.

Updating Learnomy

Learnomy uses the Easy Digital Downloads (EDD) update system. Updates appear in Plugins > Installed Plugins as a standard WordPress notification. No manual download is needed. Click Update now to apply the update. Database migrations run automatically on the next page load after an update.

Uninstalling

Deactivating Learnomy from Plugins > Installed Plugins stops all plugin functionality but leaves your data intact. To remove all data as well, go to Learnomy Settings > Settings > Data and enable the Delete all data on uninstall option before deactivating.

Tips

  • Run the site on PHP 8.1 or higher. The plugin uses strict types throughout and will not load on older PHP.
  • If you are migrating from another LMS, install Learnomy on a staging site first and run the setup wizard before migrating production data.
  • The setup wizard takes about five minutes. You can skip it and return to it later at any time from Learnomy Settings > Settings > General > Open setup wizard.

Related

Setup Wizard

The setup wizard runs automatically after you first activate Learnomy. It walks you through five steps in about five minutes and leaves you with a working academy.

Overview

The wizard is a standalone full-screen page -- it does not render the WordPress admin chrome. It saves settings through the REST API as you move between steps, so nothing is lost if you navigate away and come back. You can skip the wizard entirely on Step 1 and run it again later from Learnomy Settings > Settings > General > Open setup wizard.

Step 1: Welcome

The first step shows what the wizard covers: currency and catalog URL, optional Stripe connection, and an optional demo academy. Click Let's begin to start, or click Skip setup to go directly to the admin dashboard. If you skip, all defaults apply (USD currency, /courses/ catalog URL, Courses + quizzes preset, no payment keys, no demo data).

Step 2: Configure

This step sets three academy-wide defaults.

  1. Course catalog slug -- the URL path where your course catalog will live. The default is courses, giving a URL like https://yoursite.com/courses/. Type a different slug if you want a different URL. Only lowercase letters, numbers, and hyphens are accepted.

    The live preview below the field updates as you type so you can see the full URL before committing.

  2. Currency -- the billing currency for paid courses and memberships. Choose from 13 supported currencies (USD, EUR, GBP, CAD, AUD, INR, BRL, MXN, JPY, SGD, ZAR, NGN, IDR). You can change this later in Learnomy Settings > Settings > General.

  3. Enrollment mode -- choose Open (students self-enroll instantly) or Approval required (an admin must approve each enrollment request before the student gets access).

  4. What kind of academy? -- pick the preset that best matches your use case. Learnomy enables only the relevant modules so the admin sidebar stays focused. You can adjust individual modules later on the Modules page.

    Preset What gets enabled
    Simple courses Courses, lessons, and search. No quizzes or payments.
    Courses + quizzes Quizzes, certificates, reviews, notifications, search, SEO. Free academy. Selected by default.
    Paid courses Everything in Courses + quizzes, plus payments, coupons, and revenue split for instructors.
    Membership site Recurring subscription access. Includes payments, membership plans, and coupons.
    Custom Opens with the default module set. You configure everything from the Modules page.

    Click Continue to move to Step 3.

Step 3: Payment (optional)

This step configures how checkout works. You have three choices:

  • Sandbox demo mode (Recommended) -- fake transactions with no real money. No API keys needed. Useful for building and testing your academy before going live.
  • Connect Stripe -- enter your Stripe test publishable key (pk_test_...) and secret key (sk_test_...) to run real test transactions in Stripe's test environment.
  • Skip for now -- set up payments later from Learnomy Settings > Settings > Payments.

When you select Connect Stripe, two input fields appear for the publishable key and the secret key. Both must start with pk_test_ and sk_test_ respectively; the wizard validates the format before saving.

Click Continue to move to Step 4.

Step 4: Demo academy (optional)

This step seeds your site with ready-made content so the dashboard has real numbers on day one rather than showing empty states everywhere.

If you choose Load demo academy (recommended), Learnomy creates:

  • 2 sample courses (React Fundamentals at $49 and Mindful Productivity as a Membership course)
  • Sample sections, lessons, and quiz questions in each course
  • 5 demo students enrolled in the courses
  • Sample transactions recorded against those enrollments
  • 1 issued completion certificate
  • 1 active membership plan

The seeding takes about five seconds. Progress items tick off as each piece is created.

If you choose Start empty, the wizard completes with no demo content.

If demo content already exists from a previous wizard run, the choice tiles are replaced by a notice: "Demo content already loaded. Use Settings > Reset demo data to refresh." You can click the Reset demo data button at the bottom of the success screen (Step 5) to replace the current demo with a fresh set.

Click Finish setup to complete the wizard.

Step 5: Success

The wizard lands on the success screen showing four stats: Courses, Students, Revenue, and Certificates. If you loaded demo data these reflect actual counts from the seeded content. If you started empty they all read 0.

From here you can:

  • Click Open Dashboard to go straight to the Learnomy admin dashboard.
  • Click View course catalog to open your front-end catalog in a new tab.
  • Click the Reset demo data text link at the bottom to replace demo content with a fresh set.

Resetting demo data

The Reset demo data button is available on Step 5 of the wizard and in Learnomy Settings > Settings > General. Clicking it deletes the existing demo courses, students, and transactions and creates a fresh set in one operation. A confirmation prompt appears before anything is deleted.

This is useful when you want to show a client or team member a clean demo state, or after experimenting with the demo content.

Tips

  • All wizard settings can be changed after the fact in Learnomy Settings > Settings.
  • The preset you pick in Step 2 is a starting point. You can add or remove individual modules at any time from Learnomy Settings > Modules without re-running the wizard.
  • The wizard can be re-run any time by visiting Learnomy Settings > Settings > General and clicking Open setup wizard, or by navigating directly to wp-admin/admin.php?page=learnomy-setup.
  • Adding &rerun=1 to the wizard URL (for example, admin.php?page=learnomy-setup&rerun=1) starts it in re-run mode, which skips the "Demo content already loaded" lock on Step 4.

Related

Admin Tour

After activating Learnomy, three top-level menus appear in the WordPress admin sidebar. Each menu has a single job: running the academy, managing money, or configuring the system. This page explains what lives in each one.

Overview

The three menus are kept together as a contiguous block in the sidebar, positioned at menu slots 30, 30.1, and 30.2. They stay grouped even when other plugins shift the menu order. Menu labels and icons are filterable, so the white-label module can rename them without breaking any URL.

Learnomy -- run the academy

The top-level Learnomy menu holds everything you need to build and manage courses, handle students, and track content.

Learnomy admin dashboard overview

The submenu items are:

Page What it does
Dashboard Academy-wide stats, trend charts, recent activity, and top courses. Landing page after login.
Courses List of all courses. Create, edit, delete, and set pricing.
Lessons All lessons across every course. Filter by course to find a specific lesson quickly.
Quizzes Quiz list and question bank. Only visible when the Quizzes module is enabled.
Question Bank Reusable question library organized by category. Visible when Quizzes is enabled.
Grading Inbox of submitted quiz attempts that contain essay or manually graded responses. Shows a count badge when there are pending items to grade. Visible when Quizzes is enabled.
Students Student list with enrollment counts and last-active dates. Drillable to a per-student detail page.
Instructors Instructor accounts and their application status. Admin-only.
Certificates Issued certificates with verify links. Only visible when the Certificates module is enabled.
Categories Course category tree (hierarchical). Also used for Learning Path categories in Pro.
Reviews Course review moderation. Always visible so pending reviews can be cleared even if the public review form is disabled.
Applications Instructor application queue. Admins approve or reject.
Announcements Site-wide or course-specific announcements sent to students. Visible when the Notifications module is enabled.
Analytics Academy-wide reporting, enrollment funnels, and revenue charts. Pro only.
Pro Tools Hub page linking to Assignments, Cohorts, Content Drip, Learning Paths, User Journeys, and Spaces. Only visible when Learnomy Pro is active.

The Grading submenu shows a number badge (the yellow circle) when there are attempts waiting for manual review. It disappears once all pending submissions are graded.

Learnomy Commerce -- money

The Learnomy Commerce menu only appears when at least one commerce module is enabled (Membership, Commissions, or Coupons), or when Learnomy Pro forces it on via a filter. If none of those modules are active and Pro is not installed, this menu is hidden.

Page What it does
Overview Revenue summary: total earnings, active subscriptions, and recent transactions at a glance.
Memberships Membership plan list. Create and configure recurring billing plans.
Subscriptions Active and expired subscriber list. Drillable to per-subscription details with billing history.
Coupons Discount code management. Set fixed or percentage discounts, usage limits, and expiry dates.
Earnings Instructor earnings ledger. Shows per-instructor revenue splits and pending withdrawal balances.
Transactions Full transaction log with provider reference, amount, and status.
Membership Analytics Detailed MRR, churn, and LTV charts. Pro only.
Stripe Payouts Manage Stripe Connect payouts to instructors. Pro only.

Enabling or disabling the Membership module from the Modules page immediately shows or hides the Commerce menu on your next page load.

Learnomy Settings -- config and system

The Learnomy Settings menu holds configuration and system pages. These are site-owner pages; day-to-day course management lives in the Learnomy menu instead.

Learnomy Settings navigation

Page What it does
Settings Tabbed settings page. Sections are grouped: General (General, Pages, Labels, Layouts), Commerce (Payments, Instructors, Commissions, Membership Page), Communication (Emails, Reviews), Content (Comments, Certificate Defaults, Quiz Settings), Advanced (API & Performance, Data Management). Pro adds License, Extensions, White-label, and Bridges tabs when Learnomy Pro is active.
Modules Toggle features on and off. Required modules are locked; all others are optional.
Email Log History of every notification email sent by Learnomy, with delivery status. Visible when the Notifications module is enabled.
Webhook Events Log of every inbound webhook received from Stripe or PayPal, with outcome and a replay button.
Webhooks Outbound webhook configuration. Set up webhook endpoints to notify your own systems when LMS events fire.
Pro Features A catalog showing all Free and Pro modules side by side with tier badges (FREE / PRO) and status labels (Stable / Beta). Useful for seeing what Pro adds before purchasing.

Tips

  • Bookmarks still work. The three-menu layout was reorganized in June 2026; page slugs (the ?page= URL parameters) did not change. Any bookmarks you saved to old admin pages still resolve to the correct page.
  • Module gating. If you visit a Commerce page URL when all commerce modules are disabled, Learnomy redirects you to the Modules page with a notice, rather than showing a blank 403 screen.
  • White-label. When the Pro white-label module is active, the word "Learnomy" in all three menu labels can be replaced. The "Commerce" and "Settings" suffixes survive the rename.

Related

Enabling Features and Modules

The Modules page lets you turn individual Learnomy features on or off. Disabled modules are completely removed from the admin sidebar, and their REST routes and hooks are not registered -- so the site only loads what you actually use.

Overview

Go to Learnomy Settings > Modules to reach this page. Modules are organized into seven categories: Core, Content, Student experience, Commerce, Community, Integrations, and Operations. Each module shows a toggle switch. Required modules show a locked toggle and a note that they cannot be disabled.

Modules page showing module grid

The page header describes what disabling a module does: "Disabled modules are hidden from the admin menu and don't register their REST routes or hooks. You can enable more modules anytime as your site grows."

Toggling a module on or off

  1. Go to Learnomy Settings > Modules.

    Modules page header

  2. Find the module you want to change. Each card shows the module name, a description, and a toggle switch in the top-right corner.

    Module grid showing all categories

  3. Click the toggle switch. The card border changes immediately to confirm the new state. A toast notification at the bottom of the screen confirms the save.

  4. Reload the page. Admin sidebar items controlled by that module appear or disappear.

Changes take effect immediately -- no manual save button is needed. Toggling a module off does not delete any data; it only removes the UI and stops registering routes and hooks. Toggling it back on restores everything.

Module categories and what they contain

Core

Core modules are required and cannot be disabled. Their toggles are locked.

Module What it does
Courses Course catalog, sections, lessons, and topics. The foundation everything else builds on.
Enrollments Enrollment lifecycle, sources (free, purchase, membership, manual), and access gating.
Progress Lesson, quiz, and topic completion tracking.
Payments Stripe, PayPal, WooCommerce, and Test gateway adapters. Always on -- a free-only academy simply never sets a paid price on a course.

Core modules category

Content

Module What it does
Quizzes Quiz builder, question bank, six question types, attempts, and grading inbox. Enabling this adds Quizzes, Question Bank, and Grading to the Learnomy menu.
Search MySQL FULLTEXT search across course titles, descriptions, and lesson content.

Student experience

Module What it does
Certificates Ed25519-signed completion certificates. Includes a Canva-like certificate designer and a public verify URL at /verify/{uuid}/.
Reviews Course star ratings and written reviews from enrolled students.

Commerce

Module What it does
Membership Recurring subscription plans that grant access to a library of courses. Enabling this shows the Learnomy Commerce menu.
Commissions and Payouts Revenue split for multi-instructor sites. Instructors can request withdrawals of their earned share.
Coupons Discount codes with per-use limits and date windows.

Enabling any Commerce module (Membership, Commissions, or Coupons) makes the Learnomy Commerce top-level menu appear in the admin sidebar.

Community

Community modules are contributed by Learnomy Pro via the learnomy_modules_catalog filter. They carry a PRO badge on the card.

Pro feature. Available in Learnomy Pro.

Module What it does
Spaces (Pro) Community or workspace areas attached to a course or membership plan.
Bridges (Pro) Integrations with BuddyPress, BuddyBoss, and Slack.

Integrations

Pro feature. Available in Learnomy Pro.

Module What it does
Credly (Pro) Issue Credly open badges alongside Learnomy certificates when a course is completed.

Operations

Module What it does
Notifications Email and in-app notifications for enrollment, completion, grading, and payment events. Enabling this adds Announcements to the Learnomy menu and Email Log to Learnomy Settings.
SEO JSON-LD Course schema markup and sitemap integration for search engines.
Abilities API WordPress Abilities API that exposes 34 LMS capabilities for AI agents and advanced integrations.
PWA Service worker and web app manifest for an installable PWA experience. Marked Beta.

Pro module badges

When Learnomy Pro is installed, Pro module cards appear alongside Free modules in the grid. Each Pro card shows a PRO pill next to the module name. Clicking the PRO pill opens the Pro Features catalog page.

When Pro is not installed, a one-time dismissible notice at the top of the page says: "Learnomy Pro provides 16 additional modules including analytics, cohorts, and learning paths." This notice is per-user -- each admin can dismiss it independently. It does not appear again after dismissal.

Beta modules

Some modules are marked BETA with an orange pill. Beta modules are functional but may have rough edges. The PWA module in Free and several Pro modules ship as Beta in the current release. You can enable and use Beta modules; just expect occasional updates that change behavior.

Tips

  • Disabling a module does not delete your data. If you disable Quizzes, existing quiz attempts and questions are preserved. Re-enabling the module makes them accessible again.
  • The setup wizard in Step 2 lets you pick a preset that sets a good starting module configuration. You are not locked into that choice -- use the Modules page to fine-tune anytime.
  • If you visit a Commerce page URL (for example, ?page=learnomy-memberships) when no Commerce module is enabled, Learnomy redirects you to the Modules page with a notice instead of showing a blank screen.

Related

Admin Dashboard

The admin Dashboard is the landing page for Learnomy in wp-admin. It shows academy-wide stats, trend charts, and a summary of recent activity so you can see what is happening at a glance.

Overview

Go to Learnomy > Dashboard to reach this page. The dashboard is built from a registry of widgets. Each widget is an independent section that only renders when it has data to show, so a brand-new site with no students does not show rows of empty cards. Pro and third-party extensions can add their own widgets to the same dashboard through the learnomy_dashboard_widgets filter.

Admin dashboard full page

The page header shows a View Frontend button in the top-right corner. Clicking it opens your public course catalog in a new tab.

Stats row

The stats row is the first section below the header. It shows the four numbers that matter most to a site owner.

Admin dashboard stats

The four stat tiles are:

  • Students -- total number of registered student accounts.
  • Courses -- total published courses.
  • Revenue -- total completed transaction revenue in your configured currency.
  • Certificates -- total certificates issued to students.

Each tile shows the current total. These numbers reflect live counts from the database -- they update on every page load.

Onboarding checklist

On a fresh install, before the dashboard has real data, an onboarding checklist appears above the stats row. It tracks the essential first steps: creating a course, adding a lesson, enrolling a test student, and connecting a payment method. As you complete each step the checklist marks it done and eventually dismisses itself. You can also dismiss the checklist manually by clicking the dismiss link at the bottom of the section.

Demo data alert

If the site is running demo content loaded by the setup wizard, a yellow alert banner appears near the top of the dashboard reminding you that the data is not real. The banner includes a link to reset or remove the demo content.

Trends chart

The trends section shows two charts in a two-column grid: New Enrollments and Revenue over a selectable time period.

Admin dashboard trends chart

You can switch the period between the last 7 days, 30 days, and 90 days using the selector above the charts. Both charts update together when you change the period. The charts are rendered using ApexCharts and respect the site's light/dark mode.

If there are no enrollments or transactions in the selected period, the chart renders a flat baseline rather than disappearing entirely.

Completion rates and top courses

Below the trend charts is a two-column section that shows completion rates and your top-performing courses.

Admin dashboard top courses

The Top Courses panel ranks courses by enrollment count. Each row shows the course title, enrollment total, and a completion rate percentage. Courses with zero enrollments do not appear. This panel shows up to five courses; visit Learnomy > Courses for the full list.

Recent activity

The recent activity section shows a feed of the latest events: new enrollments, completed lessons, issued certificates, new reviews, and submitted instructor applications.

Admin dashboard recent activity

Each item in the feed shows the event type, the user's name, and a timestamp. Names link to the relevant student or course detail page. The feed shows the most recent 20 events. It does not paginate -- for a full history use the Transactions or Students pages.

Additional widgets

The dashboard includes several more operational widgets that appear when they have data:

  • Recent Transactions -- the last few completed payments with amount and course name. Only appears when at least one completed transaction exists.
  • New Signups -- students who registered in the last 30 days.
  • Top Instructors -- instructors ranked by commission earnings. Only appears when commission data exists.
  • Refund Overview -- refund count and total in the last 30 days. Hidden when there are zero refunds in the period.
  • System Health -- a quick check on database version, PHP version, and whether required pages (catalog, account, membership) are set. A green row means no action needed; a red row links to the relevant settings page to fix the issue.
  • Email Log Summary -- count of notification emails sent in the last seven days, with a link to the full Email Log. Only appears when at least one email was sent in the period.
  • Pending Applications -- instructor applications waiting for admin review, with Approve/Reject buttons inline. Only appears when there are pending applications.
  • Pending Reviews -- course reviews waiting for moderation. Only appears when reviews are pending.

Pro extensions can add their own widgets to this dashboard. For example, Learnomy Pro Analytics adds an MRR (monthly recurring revenue) tile and a churn chart.

Tips

  • The dashboard renders stat counts directly from the database. There is no cache to clear -- what you see reflects the current state.
  • Widgets that have no data simply do not render. A blank-looking dashboard usually means the site is new and has no students or enrollments yet. Install the demo data from the setup wizard to populate it with example content.
  • The View Frontend button in the page header is a quick way to verify that your front-end course catalog is live and loading correctly.

Related

Courses and Content

Everything related to building, organizing, and delivering courses in Learnomy.

Course Catalog

The course catalog is the public storefront for your academy. Students browse, filter, and enroll from here. It lives at /courses/ and is created automatically when Learnomy is activated.

Overview

The catalog page shows all published, non-private courses. Visitors can search, filter by category, sort by various criteria, and click into any course to see its detail page. The catalog is powered by the WordPress Interactivity API, so filters and sorting update the results without a full page reload.

Go to Learnomy → Courses to manage what appears here.

The catalog page

Course catalog

Page header

The header displays the catalog title, a search input, and the total number of published courses.

Catalog header

Filter bar

The filter bar sits above the course grid. It provides:

  • Search -- keyword search across course title, description, and short description.
  • Category -- filter to a single category by selecting it from the dropdown.
  • Sort -- order results by: Newest First, Most Popular, Highest Rated, Price: Low to High, Price: High to Low.

Filter bar

Filters are composable: you can search within a category and sort by rating at the same time.

Course grid

Published courses appear as cards in a responsive grid.

Course grid

Each card shows:

  • Course thumbnail (gradient with a title initial if no image is set)
  • Category badge
  • Course title
  • Instructor name
  • Star rating and review count
  • Student count (hidden when zero)
  • Content type badge (Video, Text, PDF, etc.)
  • Price or "Free" label

Course card

Clicking the card title or thumbnail takes the visitor to the single course page.

Private courses

A course marked Private (hide from catalog) in its Pricing settings does not appear in the catalog grid. It is only visible to the enrolled student and site admins. Instructors can still see their own private courses when logged in.

Category pages

Clicking a category badge on a card, or navigating to /courses/category/your-slug/, shows a filtered view of that category.

Category header

The category page uses the same card grid and supports the same sort options, scoped to that category.

Category grid

The full category listing at /courses/ shows all top-level categories. Courses inside a sub-category also count toward the parent's course count.

Single course page -- not enrolled

When a visitor has not yet enrolled, the course page shows the marketing view.

Single course, not enrolled

Hero section

The hero displays the course title, short description, star rating, student count, and instructor name. If a thumbnail is set it appears here; otherwise a gradient fills the space.

Course hero

Pricing and access box

The access box shows the enrollment call to action.

Enroll box

What appears depends on the course's access type:

Access type What the student sees
Free "Enroll Free" button
One-time payment Price and "Buy Now" button
One-time payment (time-limited) Price, access duration, and "Buy Now" button
Recurring subscription Recurring amount, billing interval, and "Subscribe" button
Members only "Join to Enroll" and a link to the membership pricing page
One-time payment or Members Both the buy price and a members-only path

When a valid sale price and date range are configured the box shows the sale price crossed against the regular price.

Curriculum preview

The curriculum preview lists sections and lessons so visitors can see the course structure before enrolling.

Curriculum preview

Lessons marked as preview lessons include a "Preview" badge. Clicking a preview lesson opens the lesson player without requiring enrollment.

Instructor

The instructor card shows the instructor's avatar, name, bio, and a link to their public profile page.

Instructor card

Reviews

If reviews are enabled at both the site level (Learnomy Settings → Settings → Reviews) and on the individual course, the reviews section shows the aggregate star rating, a rating breakdown bar chart, and individual student reviews.

Reviews

When there are no approved reviews yet, a single "No reviews yet" message appears.

Single course page -- enrolled view

After enrollment, the course page changes to the learning view.

Enrolled course page

Progress bar

A progress bar at the top shows how far through the course the student is, as a percentage of completed lessons.

Progress indicator

Curriculum with resume

The curriculum now shows completion status for each lesson. Completed lessons carry a checkmark. The student can click any unlocked lesson to open it in the lesson player.

Enrolled curriculum

If the course requires sequential lesson completion, locked lessons show a lock icon and are not clickable until the previous lesson is complete.

Final quiz

When the course has a final quiz and the student has completed the required lessons, the final quiz card appears at the bottom of the curriculum.

Final quiz card

Tips

  • The catalog URL is /courses/ by default. You can change the base slug in Learnomy Settings → General.
  • The catalog only shows published courses. Draft, pending, and trashed courses never appear.
  • The Featured flag in a course's Visibility settings affects the default listing order internally but is not a named sort option in the catalog UI. The available sort options in the dropdown are Newest First, Most Popular, Highest Rated, Price: Low to High, and Price: High to Low.
  • The catalog query is filterable via the learnomy_catalog_where_clauses hook for custom integrations.

Related

Creating a Course

This page walks through creating a course from scratch, configuring its settings, and building its curriculum using the Course Builder.

Overview

Courses live under Learnomy → Courses. You create one course form, then open the Course Builder to arrange sections and lessons. The course form handles metadata, pricing, and settings; the builder handles curriculum structure.

The courses list

Go to Learnomy → Courses to see all courses.

Courses list

The list header shows filters for status and category, plus a search input.

Courses list header

The filter bar lets you narrow by status (All, Published, Draft, Pending, Trashed) and by category.

Courses list filters

The table shows each course's title, category, status, price, student count, and rating.

Courses list table

Row actions: Edit opens the course form. Builder goes directly to the curriculum. View opens the public course page. Trash moves the course to trash.

Creating a new course

  1. Go to Learnomy → Courses and click Add New Course in the page header.

  2. Fill in the required fields:

    • Title -- the course name shown on the catalog card and the course page.
    • Slug -- the URL-friendly identifier. Auto-generated from the title; you can change it.
    • Category -- assign the course to one category.
    • Thumbnail -- the image shown on the card and in the hero. Recommended size: 1280 x 720 px.
  3. Add a Short Description (one or two sentences shown on the catalog card) and a longer Description (shown in the About section of the course page). Both use the WordPress block editor.

  4. Configure the settings sections described below.

  5. Click Save to create the draft. Click Publish when it is ready for students.

Course settings

The course form is divided into settings sections. Click any section header to expand or collapse it.

Pricing and Access

This section controls how students get access to the course.

Choose a Pricing model from the radio group:

Model Description
Free Anyone signed in can enroll. No payment required.
One-time payment (lifetime access) Student pays once and keeps access permanently.
One-time payment (time-limited access) Student pays once and keeps access for the number of days you set. A renew option appears when access expires.
Recurring subscription Student pays every month or year. Requires Stripe to be connected -- Stripe creates the price automatically.
Members only Student needs an active membership plan that includes this course. Only visible when the Membership module is enabled.
One-time payment OR Members Student can either buy outright or enroll through an active membership. Only visible when both Payments and Membership are enabled.

When you choose a paid model, fields for Regular price and Sale price appear. You can also set a Sale starts and Sale ends date range; outside that range the regular price applies.

For time-limited access, set the Access duration (days).

For recurring subscription, set the Recurring amount and Billing interval (Monthly or Yearly).

Private (hide from catalog) hides the course from the public catalog. Only enrolled students and admins can see it.

Pricing model lock: once at least one student has paid for a course, the pricing model is locked to protect existing customers. To relaunch the course with different pricing, clone it (clone tool available as a row action).

Gateway warnings: if you select a paid model but no real payment gateway is configured, the form shows a warning banner with a link to Learnomy Settings → Payments.

Completion and Certificate

Define what counts as completing this course.

Completion Requirement options:

Option Description
All Lessons Completed Student must mark every lesson complete.
Lessons + Final Quiz Student must complete all lessons AND pass the final quiz.
Percentage of Content Student must complete at least the set percentage of lessons (slider, 1-100%).
Manual Completion Admin or instructor marks the course complete manually.

Per-Lesson Rule Enforcement controls how strictly individual lesson completion rules (minimum watch time, video percentage, scroll-to-end, quiz pass) are applied in this course. Options: Inherit from site setting, Strict (rules must be met before Mark Complete activates), Advisory (rules shown but optional), Off (no rules). Individual lessons can still override this per lesson.

Award a certificate on completion -- tick to enable. When ticked, a Certificate Template picker appears. If no templates exist yet, a shortcut link takes you to the certificate designer. See the Certificates documentation for how to build templates.

Completion Message -- text displayed on the completion screen. Supports basic formatting.

Allow students to retake the course -- tick to let students restart the course after completing it. Optionally tick Reset progress when they retake to clear all lesson and quiz progress on retake.

Progression and Flow

Controls how students move through content.

Require lessons to be completed in order -- when ticked, students must finish each lesson before the next one unlocks. The lesson player shows a lock icon on future lessons.

Minimum Time per Lesson -- sets a site-wide floor in minutes. The Mark Complete button stays disabled until this time elapses. Set to 0 to disable. Individual lessons can set their own minimum time in their lesson settings, which overrides this course-level value.

Engagement

Configure the community features available inside this course.

Setting Default Description
Enable comments on lessons On Allows students to comment on individual lessons.
Enable course reviews On Students can leave a star rating and review after enrolling. Both this flag and the global Reviews setting must be on for reviews to show.
Course announcements On Instructors can send announcements to enrolled students.
Welcome message -- A message shown to the student immediately after enrollment.

Visibility

Featured -- marks the course as featured. Featured courses surface at the top of the catalog when sorting by Featured.

Private -- also available here (mirrors the Pricing section toggle).

Building the curriculum

After saving the course, click Build Curriculum from the course form header, or click the Builder row action from the courses list.

Course builder

Builder header

The header shows the course name, a breadcrumb back to the course form, and a Preview link that opens the public course page in a new tab.

Course builder header

Adding sections

Click Add Section to create the first section (chapter). Sections group lessons into chapters.

Builder section

Give each section a title. Drag sections to reorder them.

Adding lessons

Inside each section, click Add Lesson to create a new lesson or Add Existing to attach a lesson that already exists in the system.

Section body

Lessons can be reordered within a section by dragging. They can also be moved between sections.

Adding a quiz to a section

Click Add Quiz inside a section to attach an existing quiz as the section's assessment.

Empty state

If the course has no sections yet, the builder shows an empty state with instructions to add the first section.

Tips

  • A course must have status Published to appear in the catalog. You can save as Draft and preview it before publishing.
  • Once any paying student has enrolled, the pricing model cannot be changed. Plan your pricing before your first promotion.
  • The course builder saves changes immediately via the REST API; there is no separate Save button in the builder.
  • Co-instructors added in the Instructors section of the course form can edit the course and see its analytics. Only the primary instructor receives commission.
  • Tags are separate from categories. You can add course tags in Learnomy → Categories and assign them from the course form.

Related

Sections and Lessons

Sections are the chapters that divide a course into logical groups. Lessons are the individual learning units inside each section. This page covers how to create and configure both.

Overview

The curriculum lives in the Course Builder (Learnomy → Courses → Builder). Sections and lessons are also accessible directly from Learnomy → Lessons, which lists every lesson across all courses.

Sections

Sections exist only inside the Course Builder. They group lessons and optionally hold a section-level quiz.

Creating a section

  1. Open the Course Builder for a course (Learnomy → Courses, click Builder on the row).
  2. Click Add Section.
  3. Type the section title in the inline field and press Enter or click away to save.

Sections can be reordered by dragging the drag handle on the left side of the section row. Each section shows a count of its lessons.

To delete a section, use the section's row action menu. Deleting a section removes the section record but does not delete the lessons inside it. Those lessons become unattached and will appear on the Lessons list without a section assignment.

Lessons list

Go to Learnomy → Lessons to see all lessons across every course.

Lessons list

Lessons list header

Lessons list table

The table shows the lesson title, the course it belongs to, its section, content type, status, and sort order. Row actions: Edit opens the lesson editor. View opens the lesson in the lesson player. Trash moves the lesson to trash.

Lesson editor

Click Add New Lesson from the page header, or click Edit on an existing lesson, to open the lesson editor.

Lesson editor

The editor is divided into several panels.

Header and title

The top of the editor shows the lesson title field and the Publish button group.

Lesson editor header

Give each lesson a clear, specific title. The slug auto-generates from the title and determines the lesson URL.

Course and section assignment

Before adding content, assign the lesson to a course and section using the dropdowns. If you are creating the lesson from inside the Course Builder context, these fields are pre-filled.

Content type and content

The Content Type dropdown sets what kind of content the lesson delivers. Choose one:

Type Description
Text A WYSIWYG body editor (default).
Video An external or uploaded video. Paste the URL into the Video URL field.
Audio An audio lesson. Paste the audio file URL.
PDF An inline or downloadable PDF. Paste the PDF URL.
Embed A third-party embed such as a slide deck or SoundCloud track. Paste the embed URL.
Live A scheduled live session link (Zoom, Google Meet, etc.). Paste the session URL.
Download A standalone downloadable file (ZIP, ebook, etc.). Paste the download URL.

The content editor adjusts to the selected type. For Text lessons, a full block editor appears. For Video, Audio, PDF, Embed, and Live, a URL field appears.

Lesson content panel

Lesson settings

The settings area below the content editor contains the completion, scheduling, and behavior controls.

Lesson settings

Completion rules

Set how students complete this lesson.

Completion mode options:

Mode Description
Manual Student clicks "Mark Complete" to complete the lesson.
Minimum time Mark Complete activates only after the student has spent the set time on the lesson.
Video percentage For video lessons: Mark Complete activates after the student has watched the set percentage of the video.
Scroll to end Mark Complete activates only after the student has scrolled to the bottom of the lesson content.
Quiz pass Mark Complete activates after the student passes the lesson quiz.

Lock next lesson until complete -- when ticked, the next lesson in the section is locked until this lesson is marked complete (regardless of the course-level sequential setting).

Per-Lesson Rule Enforcement -- overrides the course-level enforcement setting for this specific lesson. Options: Inherit from course, Strict, Advisory, Off.

Schedule (available date)

Available date -- if set, the lesson is not accessible to students until this date and time (in the site's timezone). Leave blank for immediate availability.

This is the Free availability gate. For day-count scheduling relative to enrollment date, see Content Drip (Pro).

Preview lesson

Mark as preview lesson -- tick to let visitors watch or read this lesson without enrolling. Preview lessons show a "Preview" badge in the curriculum list on the course page. This is useful for showing potential students a sample of the course content.

Resources and attachments

The Attachments panel lets you add downloadable files to a lesson. Students see these in the Resources section of the lesson player.

Lesson attachments

To add an attachment:

  1. Click Add Attachment in the Attachments panel.
  2. Enter a title for the file and paste its URL, or upload a file via the media uploader.
  3. Click Save Attachment.

You can add multiple attachments per lesson. Drag to reorder. Click the trash icon to remove one.

Attachments support any file type. The lesson player renders each one as a labeled download link.

Tips

  • Sections are display containers only. The course's completion calculation is based on lessons, not sections.
  • A lesson can only belong to one course and one section at a time. If you need the same content in two courses, create separate lessons.
  • The lesson slug must be unique within a course. Learnomy appends a numeric suffix automatically if a duplicate slug is detected.
  • For Video and Audio lessons, Learnomy uses the Plyr player when possible. Plyr tracks watch percentage, which the video-percentage completion mode reads.
  • Setting a lesson to Draft status removes it from the course curriculum for students but keeps it visible in the builder and admin list.

Related

Categories and Tags

Categories group courses by subject area. Tags are flat labels you can apply across courses, lessons, quizzes, and questions. Both help students browse and discover content.

Overview

Both are managed from Learnomy → Categories. The page has tabs: one for Categories and one tab per tag vocabulary (Course Tags, Lesson Tags, Quiz Tags, and so on).

Categories

The category tree

The Categories tab shows all course categories in a hierarchical tree.

Categories page

Categories header

The tree view shows parent categories and their children indented beneath them. Each row shows the category name, slug, and course count.

Category tree

Row actions: Edit opens the inline form pre-filled with the category's data. Delete removes the category. Deletion only works if the category has no courses assigned to it.

Adding a category

The Add New Category form sits on the left side of the Categories tab.

Add category form

  1. Go to Learnomy → Categories.
  2. Fill in the Name field. This is the display name shown in the catalog and on course cards.
  3. The Slug auto-generates from the name. Change it if you want a different URL fragment (for example, /courses/category/web-dev/).
  4. Optionally choose a Parent Category to make this a sub-category.
  5. Optionally add a Description (shown on the category archive page header).
  6. Click Add Category.

Editing a category

  1. Click Edit on any category row.
  2. The add form on the left side of the page fills with the category's current values.
  3. Make your changes and click Update Category.

Assigning a category to a course

When creating or editing a course, select the category from the Category dropdown in the course form. A course can belong to one category at a time.

Category archive pages

Each category has a public archive page at /courses/category/your-slug/. The catalog filter bar also lets students filter by category. The category archive shows the same course card grid and supports the same sort options as the main catalog.

Tags

Tags are flat (no hierarchy) and shared across multiple content types. The available tag vocabularies are: Course Tags, Lesson Tags, Quiz Tags, and Question Tags.

Switching between tag vocabularies

Click the tab for the vocabulary you want to manage (for example, "Course Tags").

Adding a tag

  1. Click the tab for the tag type (for example, Course Tags).
  2. In the Add New Tag form, enter the Name and optionally edit the Slug.
  3. Click Add Tag.

Assigning tags

  • Course tags -- assign from the course form. A multi-select field in the course form shows all course tags.
  • Lesson tags -- assign from the lesson editor.
  • Quiz tags -- assign from the quiz editor.
  • Question tags -- assign from the question editor.

Tags do not affect the catalog filter in Free. They are available for custom filtering via the learnomy_catalog_where_clauses hook.

Tips

  • Category names are de-duplicated in the catalog filter dropdown. If two categories have the same name (for example after an import), only the oldest one appears in the dropdown. Use the admin tree view to find and clean up duplicates.
  • Changing a category's slug changes its archive URL. Any external links pointing to the old URL will break. Use a redirect plugin if you rename a category after publishing.
  • Category course counts are computed live on every read from the database, so they are always accurate. There is no stale counter to repair. If a count looks wrong after a bulk import, reload the page.
  • The tag system uses the lrn_tags and lrn_tag_map tables with a type column to separate vocabularies. This means a Course Tag and a Lesson Tag with the same name are separate records.

Related

Content Drip (Pro)

Pro feature. Available in Learnomy Pro.

Content Drip lets you schedule when individual lessons become available to students. Instead of releasing the entire course at once, you control the unlock timing lesson by lesson.

Overview

Content Drip is configured from the Pro Tools hub in the Learnomy admin. Select a course, then set a drip rule on each lesson you want to delay. Lessons without a rule are available immediately after enrollment.

Go to Learnomy → Pro Tools, then click the Content Drip card to get started.

Setting up a drip schedule

Content Drip page

Step 1 -- select a course

The Content Drip page opens with a course selector at the top.

Drip schedule header

  1. Open the Course dropdown.
  2. Select the course you want to schedule.
  3. Click View schedule.

Step 2 -- review the lesson schedule

The lesson schedule table appears once you select a course.

Drip schedule table

The table has four columns:

  • Lesson -- the lesson title.
  • Drip Type -- the unlock rule in effect, or "Immediate" if no rule is set.
  • Value -- the specific value for the rule (number of days, a fixed date, or a prerequisite lesson name).
  • Status -- "Available" (no rule) or "Dripped" (a rule is active).

Step 3 -- set drip rules

Drip rules are created and updated via the REST API: POST /learnomy-pro/v1/courses/{id}/drip-rules.

The three rule types are:

Drip Type Value When it unlocks
Days after enrollment A whole number (for example, 7) N days after the student enrolled in the course
Fixed date A date (for example, 2026-09-01) On or after the specified date, for all students regardless of when they enrolled
After completing lesson Another lesson in the same course As soon as the student marks the prerequisite lesson complete

Each lesson can have at most one drip rule. Setting a new rule on a lesson replaces the previous one.

To remove a drip rule from a lesson, send DELETE /learnomy-pro/v1/drip-rules/{rule_id}.

The locked-lesson experience for students

When a student opens a course and a lesson is not yet unlocked by its drip rule, that lesson is inaccessible. In the curriculum list on the course page the lesson row shows a lock indicator. Clicking the lesson title does not open the player.

If the rule type is Days after enrollment or Fixed date, the lesson player shows the date when the lesson will unlock so the student knows when to return.

If the rule type is After completing lesson, the player tells the student which lesson they need to complete first.

Lessons with no drip rule, or whose rule conditions are already satisfied, open normally.

Notes

  • Content Drip rules apply to enrolled students only. Non-enrolled visitors and admins can always access all lessons regardless of drip rules.
  • The prerequisite rule type checks whether the prerequisite item (lesson or quiz) has a completed progress record. Graded attempts count as completed for quizzes.
  • The "Days after enrollment" calculation is based on the student's enrollment timestamp in UTC. A student who enrolled at 11 PM will have their Day 1 unlock happen at the same clock time the following day.
  • Drip rules survive course updates. If you change a lesson's title, its existing drip rule is unaffected.
  • There is no bulk-assign tool in the current admin view. To schedule many lessons at once, use the REST API with a scripted loop.

Related

Quizzes and Grading

Learnomy quizzes test student knowledge, gate course progress, and generate scores that feed certificates and analytics. Questions are stored in a central bank and added to quizzes as slots so one question can appear in many quizzes.

Building a Quiz

Quizzes let you test what students have learned. You can attach a quiz to a specific lesson inside a course, place it at the end of a course section, or create a standalone quiz that lives at its own URL.

Overview

Quizzes live under Learnomy in your WordPress admin sidebar. Go to Learnomy > Quizzes to see all your quizzes and Learnomy > Question Bank to manage the questions that populate them.

A quiz is a container. Questions are stored separately in the Question Bank and added to a quiz through "slots". This means one question can appear in multiple quizzes, and editing a question updates it everywhere.

Quizzes list

Creating a quiz

  1. Go to Learnomy > Quizzes.

    Quizzes list header

  2. Click Add New Quiz in the top-right corner. The quiz editor opens.

  3. Enter a Quiz Title. The URL slug is generated from the title automatically. You can override it in the Quiz URL slug field -- use lowercase letters, numbers, and hyphens only.

  4. Write an optional Description using the rich text editor. Students see this on the start screen before they begin.

  5. Choose a Mode:

    • Graded -- scores the quiz and counts toward course completion. This is the default.
    • Practice -- students can take it freely without it affecting their progress.
    • Survey -- collects answers without grading them.
  6. Click Create Quiz to save. The quiz is created in Draft status, hidden from students until you publish it.

    Quiz editor

Attaching a quiz to a course

A quiz can be standalone (accessible at /quiz/<slug>/) or attached to a course. To attach it:

  1. In the quiz editor, open the Basic section.
  2. Select a Course from the dropdown. The Section dropdown becomes active.
  3. Select the section the quiz belongs to.
  4. Optionally select a Lesson to tie the quiz to a specific lesson in the player flow.

If you leave Course empty, the quiz is standalone and appears at /quiz/<slug>/.

Adding questions via slots

Questions are added to a quiz after the initial save. Once you have saved a quiz, a Questions card appears below the settings.

Quiz editor slots

  1. Click Add questions from bank. A picker modal opens, showing your existing questions. Use the search field or type filter to find what you need.
  2. Check one or more questions and click Add selected.
  3. The questions appear as a numbered slot list. Drag the handle on the left of any row to reorder them.
  4. Each slot has a Marks field. Click the field in the row to change the point value for that question in this quiz (this does not change the question itself).
  5. To remove a question from the quiz, click the trash icon on its row.

To create a new question directly from the quiz editor, click Create new question. It opens the question editor in a new tab. When you return and refresh the picker, the new question is available.

Quiz settings

Open the Settings card to configure all quiz behaviour. Settings are grouped into collapsible sections.

Quiz editor settings

Grading section

Setting What it does
Passing score Slider from 0 to 100%. Default is 70%. Students who score at or above this threshold pass the quiz.
Time limit Enter minutes and seconds. Leave at 0 for no time limit. The timer is shown to the student during the quiz.
Attempt limit How many times a student can take the quiz. 0 means unlimited. Default is 1.
Grading method Which attempt counts when a student has multiple: Highest, First, Latest, or Average.

Behaviour section

Setting What it does
Shuffle questions Randomises question order on each attempt.
Shuffle answers Randomises the order of answer choices.
Navigation Free lets students jump between questions. Sequential shows one question at a time and does not allow going back.
Feedback timing Controls when students see correct answers and per-question feedback. See the table below.

Feedback timing options:

Option Student experience
After submit Full feedback after the whole quiz is submitted.
After each question Feedback shown immediately after each question is answered.
Immediate Feedback shown the moment an answer is chosen.
After attempt finalizes Feedback held until the attempt is fully graded (relevant for quizzes with essay questions).
Only after passing Students who pass see full feedback; those who fail see score only.
Never Answers stay hidden.

Display template

Choose how the quiz looks to students. Two templates are free; three require Learnomy Pro.

Template Description Availability
Focused One question at a time. Good for high-stakes quizzes. Free
Classic All questions on one scrollable page. Free
Sectioned Questions grouped into named sections. Pro
Conversational Chat-style one-question flow. Pro
Review board Full-page grid with a jump-to-question map. Pro

Access and Schedule section

Setting What it does
Access code Students must enter this code before starting. Leave blank for no gate.
Opens at Students see the quiz but cannot start until this date and time.
Closes at No new attempts are accepted after this date and time.
Status Draft hides from students. Published makes it visible. Archived keeps it accessible to enrolled students but removes it from search.

Attempts and Cooldown section

Setting What it does
Cooldown between attempts Minutes a student must wait after submitting before they can start again.
Max failed attempts Students who fail this many times are locked out until an instructor resets them. 0 means no lockout.

Tips

  • The Questions card shows the total mark value across all slots. Review this before publishing so the passing score percentage translates to a sensible point threshold.
  • A new quiz defaults to Draft status. Change the Status field to Published when you are ready for students to see it.
  • Changing marks on a slot does not change the question -- it sets the value of that question in this quiz only. The same question can have different marks in different quizzes.
  • If a quiz has essay questions, set feedback timing to After attempt finalizes so students do not receive partial results while grading is still pending.

Related

Question Types

Learnomy supports six question types out of the box. All six are graded automatically. Two advanced types -- matching and ordering -- are available with Learnomy Pro and require the Pro advanced-quizzes module.

Overview

Question types are set per question in the Question Bank or the question editor. Changing the type on an existing question updates how the answer editor is displayed and which grading logic is applied. Historical attempt responses record the question version they answered, so old attempts are not affected by later edits.

Multiple choice (single correct answer)

The student picks one answer from a list of options. Only one answer can be marked correct. This is the default type when you create a new question.

Setting up answers:

  1. Write each answer choice in a separate answer row.
  2. Check the radio button next to the one correct answer.
  3. Optionally add per-answer feedback that is shown to the student when feedback is enabled on the quiz.

The question is graded as full marks if the correct option is selected, zero otherwise.

Multiple choice (multiple correct answers)

The student selects all correct answers from a list. More than one answer can be marked correct. The question uses partial credit: each answer carries a fraction value that represents its portion of the total marks for the question.

Setting up answers:

  1. Write each answer choice.
  2. For correct answers, set the fraction to a value between 0 and 1. Fractions across all correct answers should add up to 1.0 for full marks.
  3. For incorrect answers, you can leave the fraction at 0 or set a negative fraction to penalise incorrect selections.

True / False

A two-option question where the student picks either True or False. Mark one of the two options as correct.

This type is graded identically to a single-answer multiple choice question.

Short answer

The student types a short free-text response. The grader compares the response against one or more accepted answer strings using a case-insensitive exact match.

Setting up answers:

  1. Add one row per accepted answer. All variations that should be counted as correct need their own row.
  2. You can mark multiple rows as correct. The student's response is checked against all of them.

For a question where you want the answer to be graded by a human instead of automatically matched, use the Essay type.

Fill in the blank

The student fills in missing words in a sentence or paragraph. Blanks are defined by tokens in the question text.

Setting up the question text: Use tokens like {{blank1}}, {{blank2}} at each position where a blank should appear. For example:

The capital of France is {{blank1}} and its currency is {{blank2}}.

Setting up answers: Add one answer row per blank. Each row corresponds to the matching {{blank_N}} token in order.

The grader checks each blank independently using case-insensitive exact matching. Each correctly filled blank earns its fraction of the question's marks.

Essay

The student writes a longer free-text response. Essay questions are not graded automatically -- they go to the Grading inbox in the admin for a human reviewer to score and provide feedback.

A quiz attempt containing one or more essay questions stays in Submitted status until every essay response has been manually graded. Once the last response is graded, the attempt is finalized automatically.

Set quiz Feedback timing to After attempt finalizes when your quiz contains essay questions, so students do not receive a partial result while grading is still in progress.


Advanced question types (Pro)

Pro feature. Available in Learnomy Pro with the advanced-quizzes module active.

Matching

The student pairs items from two columns: a set of prompts and a set of responses. Each prompt has one correct response.

Setting up answers:

  1. Each answer row represents one pair. Write the prompt in the main content field and the matching response in the pair field.
  2. The quiz player displays prompts and responses shuffled so the student cannot rely on position.
  3. Each correctly matched pair earns its fraction of the question's marks.

Ordering

The student drags items into the correct sequence.

Setting up answers:

  1. Add one answer row per item in the sequence.
  2. Set the sort order on each row to indicate the correct position (1 = first, 2 = second, and so on).
  3. The quiz player presents the items in a shuffled order. The student drags them into the correct sequence.
  4. Scoring awards partial credit per correctly placed item based on the fraction assigned to each row.

Both Matching and Ordering require the advanced-quizzes extension to be active. On a Free installation these types are not available in the type selector.


Tips

  • Hints are supported on all question types. Write a hint in the Hint field. Students can reveal it during a quiz at a small marks cost configured on the quiz settings.
  • Explanations work on all types. The explanation is shown to students after they answer (depending on the quiz feedback timing). Use it to teach rather than just confirm whether they were right or wrong.
  • Difficulty levels (Beginner through Expert) are metadata for filtering in the Question Bank. They do not affect scoring.
  • The question version counter increments each time you update an existing question. Past attempts record which version they were answered against, so your historical data is preserved even if you later revise a question.

Related

Question Bank

The Question Bank is a central library of all your questions. Questions are stored independently of any quiz so you can reuse them across multiple quizzes, edit them in one place, and keep your question sets organized with categories and tags.

Overview

Go to Learnomy > Question Bank to see every question on your site. The Times Used column shows how many quizzes each question appears in.

Question bank

The question list

The list shows one row per question. Each row displays the question text (trimmed), its type, category, difficulty, status, how many quizzes use it, and when it was created.

Question bank table

Row actions:

  • Edit -- opens the question editor.
  • Duplicate -- creates a copy of the question with all its answers. Useful for creating variations.
  • Delete -- permanently removes the question. It is removed from any quiz slot it was in.

You can select multiple rows with the checkboxes and use the Bulk Actions bar at the bottom to delete them all at once.

Filtering questions

The filter bar above the table lets you narrow down the list before you scroll or search.

Question bank filters

Filter What it does
Category Show only questions in a specific question category.
Type Filter by question type (multiple choice, essay, etc.).
Difficulty Show questions at a specific difficulty level (Beginner through Expert).
Status Filter by Draft, Published, or Archived status.
Author Show questions created by a specific instructor or admin.
Tag Filter by a question tag.
Search Keyword search against the question text.

Select your filters and click Filter. Click Clear to reset to all questions.

Creating a new question

Click Add Question in the top-right corner to open the question editor.

Question editor

Question Details section

Field Notes
Question Text The prompt shown to the student. Required. For fill-in-the-blank questions, place {{blank1}}, {{blank2}}, etc. where the blanks should appear.
Additional Context Optional passage or code block shown above the answer choices.
Hint A nudge the student can reveal during the quiz at a small marks cost.
Type The question type. Changing this updates the Answers section below.
Category Assign the question to a question category for filtering.
Difficulty Beginner, Easy, Medium, Hard, or Expert. Used for filtering only; does not affect scoring.
Status Draft hides the question from the quiz picker. Published makes it available. Archived keeps it in the bank but removes it from the Add Questions picker.
Explanation Shown to the student after they answer (depending on quiz feedback timing).
Add to quizzes A multi-select list of existing quizzes. Hold Ctrl or Cmd to select more than one. Assigning the question here adds it as a slot to the selected quizzes.

Question editor header

Answers section

The answers area changes dynamically based on the Type you selected. See Question Types for details on how to fill in each type.

Question editor answers

Click Add answer to add another answer row. Drag the handle on any row to reorder answers.

Each answer row has:

  • Content -- the answer text.
  • Correct -- checkbox or radio button to mark it correct.
  • Fraction -- partial-credit weight (used in multiple-correct and advanced types).
  • Feedback -- optional per-answer feedback shown to the student (depending on quiz feedback timing).

Sidebar: tags and details

After saving a question, a sidebar appears with a Tags card and a Details card.

The Details card shows the question ID, how many quizzes it is currently assigned to, its version number, author, and last-updated date. Every time you save changes to a question, the version number increments. Past attempts record the version they were answered against.

Settings section

Question editor settings

The Settings section on an existing question groups the metadata fields (category, difficulty, status) in one place.

Question categories

Question categories are a separate hierarchy from course categories. They are used only to organize the Question Bank.

Question categories are selected from a dropdown in the question editor. The category list is populated when you first create questions. A question can belong to one category. There is no standalone admin tab for managing question categories in the current release.

Tags

Tags can be applied to both questions and quizzes. They appear as checkboxes in the sidebar of the question and quiz editors. Admins can create new tags inline using the quick-add field in the tag card.

Tags for questions and quizzes are managed under Learnomy > Categories, on the respective tag vocabulary tab (for example, Question Tags or Quiz Tags).

Importing and exporting questions

The Question Bank includes CSV import and export buttons in the page header.

Export: Click Export CSV to download all questions currently visible in the list (respecting any active filters). The file can be opened in a spreadsheet.

Import: Click Import CSV and upload a file. The expected columns are:

title, type, difficulty, category_slug, status, hint, body_text, answers_json

The answers_json column contains a JSON array of answer objects. Use the export format as a template.

Tips

  • Questions with Draft status do not appear in the Add Questions picker inside the quiz editor. Set status to Published when a question is ready to use.
  • The Times Used count is a fast way to see which questions are used widely. Before editing a commonly-used question, consider whether the change might affect existing quiz attempts.
  • A question marked Archived is excluded from the picker but stays in existing quiz slots. Use this to retire old questions without removing them from quizzes that already have them.

Related

Taking a Quiz

This page describes the student experience: what students see before, during, and after a quiz. Use it to understand the player flow and to set student expectations in your course.

Overview

Students access quizzes through a course lesson, from the course outline, or directly at a standalone quiz URL. The player is the same in all cases. The quiz template (Focused, Classic, or a Pro template) is chosen by the instructor per quiz.

Before the quiz: gates

If the instructor configured any access restrictions, the student sees a blocking screen before the quiz player loads.

Gate What the student sees
Scheduled "This quiz opens on [date]." Students can see the start screen but cannot start until the open date.
Closed "This quiz closed on [date]." No new attempts are accepted.
Cooldown "Another attempt available in [countdown timer]." The page reloads automatically when the cooldown ends.
Locked out "You've used all [N] attempts." The student must contact the instructor to be reset.
Access code A code entry form. The student must enter the correct code to proceed.

The start screen

When no gate is blocking, the student lands on the start screen.

Quiz player start screen

The start screen shows:

  • The quiz title and description (if the instructor added one).
  • A rules summary card listing the number of questions, time limit (if set), passing score, and attempt limit (if set).

Quiz player rules

If the student is not yet enrolled in the course the quiz belongs to, the start screen shows an enrollment prompt instead of the Start Quiz button.

Click Start Quiz to begin. The attempt is created at this point.

Answering questions

Once the quiz starts, the question player appears. The layout depends on the display template the instructor selected.

Focused template (default): One question at a time. The top bar shows a progress ring, a question counter (e.g. "Question 2 of 8"), and a countdown timer if a time limit is set.

Quiz player

Classic template: All questions on a single scrollable page.

Pro templates (Sectioned, Conversational, Review Board): Available with Learnomy Pro. See Building a Quiz for descriptions.

Answering each question type

Question type How to answer
Multiple choice (single) Click one option.
Multiple choice (multiple) Click all options that apply.
True / False Click True or False.
Short answer Type a response in the text field.
Fill in the blank Type the missing word(s) in each blank field.
Essay Type a longer response in the text area.
Ordering (Pro) Drag the items into the correct sequence.
Matching (Pro) Click a term on the left, then click its match on the right. Click "Clear matches" to redo.

Hints

If the instructor added a hint to a question, a "Show hint" link appears below the question. Clicking it reveals the hint. Hints may carry a small marks cost depending on quiz configuration.

Navigation

In Free navigation mode, Previous and Next buttons let students move between questions freely. In Sequential mode, only the Next button is shown and students cannot go back.

Tab switching detection

Learnomy detects when the student switches away from the quiz tab. A warning banner appears when this happens: "Tab switching detected. This activity is recorded." Tab switch counts are stored with the attempt for the instructor to review.

Timer

If a time limit is set, the remaining time appears in the top bar. When fewer than 60 seconds remain, the timer turns red. When time runs out, the attempt is submitted automatically with whatever answers have been saved.

Immediate feedback

If the instructor set Feedback timing to After each question or Immediate, a feedback panel appears after each answer showing whether it was correct and the explanation (if the instructor wrote one). In other feedback modes, this panel does not appear during the quiz.

Submitting

When the student reaches the last question, the Next button changes to Submit Quiz. Clicking it opens a confirmation step, then submits the attempt.

Once submitted, the attempt status changes from In Progress to Submitted. For quizzes with only auto-graded questions, the status immediately advances to Graded and the results screen is shown. For quizzes with essay or manual questions, the attempt stays Submitted until an instructor grades those responses.

Results screen

After submission (and finalization for auto-graded quizzes), the results screen shows:

  • Pass or fail with the score percentage.
  • The passing threshold.
  • Per-question feedback (if the instructor enabled it in the feedback timing settings).
  • A button to retake the quiz if the student has remaining attempts.
  • A link to go back to the course.

For essay quizzes, the results screen shows a "Pending review" message until the instructor finishes manual grading.

Tips for instructors

  • Students who are locked out see a message to contact their instructor. You can reset an attempt limit manually from the student's profile.
  • If a student's attempt is stuck in "Submitted" and does not show results, check the Grading inbox. There may be an ungraded essay response holding it.
  • The cooldown countdown timer on the gate screen reloads the page automatically. Students do not need to refresh manually.

Related

Grading Submissions

Learnomy grades most question types automatically the moment a student submits. Essay questions require a human reviewer. This page explains both paths and how to use the Grading inbox.

Auto-grading

When a student submits a quiz, Learnomy auto-grades every question type it can handle:

Question type How it is graded
Multiple choice (single) Full marks for the correct option; zero otherwise.
Multiple choice (multiple) Partial credit using the fraction weights set on each answer.
True / False Full marks for the correct choice; zero otherwise.
Short answer Case-insensitive exact match against the accepted answers.
Fill in the blank Each blank checked independently; partial credit per blank.
Essay Not auto-graded. Routed to the Grading inbox.

Once all responses in an attempt are auto-graded, the attempt status changes from Submitted to Graded and the student can see their results.

Manual grading: the Grading inbox

Essay questions -- and any question type that the site configuration routes to manual review -- land in the Grading inbox.

Go to Learnomy > Grading to open the inbox.

Grading inbox

Who sees what

The inbox is ownership-scoped:

  • Administrators see pending attempts from all quizzes on the site.
  • Instructors see only attempts for quizzes attached to courses they co-instruct.

Grading inbox header

Reading the inbox

Each row shows:

  • Student -- name and avatar.
  • Quiz -- the quiz title.
  • Submitted -- the date and time the attempt was submitted.
  • Pending -- how many responses in this attempt still need a grade.
  • Status -- "Needs grading" badge.

The inbox is paginated. The counter at the top shows the total number of attempts currently waiting.

Grading inbox table

Grading an attempt

  1. Click Grade on any row. The grader opens.

    Grading detail header

  2. The grader shows one card per response that needs manual review. Already auto-graded responses are shown as read-only for context, labelled Graded.

  3. For each ungraded response:

    • Read the Student answer displayed in the card.

      Grading answer card

    • Enter a Score between 0 and the maximum marks for that question. The maximum is shown next to the input field.

    • Write optional Feedback to send back to the student. The feedback is shown with the student's results after the attempt is finalized.

    • Click Save grade.

      Grading grade form

  4. The card flips to read-only showing the score and feedback you entered.

  5. When the last ungraded response in the attempt is saved, a banner appears: "All responses are graded. This attempt has been finalized." The attempt status in the database changes from Submitted to Graded. The student can now see their full results.

The attempt is automatically removed from the inbox once it is finalized.

How finalization works

The backend checks after every graded response whether any ungraded responses remain. When none remain, it finalizes the attempt: applies the grading method (highest / first / latest / average) chosen on the quiz, calculates the total score, sets the pass/fail flag, and updates the student's course progress.

This means you do not have to submit or confirm anything at the end. Saving the last grade triggers finalization automatically.

Rubric grading (Pro)

Pro feature. Available in Learnomy Pro with the Advanced Quizzes extension active.

When the Advanced Quizzes extension is enabled, essay responses can be graded against a rubric instead of (or alongside) a freeform score. A rubric is a set of named criteria, each with a maximum point value, that the instructor defines per question in the question editor.

The rubric grading page

When a quiz has essay questions with rubrics defined, the Grading inbox row for that quiz shows a Grade with rubric action link in addition to the standard Grade link. Clicking Grade with rubric opens a dedicated admin page:

/wp-admin/admin.php?page=learnomy-rubric-grading&quiz_id={id}

The page lists all pending (ungraded) essay responses for the selected quiz, grouped by question. Each response is shown as a card containing:

  • The question title.
  • The student's name and attempt number.
  • The student's written response.
  • A rubric score form with one numeric input per criterion. The maximum points for each criterion are shown next to the input.

Enter a score for each criterion and click Submit grade. The scores are summed automatically into the total points for that response. The card becomes read-only once submitted. When all responses on the page are graded, the attempt is finalized in the same way as the standard grader.

If a question has no rubric defined, the card shows a notice: "No rubric defined for this question. Define one in the quiz advanced settings."

Access

The rubric grading page requires the learnomy_manage_quizzes capability. Administrators always have this capability. Instructors have it for quizzes attached to courses they co-instruct.

Defining rubrics

Rubrics are defined in the question editor under the Advanced Quizzes settings for each essay question. Each rubric entry has a criterion name and a maximum point value. A question can have any number of criteria.


Tips

  • Students whose quiz contains essay questions will see a "Pending review" message on the results screen. Their attempt count and course progress are not updated until grading is complete. Grade promptly to keep students moving through the course.
  • The inbox shows the count of pending attempts in a badge next to the Grading menu item in the sidebar. This updates each time the page loads.
  • If a student contacts you saying their result is missing, check the inbox. An ungraded essay response is the most common reason an attempt stays in "Submitted" status.
  • Scores are entered in points (not percentages). The quiz converts the raw score to a percentage using the total available marks from all slot marks combined.

Related

Certificates

This section covers everything to do with certificates in Learnomy.

Certificate Templates

Certificate templates are the visual designs Learnomy prints when a student earns a certificate. You design a template once using the built-in designer, then assign it to any course that awards certificates.

Overview

The Certificate Designer is a canvas-based editor that lets you compose a PDF-ready certificate layout without any external tools. It lives at Learnomy > Certificates > Design New Template (direct link: wp-admin/admin.php?page=learnomy-certificate-designer). Each template stores its design as JSON and renders to a PDF or printable HTML page when a certificate is issued.

Opening the designer

  1. Go to Learnomy > Certificates.

    Certificates list header

  2. Click Design New Template in the top-right corner. To edit an existing template, use the Edit row action in the table.

    Certificate designer

The designer opens with a canvas on the left and a sidebar panel on the right.

Template panel: name, orientation, and background

The Template panel at the top of the sidebar controls the canvas itself.

Designer sidebar panel

  1. Enter a Name for the template. This name appears in the course settings dropdown so you can tell templates apart.
  2. Choose Orientation: Landscape (default) or Portrait.
  3. Set a Background Color using the color picker. The default is white (#ffffff).
  4. To use an image as the background, click Select next to Background Image. This opens the WordPress media library. Choose an uploaded image (a certificate border frame, a branded pattern, or a full bleed illustration) and click Select. The canvas updates immediately. To remove the image, click Clear.

Choosing a pre-built template

The Pre-built Templates panel gives you three starting points:

Template Description
Classic Centered serif layout with a decorative gold border
Modern Left-aligned layout with a bold accent bar
Minimal Clean layout with generous whitespace

Click a card to load its element arrangement onto the canvas. You can then change any element after loading.

Adding and editing elements

The Add Elements panel has six element types:

Button What it adds
+ Text A static text block (course name label, "Certificate of Completion" heading, etc.)
+ Merge Tag Dynamic text that fills in at issue time (student name, course name, issue date, credential ID, site name)
+ Image / Logo An uploaded image such as a logo or signature image
+ QR Code A QR code that links to the public verification URL for this certificate
+ Line / Border A horizontal or vertical decorative line
+ Signature A signature block with a name and title below the signature image

Click any button to add an element at a default position on the canvas. Click an element on the canvas to select it.

Editing a selected element

When an element is selected, the Selected Element panel appears in the sidebar.

Designer header with save and preview controls

The panel shows editable properties for the selected element (position, size, font, color, content, and element-specific options). Use the Duplicate button to copy the element, or Delete to remove it.

Elements are absolutely positioned on the canvas. Drag to reposition them.

Saving and previewing

  • Click Save Template to save the current canvas state. The autosave indicator shows the last-saved time.
  • Click Preview PDF (active after the first save) to generate a sample PDF with placeholder merge-tag values so you can see the final output before assigning the template to a course.

Assigning a template to a course

A certificate template only issues certificates when it is assigned to a course with certificates enabled.

  1. Go to Learnomy > Courses and open the course editor for the course you want.
  2. Open the Completion and Certificate section in the course settings panel.
  3. Check Award a certificate on completion.
  4. The Certificate Template dropdown appears. Select the template you just designed from the list. Use the search box to find a template by name if you have many.
  5. Save the course.

If no templates exist yet, the course settings show a link to the designer instead of the dropdown.

Tips

  • A template can be assigned to multiple courses at the same time.
  • If a student's course is deleted after a certificate was issued, the certificate remains verifiable. The course shows as "Course archived" on the student's certificates page, but the credential ID and verification URL continue to work.
  • The QR Code element encodes the public verification URL (/verify/<uuid>). Adding one makes the printed or downloaded PDF self-verifying without needing the website open.
  • Background images render at their full canvas size. Use landscape-ratio images for landscape templates and portrait-ratio images for portrait templates.

Related

Issuing and Verifying Certificates

Learnomy issues certificates automatically when a student completes a course. Every certificate carries a UUID, an Ed25519 cryptographic signature, and a public verification URL that anyone can open to confirm it is genuine.

Overview

You do not manually issue certificates. The system issues them at the moment a student's course completion is recorded. The admin Certificates list at Learnomy > Certificates shows every issued certificate, with filters to search, narrow by status, and take bulk actions. Certificates that are no longer valid can be revoked individually or in bulk.

How automatic issuance works

When a student satisfies the completion requirement set on a course (all lessons completed, lessons plus final quiz, a percentage threshold, or manual completion), the following happens automatically:

  1. Learnomy records the completion and fires the learnomy_course_completed action.
  2. Certificate_Service checks whether the course has Award a certificate on completion enabled and a template assigned.
  3. If both conditions are met, the service calls Certificate::issue(), which writes a new row to lrn_certificates with a UUID v4 identifier, a status of active, and a timestamp.
  4. The certificate is signed using Ed25519. The private key is stored in WordPress options (encrypted with AUTH_KEY). The public key is embedded in the signed payload.
  5. The student receives a certificate email notification (if enabled) and the certificate appears immediately on their My Certificates page at /account/certificates/.

If a student retakes a course and Reset progress on retake is on, a new certificate is issued upon the next completion.

The admin Certificates list

Go to Learnomy > Certificates to see all issued certificates.

Certificates list overview

The table columns are:

Column Contents
Student Avatar, display name
Course Course title
Certificate ID First eight characters of the UUID (hover or copy for the full ID)
Issued Issue date in your WordPress date format
Expires Expiry date, or "Never" if the certificate has no expiry
Status Active or Revoked
Actions View (opens the public verification page) and Revoke

Certificates table

Filtering and searching

The filter bar at the top of the list lets you narrow results by:

  • Status: All statuses, Active, Revoked, or Expired.
  • Course: A dropdown of courses that have at least one certificate issued.
  • Student or certificate ID: Free-text search. Learnomy resolves names and email addresses to user IDs, then searches. You can also paste a full or partial UUID.

Pagination keeps the active filters as you move through pages.

Revoking a certificate

Revoking marks a certificate as no longer valid. The public verification page immediately shows "Certificate Revoked" to anyone who visits the URL.

Revoke a single certificate

  1. Find the certificate in the list.
  2. Click the Revoke action in the row. Revoke is only shown for active certificates.

Bulk revoke

  1. Check the checkboxes on the rows you want to revoke.
  2. Choose Revoke from the Bulk Actions dropdown.
  3. Click Apply.

A revoked certificate cannot be reactivated from the admin UI. To reissue, the student needs to complete the course again (or the admin can issue one via the REST API).

The public verification page

Every certificate has a unique public URL:

/verify/<uuid>

No login is required to visit it. When a valid certificate UUID is in the URL, the page shows:

Valid certificate verification result

The result block shows the recipient name, course title, issue date, credential ID, and a "Valid" status badge.

Verification result detail

The page also shows:

  • A rendered preview of the certificate design (scaled to fit the browser viewport).
  • A Download button for the PDF (if the certificate template renders a PDF).
  • A Print button that opens a print-ready HTML version.
  • A Share section with a LinkedIn "Add to Profile" link and a copy-link button.
  • A QR code (if the template includes a QR Code element) linking back to this same URL.

What happens for invalid IDs

Scenario What the visitor sees
UUID matches an active certificate "Certificate Verified" result block
UUID matches a revoked certificate "Certificate Revoked" message
UUID does not match any certificate "Certificate Not Found" message
No UUID in the URL A form to enter a credential ID manually

Verification count

Each time the verification page is loaded for a valid UUID, Learnomy increments the verification_count and updates last_verified_at on the certificate row. You can see these values via the REST API or WP-CLI. They are useful for spotting unusual spikes that could indicate credential sharing.

Student experience

Students access their certificates at /account/certificates/. Each certificate shows as a card with the course name, issue date, short credential ID, and action buttons.

Student certificates page

Each card has:

  • Verify - opens the public verification URL.
  • Add to LinkedIn - pre-fills the LinkedIn "Add Certification" form with the course name, organization, issue year/month, and credential ID.
  • Share - copies the verification URL to the clipboard.
  • Download - downloads the PDF.

Certificate card actions

If a certificate's course has been deleted, the card still shows and remains verifiable. The title reads "Course archived (certificate still verifiable)" so the student understands the context.

Tips

  • Certificates are attached to the course, not to a lesson or quiz. A student must complete the entire course to trigger issuance.
  • Expiry is optional. If you set an expires_at on a certificate (via the REST API or Pro features), Learnomy's daily cron job flips the status to expired automatically once the date passes.
  • The verification URL is stable for the lifetime of the certificate. Share it on resumes, LinkedIn, or anywhere that needs a clickable credential link.
  • Revoking is permanent in the admin UI. Use it only when a certificate was issued in error or a student's completion was fraudulent.

Related

Credly Integration

Pro feature. Requires Learnomy Pro with the Certificates Pro extension active.

Credly is a digital badge platform. When the Credly integration is connected, Learnomy pushes a digital badge to the student's Credly account every time a certificate is issued. Students receive an email from Credly inviting them to accept the badge and add it to their profile, LinkedIn, and other networks.

Overview

Connecting Credly requires three things from your Credly account: an API bearer token, your organization ID, and a badge template mapped to each course. The connection settings live in Learnomy Settings > Credly.

The section only appears in the settings sidebar when Learnomy Pro is active and the Certificates Pro extension is enabled.

Setting up the connection

Go to Learnomy Settings and click Credly in the sidebar.

Step 1 - Get your Credly credentials

  1. Log in to your Credly account at credly.com.
  2. Go to Account Settings > API.
  3. Generate a new API bearer token and copy it.
  4. Go to your Organization settings and copy your Organization ID. It looks like a UUID: 0193a3b4-7e2c-0000-0000-000000000000.

Step 2 - Enter credentials in Learnomy

In the Connection section of the Credly settings panel:

  • API Token -- paste your Credly API bearer token. The field is a password input. Once saved, the stored value is encrypted and the field shows eight placeholder characters. Leave it as-is on subsequent saves to keep the existing token.
  • Organization ID -- paste your Credly organization ID.

Step 3 - Configure behavior

In the Behavior section:

Setting What it does
Enable Credly Push digital badges to Credly when certificates are issued. Turn this off to pause badge delivery without removing your credentials.
Auto-push Badges Automatically send the badge push request to Credly the moment a certificate is issued. When off, badges must be pushed manually from the Certificates list.

Step 4 - Save and test

Click Save Settings. Then click Test Connection to verify that Learnomy can reach the Credly API with the credentials you entered. A success or failure message appears next to the button without reloading the page.

What happens when a badge is issued

When Auto-push Badges is on and a student earns a certificate:

  1. Learnomy issues the certificate and generates the unique verification URL.
  2. Learnomy calls the Credly API to issue the badge to the student's email address.
  3. Credly sends the student an email inviting them to accept the badge.
  4. The student accepts the badge on Credly and can share it from there.

If the Credly API call fails (for example, if the student's email is not registered on Credly), the failure is logged in the admin but the Learnomy certificate is still issued normally.

Tips

  • The API token is stored encrypted in the database. It is never exposed in admin HTML or REST responses once saved.
  • Turning off Enable Credly pauses badge pushes without clearing your credentials. You can re-enable it later and push the next batch normally.
  • If a student does not receive a Credly invitation, check that their WordPress account email matches a Credly account. Credly matches by email address.
  • Credly badge templates are configured in Credly, not in Learnomy. Each Learnomy course can be assigned to a specific Credly badge template from the course editor when Certificates Pro is active.

Related

The Student Experience

This section covers the student-facing experience in Learnomy, from the account hub to the lesson player to billing.

Student Account Hub

The student account hub is the central home for a learner once they are logged in. It brings together a dashboard summary, a full course library, certificates, billing, and account settings under one persistent navigation menu.

Overview

The hub lives at /account/. Every page inside it shares the same two-column layout: a vertical account navigation on the left and the page content on the right. The account navigation appears on all account pages so students can move between sections without going back to the main site.

The hub has five sections:

Section URL What it shows
Dashboard /account/ Stats summary, recent activity, course previews, certificate widget
My Courses /account/courses/ Full enrolled course library with tab filters
Certificates /account/certificates/ All earned certificates with download and share actions
Billing /account/billing/ Active subscriptions, time-limited access, and order history
Account details /account/details/ Profile, email, password, notification preferences

Dashboard

The dashboard at /account/ is the first page a student sees after logging in.

Dashboard overview

Header

The header greets the student by name and shows a brief summary line.

Dashboard header

Stats row

Four stat cards give a quick snapshot:

  • Courses Enrolled - total enrollments across all states.
  • In Progress - courses the student has started but not finished.
  • Completed - courses marked as completed.
  • Avg Quiz Score - the student's average grade across all scored quiz attempts, displayed as a percentage.

Dashboard stats

Continue Learning

When a student has an in-progress course, a "Continue Learning" card appears below the stats row with a direct link to pick up where they left off.

Continue learning card

Courses preview

A grid of the student's enrolled courses is shown below the continue-learning card, giving quick access to the courses they are working through.

Courses preview grid

Recent activity

A feed of recent course and lesson activity, including completions and quiz attempts.

Recent activity

If the student has no enrollments yet, each widget shows an empty state with a link to the course catalog.

My Courses

The full course list is at /account/courses/.

My Courses page

Tabs

The tab bar at the top filters the list:

  • All - every enrollment regardless of state.
  • In Progress - courses started but not finished.
  • Completed - courses the student has finished.
  • Wishlist - courses saved to the wishlist but not yet enrolled.

Each tab shows its count next to the label.

My Courses tabs

The list loads 40 courses per tab. When more exist, a Load more button appears at the bottom of the tab panel to fetch the next page via REST without reloading the page.

Course cards

Each enrolled course is shown as a card with the course title, progress (if in progress), and quick-access actions.

Course card

Course grid

Account details

The account details page at /account/details/ lets students update their profile and notification preferences.

Account details overview

Profile section

Students can change their Display name, First name, and Last name.

Profile fields

Email section

To change the email address, the student types the new address and enters their current password. Learnomy sends a confirmation link to the new address. The email does not change until the student opens that link. While a confirmation is pending, a notice shows the pending address.

Email field

Password section

To change the password, the student enters a new password (minimum 8 characters) and confirms with their current password. Leaving the new password blank keeps the existing password unchanged.

Password fields

Notification preferences

Below the profile form, students can toggle which email categories they receive. Four toggles are available:

  • Enrollment and welcome emails
  • Course progress, completions, and certificates
  • Comments, replies, and new reviews
  • Study reminders

Transactional emails (receipts and account-security messages) are always sent and do not appear in this list.

Notification preferences

Each toggle saves immediately when changed. Unchecking a category stops that type of email. Checking it turns it back on.

Tips

  • The account navigation is the same across all account pages. Students can switch between Dashboard, My Courses, Certificates, Billing, and Account details without navigating away.
  • The Dashboard stats derive from live enrollment and quiz data. They update immediately after a student completes a lesson or submits a quiz.
  • A new registration banner appears on the dashboard the first time a user with no prior student role visits /account/. It clears once they navigate away.

Related

Taking a Course

This page covers the enrolled learning experience: how to navigate to a course after enrolling, how the lesson player works, how to mark lessons complete, and how Learnomy tracks progress so a student can always pick up where they left off.

Overview

Once a student is enrolled, the course detail page at /courses/<slug>/ switches to an enrolled view that shows the curriculum with progress indicators. Each lesson opens in a full-screen player. Progress is tracked per lesson and rolls up to a course-level percentage. Learnomy remembers the last lesson a student was on so they can resume from the dashboard.

The enrolled course page

After enrolling, the course detail page shows an "Enrolled" badge and a curriculum with per-lesson checkmarks and a progress bar.

Enrolled course view

Progress bar

The progress bar at the top of the curriculum section shows the percentage of lessons completed.

Course progress bar

The percentage is recalculated each time a lesson is marked complete.

Curriculum with checkmarks

Every lesson in the curriculum shows a checkmark when completed.

Enrolled curriculum

Lessons that require a previous lesson to be finished first (sequential mode) appear locked until the prerequisite is met.

Final quiz

When a course has a final quiz attached, it appears at the bottom of the curriculum.

Final quiz in curriculum

The lesson player

Clicking a lesson in the curriculum opens the full-screen lesson player.

Lesson player

The player uses a distraction-free layout with a collapsible curriculum sidebar on the left and the lesson content in the main column.

Curriculum sidebar

The left sidebar shows the full course curriculum (sections and lessons) with completion states.

Player sidebar

  • Completed lessons show a filled checkmark.
  • The current lesson is highlighted.
  • Locked lessons (in sequential mode) are shown with a lock icon and cannot be clicked until the prerequisite lesson is completed.

Click the close icon at the top of the sidebar to collapse it and give the content more room. An open-panel button appears on the edge of the screen to reopen it.

Lesson content

The main content area shows the lesson body.

Player content body

The content type determines what the player shows:

Lesson type What renders
Text / rich content Editor.js body with formatted text, headings, lists, images, and embedded media
Video An embedded video player (Plyr.io) that tracks watch percentage
Audio An embedded audio player
PDF An inline PDF viewer

Learnomy tracks video watch percentage in the background. If the course or lesson requires a minimum watch percentage before the lesson can be marked complete, the "Mark complete" button stays inactive until that threshold is reached.

Navigation

Prev and Next buttons at the bottom of the content area move between lessons.

Player nav controls

The buttons are labeled with the adjacent lesson titles. Clicking Next after marking the current lesson complete moves directly to the next lesson. Clicking Next without marking complete advances to the next lesson but leaves the current one unmarked.

Actions bar

The actions bar at the top of the content column holds the mark-complete button and other controls.

Player actions bar

Marking a lesson complete

  1. Work through the lesson content.
  2. Click Mark complete in the actions bar or at the bottom of the content area.

Learnomy saves the completion, updates the progress percentage, and checks the lesson checkmark in the sidebar. The "Mark complete" button changes to show "Completed."

If the lesson has a completion requirement (a minimum video watch percentage, a required quiz pass, or manual confirmation), the button is inactive until the requirement is satisfied. The requirement is shown below the button.

Course progress

Progress is stored per lesson per student. The course-level percentage is derived from the ratio of completed lessons to total lessons.

When a student returns to the course later, the Dashboard shows a "Continue Learning" card pointing to the last lesson they were on. Clicking it jumps directly back into the player at that lesson.

The completion screen

When a student finishes the last required element (all lessons, or lessons plus the final quiz, depending on the course completion setting), the course page shows a completion screen.

The completion screen shows the instructor's custom completion message if one is set, or a default congratulations message. If the course awards a certificate, a View Certificate (or Get Certificate) button appears here.

If the course allows retaking, a Retake Course button also appears. When retaking is configured to reset progress, the button warns the student that their previous progress and quiz attempts will be cleared.

Pre-enrollment: what non-enrolled students see

A student who is not yet enrolled sees the course detail page in its sales view.

Non-enrolled course hero

The curriculum shows a preview of section titles and a subset of lessons.

Curriculum preview for non-enrolled

An enrollment box shows the price and a button to enroll or purchase.

Enroll box

The instructor bio and course reviews are visible to everyone.

Instructor section

Reviews section

Tips

  • Sequential mode is controlled per-course by the instructor. In sequential mode, lessons must be completed in order. When sequential mode is off, students can open any lesson in any order.
  • The lesson player is fully keyboard-accessible. Sidebar navigation, the mark-complete button, and the prev/next controls are all reachable by keyboard.
  • The player works in the Learnomy mobile web app (WebView mode) as well as the browser. The layout adapts to mobile viewports.
  • If a student tries to access a lesson URL directly without being enrolled, the player shows an "Enrollment Required" gate instead of the lesson content.

Related

Certificates and Billing

This page covers the two student account pages that deal with credentials and payments: My Certificates and Billing.

My Certificates

The certificates page is at /account/certificates/. It lists every certificate a student has earned, with actions to verify, share, download, and add to LinkedIn.

Getting there

From any account page, click Certificates in the account navigation.

Certificates page header

Certificate cards

Each certificate appears as a card.

Certificate card

The card shows:

  • The course name.
  • The issue date.
  • The short credential ID (the first eight characters of the UUID in a code block).

Card actions

Each certificate card has four actions.

Certificate card actions

Action What it does
Verify Opens the public verification page at /verify/<uuid> in the browser. Anyone with this link can confirm the certificate is genuine.
Add to LinkedIn Opens LinkedIn's "Add Certification" dialog pre-filled with the course name, your site name as the organization, the issue year and month, the credential ID, and the verification URL.
Share Copies the verification URL to the clipboard.
Download Downloads the certificate as a PDF.

Empty state

If the student has not earned any certificates yet, the page shows a message: "Complete a course to earn your first certificate."

Certificates from deleted courses

If a course has been deleted after a certificate was issued, the certificate remains on this page. The title shows "Course archived (certificate still verifiable)". The credential ID, verification URL, and download all continue to work. The LinkedIn button does not appear for archived certificates.

The full certificates page

Full certificates page

Billing

The billing page is at /account/billing/. It shows active subscriptions, time-limited course access, and the full order history.

Getting there

From any account page, click Billing in the account navigation.

Billing page header

Active subscriptions

The first section lists all active subscriptions.

Subscriptions section

Each subscription card shows:

  • The plan or course name.
  • Whether it is a "Membership plan" or "Course subscription."
  • The status badge (Active, Past due, Cancelled, etc.).
  • The renewal date.
  • The next payment amount.
  • The payment provider (Stripe or PayPal).

Subscription card

If a subscription is set to cancel at the end of the billing period (the student cancelled but access continues until the period ends), the card shows a note: "Ends at the current period. Access continues until then."

Two buttons are available per subscription:

  • Manage - links to the membership manage page where the student can cancel or change their plan.
  • Manage payment method - opens the Stripe Customer Portal (shown for Stripe subscriptions only) where the student can update their card on file.

If the student has no subscriptions, the section shows an empty state with a "Browse plans" link.

Time-limited access

When a student has enrolled in a course with a fixed access period (a course that expires after a set number of days), those enrollments appear in the "Time-limited access" section.

Each card shows the course title, the access expiry date, and how many days remain. When fewer than 7 days remain, the badge turns to a warning color. When access has expired, the badge shows "Expired" and a Renew access button replaces the Continue button.

This section only appears when the student has at least one time-limited enrollment.

Order history

The order history table lists all completed transactions.

Order history

Columns:

Column Contents
Date Transaction date
Item Course or membership name. Clickable if the enrollment is still active
Amount Amount charged. Struck through if refunded
Status Transaction status badge
Receipt A download link for the PDF receipt

Refunded transactions appear in the table with the original amount struck through and a note showing the refund date below the amount.

Full billing page

If the student has no transactions, the section shows an empty state with a "Browse courses" link.

Tips

  • The verification URL is a permanent link. It works whether the student is logged in or not, making it safe to put on a resume or portfolio.
  • Receipts are downloadable as PDFs from the order history table. They are also emailed to the student at the time of purchase (unless the student has opted out of transactional emails).
  • Students cannot cancel a Stripe subscription from within the Learnomy billing page directly. The Manage button on the subscription card links to the membership management page, which has the cancel option. For Stripe subscriptions, the Manage payment method button opens the hosted Stripe Customer Portal.
  • PayPal subscriptions show the payment provider as "Paypal" in the billing details. Cancellation for PayPal subscriptions goes through the membership manage page as well.

Related

Managing Students (Admin)

The Students section of the WordPress admin gives you a bird's-eye view of every learner on your site and a per-student detail page where you can see their full history and take management actions.

The Students list

Go to Learnomy > Students.

The list shows every user who has enrolled in at least one course. Each row shows the student's name and email, how many courses they are enrolled in, how many they have completed, their last active date, and their total lifetime spend.

Use the search field at the top to find a student by name or email. The status tabs (All, Active, Inactive) filter by whether the student has recent activity.

The student detail page

Click a student's name, or click View in the row actions, to open the student detail page.

The detail page collects all of that student's Learnomy data in one place. Administrators see every card and every management action. Instructors who reach the page via their own course data see the same cards but without the management controls.

Profile card

Shows the student's email, WordPress username, registration date, and the date they were last active on the site.

Learning summary card

A four-row summary at a glance:

Field What it shows
Courses enrolled Total number of courses the student is enrolled in.
Courses completed Completed count and completion rate as a percentage of enrollments.
Certificates earned Number of certificates issued to this student.
Lifetime spend Total amount the student has paid across all transactions.

Grant course access (admin only)

A dropdown lets you manually enroll the student in any published course they are not already enrolled in. Manual grants bypass payment, so this works for paid courses and membership-gated courses. The enrollment is recorded with source manual.

If the student is already enrolled in every published course, the card shows a notice instead of the dropdown.

Course enrollments

A table of every course the student is enrolled in, with columns for:

  • Course - links to the course editor.
  • Status - enrollment status badge (active, completed, expired, etc.).
  • Progress - percentage of lessons marked complete.
  • Source - how the enrollment was created (purchase, manual, membership, etc.).
  • Enrolled - the date the enrollment was created.
  • Completed - the date the course was completed, or a dash if not yet complete.

Row actions (admin only):

  • Reset progress - clears the student's lesson completions and quiz attempts for that course. The enrollment remains active; the student starts from the beginning.
  • Remove access - deletes the enrollment entirely. The student loses access to the course and their progress for it is removed.

Certificates

A table of every certificate Learnomy has issued to this student: the course it was issued for, the issue date, the certificate status, and a link to the public verification page. An empty state appears if no certificates have been earned yet.

Quiz attempts

A table of all quiz attempts this student has made, showing the quiz name, score percentage, pass/fail result, attempt status (Submitted, Graded, etc.), and the date the attempt was submitted.

Payments

A table of every payment transaction associated with this student: date, transaction type, amount, payment provider, and status. An empty state appears if no payments are on record (for example, a student who only enrolled via manual grant or a free plan).

Removing a student

The Remove student button in the page header (admin only) deletes all of the student's course enrollments. Their WordPress user account is not deleted and they can re-enroll in courses afterwards. Use this to clear a test account or when a student requests removal of their learning data.

A confirmation prompt appears before anything is deleted.

Tips

  • The student detail page is read-only for instructors. They can see a student's enrollments, quiz attempts, and certificates for courses they co-instruct, but they cannot grant access, reset progress, or remove the student.
  • The completion rate in the Learning summary card is calculated as completed courses divided by enrolled courses. A student enrolled in 5 courses who completed 2 shows 40%.
  • Resetting progress does not affect the enrollment status or the enrollment record. The student keeps access to the course and can work through it again from the beginning.
  • The Payments table shows all transactions linked to the student's user ID. It includes refunds as well as purchases.

Related

Instructors and Earnings

Everything about recruiting, approving, and supporting the instructors on your platform.

Becoming an Instructor

Anyone with a WordPress account on your site can apply to become an instructor. Admins review applications and approve or reject them from a dedicated queue. This page covers the applicant experience and the admin workflow for processing those applications.

Overview

The application flow lives at /become-instructor/. It is a gated frontend form: logged-in users see the form; guests are redirected to log in first. Once approved, the user gains the lrn_instructor WordPress role and can start creating courses in wp-admin.

The admin queue is at Learnomy > Applications (?page=learnomy-applications).


Applying to Become an Instructor

  1. Go to your site's /become-instructor/ page. If you are not logged in, you will be redirected to the login screen first.

    Become Instructor form

  2. Fill in the required fields:

    • About You - Your background and professional experience.
    • Areas of Expertise - Separate multiple areas with commas (e.g., Web Development, Data Science).
    • Course Idea - Describe the first course you want to create: topic, target audience, and what students will learn.
    • Teaching Experience (optional) - Any past experience teaching online or in person.

    Application form fields

  3. Click Submit Application.

After submitting, the page confirms that your application is under review. You will receive an email notification once a decision is made.

If your application was rejected

The page shows the rejection reason (if one was provided) and displays the form again so you can update your details and reapply.


Admin: Reviewing Applications

Navigate to Learnomy > Applications. The queue opens on the Pending tab by default.

Pending applications list

Status tabs

Three tabs filter the list:

Tab What it shows
Pending Applications waiting for a decision
Approved Applications that have been approved
Rejected Applications that have been rejected

Each tab shows a count in parentheses.

Status tabs

Reading an application row

Each row shows the applicant's name, email, a truncated bio, their course idea, the date they applied, and their current status.

Application row

Click the applicant's name to open the full application detail page, where the complete bio, expertise, teaching experience, course idea, and preferred payout method are visible.

Approving an application

  1. Locate the application on the Pending tab.

    Pending applications table

  2. Click Approve in the Actions column. A confirmation prompt appears.

  3. Confirm. The user's role is immediately upgraded to lrn_instructor. The application moves to the Approved tab and a notification email is sent to the applicant.

Rejecting an application

  1. Click Reject in the Actions column of a pending row.

  2. Confirm. The application moves to the Rejected tab. If you entered a rejection reason, the applicant sees it on the /become-instructor/ page when they return.

Approved applications have no further actions available in the queue. Rejected applications are also read-only in the queue (the applicant can re-apply from the frontend, which creates a new pending entry).

Bulk actions

Check one or more rows, then choose Approve or Reject from the Bulk Actions dropdown and click Apply. The queue supports up to 20 rows per page; use the pagination controls at the bottom to reach older applications.

Approved applications view


Tips

  • The form includes a honeypot field to block automated bot submissions. No CAPTCHA is required.
  • Once approved, an instructor authors courses and lessons in wp-admin editors (Learnomy > Courses), not on the frontend form.
  • The application record is preserved even after approval, so you can view what the instructor originally submitted from their detail page in Learnomy > Instructors.

Related

Instructor Dashboard

The instructor dashboard at /instructor/ is an approved instructor's home base. It shows a real-time snapshot of course activity, student progress, and revenue, and it links directly into wp-admin for course authoring.

Overview

The dashboard is only accessible to users with the lrn_instructor role (or admins). Anyone who visits /instructor/ without that role sees either an "Application Under Review" notice (if they have a pending application) or a prompt to apply.

Instructors create and edit courses in wp-admin, not on the frontend. The dashboard is a read view: it surfaces what is happening across the instructor's courses, not a form for editing them.


The Dashboard Header

The header greets the instructor by name and shows their avatar. Two action buttons are always visible:

  • Create - Opens the Add New Course page in wp-admin (?page=learnomy-new-course).
  • Catalog - Opens the public course catalog.

Dashboard header


Stats Row

Immediately below the header, four stat cards summarize the instructor's account at a glance.

Stats row

Card What it shows
Total Courses Total number of courses the instructor authors or co-teaches
Total Students Total enrolled students across all their courses
Published Number of courses currently in Published status
Revenue Lifetime commission earnings (the instructor's share of completed sales)

If the instructor has not authored any courses yet, the dashboard shows site-wide aggregates and displays an informational notice explaining the fallback.


My Courses Table

The courses widget lists the instructor's courses with title, status, and student count.

My courses section

Click a course title to open it in the wp-admin course editor. The table shows the first few courses; if you have more, a link to the full courses list in wp-admin appears.

My courses full view


Completion Funnel

The funnel widget shows how students progress through the instructor's courses.

Funnel section

Four stages are tracked as both counts and percentages of the enrolled cohort:

  1. Enrolled
  2. Started (at least one lesson completed)
  3. Halfway (50% or more complete)
  4. Completed (course completion criteria met)

Use this to spot where students drop off. A steep drop between Enrolled and Started often means the first lesson needs work.

Funnel chart


Recent Enrollments

This widget lists the most recent students to enroll in any of the instructor's courses.

Recent enrollments section

Each row shows the student's name and the course they enrolled in.

Recent enrollments full


Earnings Widget

The earnings widget shows three figures and a withdrawal button.

Earnings section

Figure Meaning
Available to Withdraw Cleared commissions not yet paid out
This Month Earnings recorded in the current calendar month
Lifetime Total earnings since the account was created

Earnings summary

The Request Withdrawal button opens a withdrawal request. See Commissions and Earnings for the full withdrawal flow.

Withdraw button


Revenue Trend

The revenue trend widget charts the instructor's earnings over recent periods so they can see whether revenue is growing or declining.

Revenue trend section

Revenue trend chart


Announcements

The Announcements widget lets instructors send a broadcast message to every student enrolled in their courses. Type a title and message, optionally check Also send email, then click Send. The message is delivered as an in-app notification and, if the email option is checked, by email.

Below the compose form, the widget shows the three most recently sent broadcasts with the recipient count and time elapsed since sending.

Announcements section

Announcements view


Public Instructor Profile

Each approved instructor has a public profile page at /instructor/<username>/. This is separate from the dashboard and is visible to all visitors without login.

The public profile shows the instructor's avatar, headline, bio, and the list of their published courses.

Public profile header

Public profile courses

Instructors update their profile information at /account/instructor-profile (the Instructor profile link in the account navigation). An admin can also edit it from the instructor detail page in wp-admin.


Tips

  • Instructors author all course content (courses, lessons, quizzes, questions) in wp-admin, not on this dashboard.
  • The dashboard respects ownership scope: an instructor sees only their own courses' data. A WordPress administrator who visits the dashboard sees site-wide data and an informational notice.
  • Widget sections are rendered through a registry. Pro extensions can add new sections via the learnomy_dashboard_widgets filter.

Related

Commissions and Earnings

When a student pays for a course, Learnomy splits the revenue between the instructor and the platform. This page explains how that split is calculated, how instructors track their earnings, and how withdrawal requests work.

Overview

Commission rules live at Learnomy Commerce > Earnings (?page=learnomy-earnings). The global default split is set in Learnomy Settings > Commissions. Override rules on the Earnings page let you give specific courses or instructors a different rate.


How Commission Splits Work

Every completed transaction is split using the first matching rule in this priority order:

  1. Per-course rule - A rule tied to a specific course overrides everything else for that course.
  2. Per-instructor rule (Pro) - A rule tied to a specific instructor applies to all their courses that do not have a per-course rule.
  3. Default split - The global rate configured in Settings applies when no override rule matches.

The instructor receives their percentage of the net base amount (the customer's payment minus any fee or tax recorded at checkout). The platform keeps the remainder.


Setting the Default Split

Go to Learnomy Settings and find the Commissions section. Enter your Platform Commission (%), the share the platform keeps from each transaction. The instructor's share is the remainder.

For example, entering 30 means the platform keeps 30% and the instructor receives 70% of every transaction. The default is 30%.


Adding Commission Override Rules

Open Learnomy Commerce > Earnings and scroll to the Commission Rules card.

Commission rules

The card shows the active default split and a form for adding override rules.

  1. In the rule-type dropdown, choose Per course.

    Per instructor (Pro) rules require Learnomy Pro. The option is visible in the dropdown but grayed out on Free.

  2. Select the course from the Choose a course dropdown.

  3. Enter the instructor's percentage in the rate field.

  4. Click Add rule. The new rule appears immediately in the table below.

To change an existing rule, update the percentage directly in the table's rate field and click Save next to that row. To remove a rule, click the delete action next to it (the default split then applies again for that course or instructor).

Pro feature. Available in Learnomy Pro.

Per-instructor rules apply to all of an instructor's courses that do not already have a per-course override. To set one, choose Per instructor (Pro) from the rule-type dropdown, pick the instructor, enter the rate, and click Add rule.


Revenue Summary Cards

At the top of the Earnings page, four cards give a quick revenue overview.

Revenue cards

Card What it shows
This Month Total completed-transaction revenue in the current calendar month
Last Month Revenue in the previous calendar month
Lifetime Revenue All-time completed transaction total
Pending Withdrawals Aggregate of all pending withdrawal requests

There is also a Recurring Revenue row above these cards showing active subscriber count, monthly recurring revenue, and trial conversions this month.


Instructor Earnings Widget (Frontend)

On the instructor dashboard at /instructor/, the Earnings widget shows three figures:

  • Available to Withdraw - Cleared commissions not yet paid out.
  • This Month - Earnings recorded in the current calendar month.
  • Lifetime - Total earnings since the account was created.

Earnings widget summary

Requesting a Withdrawal

  1. On the instructor dashboard, click Request Withdrawal in the Earnings widget.

    Request withdrawal button

  2. Enter the amount you want to withdraw and your preferred payout method, then submit the request.

The request enters the Withdrawal Requests queue in wp-admin as a Pending entry. The instructor receives a notification when the admin processes it.

A site-configurable minimum withdrawal amount applies. The Request Withdrawal button is visible at any balance, but the form enforces the minimum when the request is submitted.


Admin: Withdrawal Requests Queue

Go to Learnomy Commerce > Earnings and scroll to the Withdrawal Requests card.

Withdrawal requests

Use the Pending / Processed / Rejected / All tabs to filter the list.

Approving a withdrawal

  1. Find a pending withdrawal on the Pending tab.

  2. Click Approve. A confirmation prompt appears.

  3. Confirm. The withdrawal status changes to Processed. The instructor's pending commission records are cleared. An email notification is sent to the instructor.

    Approving a withdrawal is a recording step only. The actual funds transfer happens outside Learnomy (bank transfer, PayPal, or another method) unless Stripe Connect is active.

Rejecting a withdrawal

  1. Click Reject on a pending row.

  2. A prompt asks for a rejection reason. Enter the reason (the instructor will see it in their notification).

  3. Click OK to confirm. The withdrawal moves to Rejected status and the instructor's available balance is restored.

Viewing withdrawal details

Click an instructor's name in the table to open the withdrawal detail page, which shows the full amount, method, commission records included, and any status history.


Recent Transactions Table

Below the revenue cards, the Earnings page shows a paginated list of completed transactions.

Recent transactions

Each row shows the student, course, total amount (with a net-base note if a fee or tax was deducted), the platform's share, the instructor's share, and the transaction date. Use the Export CSV button in the page header to download the full transaction history.


Tips

  • Commission splits are calculated and frozen at the time of each transaction. Changing a commission rule later does not retroactively alter older transactions.
  • The per-instructor rule requires Learnomy Pro. Free supports per-course overrides and the global default only.
  • A refund reverses the commission records for that transaction (marked reversed, not deleted), so your earnings totals stay accurate.

Related

Managing Instructors

The Instructors list in wp-admin gives you a searchable, sortable view of every approved instructor on your site. Clicking an instructor opens a detail page with their full profile, the courses they teach, their earnings summary, and the application they originally submitted.

Overview

The Instructors list is at Learnomy > Instructors (?page=learnomy-instructors). Only users who have been granted the lrn_instructor role appear here. Pending applicants are in Learnomy > Applications, not in this list.


The Instructors List

Instructors list

Header and search

The page header shows the Instructors title and the total count of instructors on your site.

Instructors list header

Use the search field to find an instructor by name or email. Type your search term and click Search. Click Clear to remove the filter.

Table columns

Instructors table

Column What it shows
Instructor Avatar, display name (links to the detail page), email, and headline
Courses Number of courses they author or co-teach
Lifetime earned Total instructor commission paid to date
Pending payout Current balance awaiting a withdrawal request
Joined The date their WordPress account was created

The Instructor and Joined columns are sortable. Click the column heading to sort ascending; click again to reverse.

Each row

Instructor row

Click an instructor's name to open their detail page. The email address is a mailto link.

The list paginates at 20 rows per page. Navigation controls appear at the bottom.


Instructor Detail Page

Click any instructor's name from the list to open their full detail page.

Instructor detail overview

Page header actions

The header area contains several quick-access buttons:

  • All instructors - Returns to the Instructors list.
  • View public profile - Opens the instructor's public profile page in a new tab.
  • Email instructor - Opens your email client with the instructor's address pre-filled.
  • Verify / Unverify - Grants or removes the verified badge on the instructor's public profile.

If the instructor has a pending application, Approve and Reject buttons also appear here so you can act directly from the detail page.

Profile card

Profile card

The profile card shows the instructor's email, join date, and any profile data they have filled in: headline, expertise, bio, location, website, Twitter handle, LinkedIn URL, and verification status.

Earnings card

Earnings card

The earnings card shows:

  • Lifetime earned - Total instructor share received to date.
  • Pending payout - The current cleared balance waiting for a withdrawal.
  • Commission rate - The effective rate for this instructor (instructor % / platform %). If an override rule applies, a Custom badge appears; otherwise it says (default).

On Free, per-instructor custom rates are not available. The note in the card explains how to set one if Pro is active. On Pro, an Adjust commission rate link goes directly to the Commission Rules section on the Earnings page.

Signup application

If the instructor submitted an application before being approved, a Signup application card appears below the profile and earnings cards.

It displays the original application data: status, submission date, expertise, teaching experience, bio, and course idea. A preferred payout method is shown if one was recorded on the application. If the application was rejected at some point, the rejection reason is also shown.

Courses table

Courses table

The courses card lists every course the instructor is involved with. Each row shows the course title, their role (Main author or Co-instructor), the course's published status, and its student count.

Recent withdrawals table

The withdrawals card shows the instructor's most recent withdrawal requests, each with the date requested, amount, payout method, and status.


Tips

  • The verification badge is a trust signal on the instructor's public profile. It does not affect their wp-admin access or commission rate.
  • When an instructor is approved via the Applications queue, they appear in the Instructors list immediately.
  • An instructor can be a main author on some courses and a co-instructor on others. Both show up in the courses table.

Related

Pro feature. Available in Learnomy Pro.

Stripe Connect Payouts (Pro)

Stripe Connect lets Learnomy Pro automatically transfer instructor commissions directly to each instructor's own Stripe account. Instead of manually approving withdrawal requests and sending money through a third-party tool, payouts are triggered from wp-admin (or on a schedule) and land in the instructor's bank account via Stripe.

Overview

The Stripe Payouts page lives at Learnomy Commerce > Stripe Payouts (?page=learnomy-stripe-payouts). It has three sections: Connect Settings (API keys and payout policy), a summary stats row, a paginated payouts table, and an Outstanding Refund Debts panel.


Step 1: Configure Stripe Connect Settings

Before any instructor can connect or receive a payout, you need to configure the platform's Stripe credentials.

  1. Open Learnomy Commerce > Stripe Payouts.

    Stripe Payouts page

  2. Find the Connect Settings card at the top of the page.

  3. Check Enable Stripe Connect payouts.

  4. Enter your Secret key (starts with sk_live_ or sk_test_).

  5. Enter your Publishable key (starts with pk_live_ or pk_test_).

  6. Enter your Connect client ID (starts with ca_). This is found in your Stripe Dashboard under Settings > Connect.

  7. Set the Payout schedule: Monthly, Every two weeks, or Weekly. This controls how often automatic payouts run.

  8. Set the Minimum payout amount. Instructors with a balance below this threshold are held until the next cycle.

  9. Check Run payouts automatically on the schedule if you want payouts to fire without a manual trigger.

  10. Click Save settings. A status confirmation appears next to the button.

When you leave an API key field blank and save, the previously stored key is preserved. Submitting the form does not wipe keys you did not re-enter.


Step 2: Instructor Onboarding (Connect Account)

Each instructor must connect their own Stripe account before they can receive automated payouts. The onboarding link redirects the instructor through Stripe's OAuth flow.

At the end of the flow, Stripe returns an authorization code. Learnomy exchanges the code for the instructor's Stripe account ID and stores it encrypted (libsodium + AUTH_KEY). The instructor is now connected.

Before any transfer is attempted, Learnomy checks the instructor's Stripe account status to confirm charges_enabled and payouts_enabled are both true. If Stripe requires additional KYC information, the payout is held and an error is recorded rather than producing a silent failure.


Summary Cards

Below the Connect Settings card, four summary cards give a live overview of payout activity.

Summary cards

Card What it shows
Pending Total amount of pending payouts waiting to be transferred
Total Paid Cumulative amount successfully transferred to instructors
Failed Count of payouts that failed or were reversed
Connected Instructors Number of instructors who have completed Stripe onboarding

Processing Payouts

Manual trigger

Click Process Payouts in the toolbar above the payouts table. The button shows a loading state while the transfers run. A live status region announces the outcome to screen readers.

Processing finds all instructors with unpaid commissions above the minimum payout threshold, creates a Stripe Transfer to each connected account, and records the result.

Automatic schedule

When Run payouts automatically on the schedule is enabled, Learnomy runs the same process automatically according to the configured cadence (monthly, every two weeks, or weekly). The automatic run skips the cadence check if a manual run was triggered during the same period.


The Payouts Table

Payouts table

Each row in the payouts table shows:

Column What it shows
ID Internal payout row identifier
Instructor The instructor who received (or is owed) the payout
Amount The transferred amount
Period The billing period (YYYY-MM) this payout covers
Status Current payout status (see below)
Stripe Transfer The Stripe transfer ID, linked directly to the Stripe Dashboard
Date When the payout row was created

Payout statuses

Status Meaning
pending Transfer not yet attempted
paid Transfer successfully created in Stripe
failed Transfer attempt failed; see the inline error row below the payout
reversed A paid transfer was later reversed (typically due to a refund)

Filtering the list

Use the All / Pending / Paid / Failed / Reversed filter buttons to narrow the table.

Retrying a failed payout

When a payout fails, an error row appears directly below the failed row in the table, showing the Stripe error message.

Click Retry in the error row to re-attempt the transfer. Learnomy uses an idempotency key derived from the instructor and the exact commission set, so a retry cannot produce a duplicate transfer in Stripe. On success, the failed row is removed and a new paid row is recorded.

After a successful retry, the page reloads with a success notice. If the retry fails again, the error notice updates with the new error.


Outstanding Refund Debts

Refund debts section

When a customer is refunded and the original Stripe transfer to the instructor cannot be fully reversed (for example, because the instructor has already withdrawn the funds), Learnomy records the shortfall as an Outstanding Refund Debt in this panel.

Each debt row shows:

  • The instructor who owes the amount
  • The amount owed
  • The refunded transaction it came from
  • The original payout it is associated with
  • The reason for the debt
  • The date it was recorded

Learnomy automatically deducts outstanding debts from the instructor's next payout cycle (oldest debt first). A fully recovered debt disappears from this panel. A partial recovery reduces the row amount; the remainder carries over to the next cycle.

If the instructor's gross payout after debt deduction falls below the minimum payout threshold, the entire cycle is held until the next period.

When there are no outstanding debts, the panel shows an empty state.


Tips

  • Keep Stripe in test mode (sk_test_ / pk_test_) during setup. Test-mode keys let you run the full flow without real money moving.
  • The minimum payout amount prevents micro-transfers that Stripe would charge fees on. Set it to at least $25.
  • Stripe accounts that have not completed identity verification (charges_enabled = false or payouts_enabled = false) are silently skipped during a payout run. The KYC check result is cached for one hour per instructor to avoid repeated API calls.
  • The Stripe transfer ID in each paid row links directly to the corresponding transfer in your Stripe Dashboard, making reconciliation straightforward.

Related

Commerce

The Commerce category covers everything related to money in Learnomy: how to accept payments, create membership plans, manage subscriber accounts, run discount promotions, and read the transaction ledger.

Commerce Overview

The Learnomy Commerce menu is where you manage every money-related part of your academy: membership plans, subscriber accounts, discount coupons, and the full transaction ledger. This page describes the Commerce home screen and what lives in each sub-page.

Overview

Go to Learnomy Commerce in the WordPress admin sidebar. The menu only appears when at least one commerce module is enabled on Learnomy Settings > Modules (Memberships, Subscriptions, or Coupons). If no module is on, the screen shows an empty state with a direct link to the Modules page.

Sub-pages available under Commerce:

Sub-page What it does
Overview This landing screen with revenue KPIs and navigation cards
Memberships Create and manage membership plans
Subscriptions View and manage member subscription accounts
Coupons Create and manage discount codes
Earnings Revenue, instructor commissions, and payout requests
Transactions Complete ledger of every charge, refund, and renewal

Pro feature. Membership Analytics and Stripe Payouts are available in Learnomy Pro.

The Commerce Overview screen

The overview screen gives you a quick read on money flow before drilling into a sub-page.

Commerce Overview

KPI summary cards

Four stat cards sit at the top of the page.

Summary cards

  • Monthly Recurring Revenue (MRR) - the billed amount from all active subscriptions in the current month.
  • Active subscribers - the count of subscriptions with status active or trialing.
  • Lifetime revenue - the total of all completed transactions since the site started.
  • Total transactions - the count of all recorded transaction rows (purchases, renewals, and refunds).

Navigation cards

Below the KPIs, each enabled Commerce sub-page appears as a clickable card with a one-line description.

Commerce hub cards

Click any card to go directly to that sub-page. The card for a sub-page only appears when the corresponding module is enabled.

No modules enabled

If you land on Commerce before enabling any module, the page shows an empty state with a button to open Modules.

Commerce empty state header

Go to Learnomy Settings > Modules, toggle on Memberships or Coupons, and save. The Commerce menu and its cards will populate.

Tips

  • The Commerce menu is conditional: it disappears entirely if all commerce modules are deactivated. Re-enabling any one module brings it back.
  • Pro extensions (Membership Analytics, Stripe Payouts) add their own cards to the hub automatically.
  • Third-party plugins can add cards and descriptions via the learnomy_commerce_card_descriptions filter.

Related

Membership Plans

Membership plans let students subscribe for recurring or one-time access to a bundle of courses. You set the price, billing interval, trial period, and which courses subscribers can access. Students see and compare plans on the public membership pricing page.

Overview

Go to Learnomy Commerce > Memberships. From here you create new plans, see how many subscribers and courses each plan has, toggle a plan active or inactive, and export the full list to CSV.

The plans list

Membership plans list

The list shows every plan with columns for Title, Price, Trial, Courses (count), Subscribers (count), Status, and Actions.

Plans table

Status tabs at the top filter by All, Active, or Inactive. Use the search field on the right to find a plan by name.

Row actions offer three options:

  • Edit - opens the plan editor.
  • Subscribers - jumps to the Subscriptions list pre-filtered to this plan.
  • Delete - permanently deletes the plan. Existing subscriptions referencing the plan show "Deleted plan" in their records.

You can select multiple rows with the checkboxes and use Bulk Actions to Activate, Deactivate, or Delete a set of plans at once.

Starting from a template

If you have no plans yet, the page shows a template picker instead of the empty table.

Memberships header

Four templates are available:

Template Price Trial Courses
Monthly Basic $9/month 14 days Up to 5
Yearly Premium $79/year None Unlimited
Free Trial $29/month after trial 14 days Unlimited
Custom Blank None None

Selecting a template pre-fills the editor. Every field is editable before saving.

Creating or editing a plan

Click Add New (or Edit on an existing plan) to open the plan editor.

Plan edit screen

The editor has a two-column layout: a main column of accordion sections on the left, and a Publish sidebar on the right.

Essentials accordion

Essentials section

  • Plan Title (required) - the name students see on the pricing page and in their account.
  • Description - shown below the title on the pricing page card. Plain text.
  • Price - the recurring amount in the store currency.
  • Billing interval - Daily, Weekly, Monthly, or Yearly.
  • Trial days - the number of free days before billing starts. Set to 0 to disable the trial.
  • Pricing mode - Single price (one billing rate) or Monthly + Yearly (show both on the pricing page with a toggle).
    • If you choose Monthly + Yearly, two additional fields appear: Price monthly and Price yearly. Students pick the option at checkout.
  • Courses included - a searchable checklist of all your courses. Subscribers are auto-enrolled in every checked course. Leave all unchecked to give access without any course pre-enrolment.

Included courses picker

Features & Branding accordion

  • Thumbnail - an image shown on the pricing page card. Enter a URL or click Choose image to pick from the media library.
  • Features - bullet points shown on the pricing page card. One line per feature. Use the trash icon to remove a row and Add feature to add another.
  • Highlight on pricing page - marks this plan as the featured/recommended option (displayed with a visual emphasis on the pricing page).

Advanced accordion

  • Slug - the URL-friendly identifier. Auto-generated from the title; edit it to control the URL.
  • Currency - the currency code for this plan (USD, EUR, GBP, INR, AUD, CAD, JPY, BRL, or any code on your site).
  • Interval count - allows billing every N intervals, e.g. every 2 months. Defaults to 1.
  • Course limit - the maximum number of courses a subscriber can access at one time. Leave blank for unlimited.
  • Status - Active or Inactive. Inactive plans are hidden from the pricing page and cannot be purchased.

Payment Provider Mapping accordion

Payment provider mapping

This section links the plan to its corresponding Stripe price or PayPal billing plan. Learnomy reads these IDs when creating a subscription checkout session with the correct recurring product on each gateway.

  • Stripe Test Price ID - the price_test_xxx ID from your Stripe test-mode product. Find it in Stripe Dashboard under Products, then the product, then Pricing, API ID.
  • Stripe Live Price ID - the price_xxx ID from your Stripe live-mode product.
  • PayPal Sandbox Plan ID - the P-XXXXXXXX billing plan ID from your PayPal sandbox app. Find it in PayPal Developer Dashboard under Subscriptions > Plans.
  • PayPal Live Plan ID - the P-XXXXXXXX billing plan ID from your PayPal live app.

Leave a field blank to disable that gateway or mode combination for this plan. For example, if you only use Stripe, leave the PayPal fields empty.

When WooCommerce is your gateway, no mapping is needed here. WooCommerce uses a single reusable checkout product and reads the price dynamically at checkout.

Saving a plan

Click Create Plan (or Update Plan when editing) in the Publish sidebar to save. The Save as Draft button saves the plan with status Inactive so it does not appear on the pricing page yet.

A success notice appears at the top of the page when the save completes.

The public membership pricing page

Students browse plans at /membership/. The page shows each active plan as a card with title, price, trial period, features bullet list, and a subscribe button.

Membership pricing page

Plans with Highlight on pricing page enabled are visually emphasized. Plans with Monthly + Yearly pricing show a toggle so students can switch between the two rates.

Annual plan card

Free plan card

Pro plan card

FAQ section

The FAQ section and a gift membership call-to-action appear below the plan cards when configured in Learnomy Settings > Payments > Membership page content.

Gift CTA

Billing and retries settings (Pro)

Pro feature. Requires Learnomy Pro with the Membership Pro extension active.

Go to Learnomy Settings and click Membership Page in the sidebar, then scroll to the Billing and retries card. These settings control what happens when subscription payments fail and how plan changes and refunds are handled site-wide.

Setting What it does
Payment retries How long Learnomy keeps retrying a failed subscription charge before giving up and cancelling. Options: Conservative (14 / 28 / 56 days), Standard (7 / 14 / 28 days), Aggressive (3 / 7 / 14 days), or Off (cancel immediately on the first failure).
Plan changes When on, switching plans mid-cycle credits the unused time from the old plan against the new charge. When off, the full price of the new plan is charged immediately.
Refunds When on, refunding a payment also cancels the subscription immediately. When off, the refund is recorded but the member keeps access until the end of the current billing period.

These settings apply to all membership plans on the site. You cannot override them per plan.

Tips

  • Inactive plans are hidden from /membership/ but their existing subscribers are unaffected.
  • Deleting a plan cancels no subscriptions automatically. Existing subscription rows show "Deleted plan" in their detail view.
  • The plan's slug controls the URL anchor on the pricing page. Changing the slug after subscribers have shared links will break those links.
  • Trial days only apply to new subscriptions. Existing subscribers are not affected when you add or change the trial setting.
  • The Courses included picker lists all courses (up to 500). For larger catalogs, use the search field to filter.
  • The Conservative retry cadence is recommended for sites with international subscribers where payment failures are often caused by temporary bank holds rather than genuine non-payment.

Related

Subscriptions

The Subscriptions screen shows every member subscription across all plans. You can filter by status or plan, cancel or extend a subscription on behalf of a member, and export the list as CSV.

Overview

Go to Learnomy Commerce > Subscriptions. Each row represents one member's subscription to one plan, with its current billing status, period dates, payment provider, and available admin actions.

The subscriptions list

Subscriptions list

Subscriptions table

Columns

  • User - avatar, display name (links to the subscription detail), and email address.
  • Plan - the membership plan name. Shows "Deleted plan" if the plan has been removed.
  • Status - the current subscription state (see below).
  • Period - the start and end dates of the current billing cycle.
  • Provider - which payment gateway processed the subscription (Stripe, PayPal, or WooCommerce).
  • Actions - available admin actions for this row.

Status values

Status label Meaning
In trial Free trial period is active; billing starts after the trial ends
Active Subscription is paid and current
Payment failed The most recent renewal charge failed; access continues briefly while the gateway retries
Ending soon The subscriber has cancelled but access runs until the period end
Cancelled Subscription was cancelled; access is revoked
Ended The subscription expired at the end of a fixed period

Filtering

Use the Status and Plan dropdowns to narrow the list. Click Filter to apply.

Subscriptions header

The Export as CSV button downloads all subscriptions matching the current filter. The file streams directly as a CSV (not a JSON-encoded cell).

Row actions

For Active, In trial, and Payment failed subscriptions:

  • Extend - opens a date picker to move the period end forward. Use this to grant a goodwill extension without changing the renewal schedule.
  • Cancel - cancels the subscription immediately. Access is revoked.

Cancelled and Ended subscriptions show no actions.

Subscription detail

Click a subscriber's name in the list to open the full subscription detail page.

Subscription overview card

Shows status badge, plan name, amount per billing interval, current period dates, trial end date (if applicable), and whether the subscription is set to cancel at period end.

Subscriber and provider card

Shows the subscriber's name and email (linked to their student profile), the payment provider name, and the gateway's own subscription ID and price ID (for cross-referencing in Stripe or PayPal dashboards).

Extend period - a datetime input on this card lets you type a new period end time and click Extend period to apply it directly.

Admin actions (header buttons)

  • Resume - available when the subscription is past-due or has cancel-at-period-end set. Resumes billing and clears the cancel flag.
  • Cancel at period end - marks the subscription to not renew. The member keeps access until the current period ends.
  • Cancel now - immediately revokes access.

Payments history

A table of every renewal and initial payment linked to this subscription, showing date, transaction type, amount, and status.

How customers manage their own subscription

Members manage their subscriptions from Account > Manage membership at /membership/manage/.

Membership manage page

The page shows each active plan with:

  • Plan name and status badge (Active, In trial, Payment failed, Ending soon)
  • Current period start and end dates
  • Next renewal date and next payment amount
  • Which gateway they pay through ("Billed via")

Status banners appear for trial reminders, payment failures, and pending cancellations.

Member subscription actions

Member actions available on the page:

  • Cancel subscription - sets cancel-at-period-end. The member keeps access until the period ends.
  • Update payment method - opens the payment provider's hosted portal to update card details (Stripe and PayPal only).
  • Resume subscription - shown when the subscription is set to cancel at period end; removes the cancel flag.

Pro feature. Plan switching (upgrading or downgrading between plans with prorated credit) is available in Learnomy Pro's Membership Pro extension.

The included courses for each plan are listed below the plan details so members can see what they have access to.

A payment history table (invoices) appears at the bottom of each plan section.

Tips

  • Cancelling from the admin side ("Cancel now") revokes access immediately, regardless of how much billing period remains. Use "Cancel at period end" for a graceful end.
  • Extending a period does not affect the renewal schedule. It only moves the current_period_end date forward. The next scheduled renewal date on the gateway side is unchanged.
  • A subscription in "Payment failed" status keeps course access while the gateway retries (typically for several days). If retries fail, the gateway transitions the subscription to cancelled, which Learnomy receives via webhook and updates the status here.
  • The CSV export respects the active status and plan filter so you can export just past-due subscribers for a targeted follow-up.

Related

Coupons

Coupons are discount codes that students enter at checkout to reduce the price of a course purchase or membership subscription. You control the discount type, value, usage limits, minimum purchase, and active date window.

Overview

Go to Learnomy Commerce > Coupons. The page has two parts: a create/edit form at the top and the coupons list below.

Creating a coupon

Coupons page with create form

Create form detail

Fill in the fields and click Create Coupon.

Form fields

Field Description
Code The code students type at checkout. Example: SUMMER25. Must be unique.
Discount Type Percentage (%) deducts a percentage of the item price. Fixed Amount deducts a flat currency amount.
Value The discount amount: a percentage (e.g. 25) or a fixed amount (e.g. 10.00). Required.
Applies To Courses (course purchases only), Membership Plans (subscription purchases only), or Both.
Status Active means the coupon can be used now. Inactive disables the code without deleting it.
Usage Limit Maximum total redemptions. Leave blank for unlimited.
Per-User Limit Maximum redemptions per individual user. Leave blank for unlimited.
Min Purchase The minimum order amount (before discount) required to use the code. Leave blank for no minimum.
Start Date The date the coupon becomes usable. Defaults to today.
Expiry Date The date the coupon stops working. Leave blank for no expiry.

Editing a coupon

Click the Edit row action on any coupon in the list. The create form above the table updates to show the coupon's current values and switches to edit mode. Change the fields you want and click Update Coupon. Click Cancel to discard edits and return the form to create mode.

The coupons list

Coupons table

Columns: Code (links to detail page), Type, Value, Applies To, Usage (used / limit), Status, Created, Actions.

Status tabs filter by All, Active, or Inactive.

Coupons header

Status values in the table:

  • Active - the coupon is usable (within its date window and usage limits).
  • Inactive - manually disabled.
  • Expired - the expiry date has passed; the coupon can no longer be used even if its status is Active.

Row actions:

  • Edit - populates the form at the top of the page.
  • Delete - permanently removes the coupon.

Coupon detail

Click a coupon code in the list to open its detail page.

Coupon detail

Coupon metadata card

Coupon meta card

Shows all the coupon settings at a glance: code, discount, applies-to scope, status, usage count vs limit, per-user limit, minimum purchase, and the active date window (start to expiry).

Redemptions

Redemptions table

Every time a student uses the coupon, a row appears here with the customer name (linked to their student profile) and the transaction ID (linked to the transaction detail). The section heading shows the total redemption count.

If the coupon has not been used yet, the table shows "This coupon has not been redeemed yet."

Coupon detail header

Tips

  • Coupon codes are case-insensitive at checkout. SUMMER25 and summer25 are treated the same.
  • A coupon with an expired date shows as Expired in the status column even when its status field is Active. The code cannot be used once the expiry date has passed.
  • Setting both a Usage Limit and a Per-User Limit means both caps apply. A coupon with limit 100 / per user 1 allows 100 unique customers, each using it once.
  • Deleting a coupon does not remove existing transaction records. Those transactions retain the coupon reference in their detail view.
  • The minimum purchase is evaluated against the pre-discount price, not the final price.

Related

Transactions

The Transactions screen is the complete financial ledger for your academy. Every course purchase, membership payment, subscription renewal, and refund appears here in one place. You can filter, search, issue refunds, and drill into the full detail of any individual transaction.

Overview

Go to Learnomy Commerce > Transactions. The list shows every transaction row with totals in the page subtitle.

The transactions list

Transactions list

Transactions table

Columns

  • ID - the internal transaction number (links to the detail page).
  • Customer - display name and email.
  • Item - the course title or membership plan name, plus the gateway's own transaction reference (provider transaction ID) in small text below.
  • Amount - the charged amount with currency code.
  • Type - the transaction category (Course, Membership, Membership renewal, Refund, etc.).
  • Provider - which gateway processed the charge (Stripe, PayPal, WooCommerce, Test).
  • Status - the current state of the row.
  • Date - date and time of the transaction.
  • Actions - Refund button for eligible rows.

Transaction statuses

Status Meaning
Completed Payment was collected and fulfilment ran (enrolment, subscription, etc.)
Refunded A refund was issued; the matching refund row links back here
Pending Payment initiated but not yet confirmed
Failed The charge attempt failed; no fulfilment occurred

Refund rows (transaction type "Refund") appear in the list and show "Refund of #N" in the Actions column, linking back to the original transaction.

Filtering and searching

Transactions header

Use the Status dropdown to filter by Completed, Refunded, Pending, or Failed. Use the Provider dropdown to isolate transactions from a specific gateway (Stripe, PayPal, WooCommerce, Test, or Demo). Enter a name, email, order ID, or provider transaction reference in the search box and click Filter. Click Reset to clear all filters.

Issuing a refund

A Refund button appears in the Actions column for transactions that meet all of these conditions:

  • Transaction type is not itself a refund.
  • Status is Completed.
  • No refund has been issued for this transaction yet.
  • The gateway is Stripe, PayPal, or Test (WooCommerce refunds are issued from the WooCommerce order).

Click Refund to open a confirmation dialog showing the customer name, item, and amount. Confirm to proceed.

What happens on refund:

  1. The gateway adapter calls the provider's refund API.
  2. A new transaction row is written with type "Refund" and the original transaction's ID stored in refund_of.
  3. The original row's status updates to "Refunded".
  4. The commission split for that transaction is reversed: instructor commission rows are marked reversed (not deleted), and the platform commission row is also reversed. The net effect is that neither party keeps earnings from a refunded sale.
  5. The student's course enrolment or membership access is revoked.

Transaction detail

Click any transaction ID in the list to open the full detail page.

Transaction card

Shows amount, type (e.g. "Membership renewal"), status badge, provider name, the gateway's own transaction reference (for cross-referencing in Stripe or PayPal), and the date.

If the transaction is itself a refund, a "Refund of #N" row links to the original. If the transaction has been refunded, a "Refunded by #N" row links to the refund.

Customer and items card

Shows the customer (linked to their student profile), the item (course or membership plan linked to its editor), the linked subscription (if a membership payment), and the coupon applied at checkout (if any), with the discount amount.

Commission split

A table shows how the transaction amount was divided. For a course purchase, two rows typically appear: one for the Platform (the site owner's share) and one for the instructor. Each row shows:

  • Recipient name and type
  • Amount
  • Rate applied
  • Payout status (pending, paid, reversed)

When a refund is issued, the commission rows for the original transaction are updated to "reversed". The new refund transaction has no commission rows.

If no commission rules are configured for a transaction, the table shows "No commission records for this transaction."

Gateway metadata

When a transaction carries a metadata_json payload from the gateway (e.g. Stripe session data), a raw JSON block appears at the bottom of the page for debugging. This block is read-only.

Tips

  • WooCommerce transactions show with provider "Woocommerce". To refund them, go to the WooCommerce order (the gateway reference in the Item column is the WC order ID) and use WooCommerce's own refund flow. The Learnomy adapter listens to the woocommerce_order_refunded hook and records the refund row automatically.
  • Pending transactions are created when a student reaches the checkout but the payment has not yet been confirmed. They clear to Completed when the gateway webhook fires, or to Failed if the webhook reports failure. A backlog of Pending rows usually means the gateway webhook is not configured correctly.
  • The search field matches against customer name, email, the internal order ID, and the provider's own transaction reference. You can paste a Stripe pi_... or ch_... ID directly into search to find the matching row.
  • Commission reversal only happens on full refunds processed through the Refund button. Partial refunds (issued directly in the gateway dashboard) do not currently trigger commission reversal.

Related

Payment Gateways

Learnomy supports three real-money payment gateways: Stripe, PayPal, and WooCommerce. Each one handles the money collection independently; Learnomy handles enrolment, subscription creation, and commission calculation the same way regardless of which gateway the customer used.

You can also enable a Test Gateway for development and QA work.

Overview

Go to Learnomy Settings > Payments to configure gateways. Each gateway has its own settings card. Enable as many as you want; the checkout page will show all enabled gateways to the student.

The Payments tab also contains Checkout settings (business name, refund policy, guarantee days).

Stripe

Stripe processes credit and debit card payments for one-time purchases and recurring membership subscriptions.

Enable Stripe

Check Enable Stripe to activate the gateway. Uncheck to disable Stripe entirely even if API keys are saved.

Mode

Choose Test or Live. The mode toggle switches which set of credentials the gateway reads. Test mode uses Stripe test API keys and does not charge real cards. Live mode charges real cards.

A badge at the top of the Stripe card shows the current mode (TEST MODE or LIVE MODE).

Webhook URL

Copy the webhook URL shown in the settings card and add it to your Stripe account.

  1. In Stripe Dashboard, go to Developers > Webhooks > Add endpoint.
  2. Paste the Learnomy webhook URL.
  3. Subscribe to these events: checkout.session.completed, invoice.payment_succeeded, invoice.payment_failed, customer.subscription.deleted, customer.subscription.updated.
  4. Copy the Signing secret from the created endpoint and paste it into the Webhook Signing Secret field in Learnomy.

Test credentials

  • Test Publishable Key - starts with pk_test_. Enter it in plain text; it is not a secret.
  • Test Secret Key - starts with sk_test_. Stored encrypted. Leave blank to keep the saved value; the field shows bullet characters when a key is already saved.
  • Test Webhook Signing Secret - starts with whsec_. Stored encrypted.

Live credentials

The same three fields for the live environment (pk_live_..., sk_live_..., whsec_...).

Testing the connection

Click Test Stripe Connection after saving credentials. The button sends a test API call and returns a pass or fail message without creating any charge.

Membership plan setup

For each membership plan that bills through Stripe, you need to create a recurring Price in Stripe Dashboard and copy its Price ID into the plan editor.

  1. In Stripe Dashboard, go to Products > Add product and create a product.
  2. Under Pricing, add a recurring price with the same interval as your plan.
  3. Copy the API ID (starts with price_ for live, price_test_ for test).
  4. In Learnomy, go to Commerce > Memberships, edit the plan, open the Payment Provider Mapping accordion, and paste the Price ID into the correct field (Stripe Test Price ID or Stripe Live Price ID).

For one-time course purchases, no Stripe product setup is required. Learnomy creates a checkout session at the time of purchase with the exact course price.


PayPal

PayPal handles one-time course purchases and recurring membership subscriptions via its REST API.

Enable PayPal

Check Enable PayPal to activate the gateway. Requires both a Client ID and Secret to be configured.

Mode

Choose Sandbox or Live. Sandbox uses PayPal Developer test accounts. Live charges real PayPal balances.

Webhook URL

Copy the webhook URL and register it in the PayPal Developer Dashboard.

  1. Go to PayPal Developer > My Apps > your app > Webhooks > Add webhook.
  2. Paste the Learnomy webhook URL.
  3. Subscribe to the events you need: CHECKOUT.ORDER.APPROVED, PAYMENT.SALE.COMPLETED, BILLING.SUBSCRIPTION.ACTIVATED, BILLING.SUBSCRIPTION.CANCELLED, BILLING.SUBSCRIPTION.UPDATED.
  4. Copy the Webhook ID from the created webhook entry (a string like 1AB23456CD789012E) and paste it into the Webhook ID field in Learnomy.

Sandbox credentials

  • Sandbox Client ID - from PayPal Developer Dashboard under your app credentials.
  • Sandbox Secret - stored encrypted. Leave blank to keep the saved value.
  • Sandbox Webhook ID - the webhook ID from the PayPal sandbox webhook you created.

Live credentials

The same three fields for the live environment.

Testing the connection

Click Test PayPal Connection after saving credentials. Returns a pass or fail without creating a charge.

Membership plan setup

PayPal subscriptions require a Billing Plan created in your PayPal account.

  1. In PayPal Developer, go to Subscriptions > Plans > Create plan.
  2. Set the billing cycle to match your Learnomy plan interval and price.
  3. Activate the plan and copy its Plan ID (starts with P-).
  4. In Learnomy, edit the membership plan, open Payment Provider Mapping, and paste the Plan ID into PayPal Sandbox Plan ID or PayPal Live Plan ID.

WooCommerce

WooCommerce can act as the payment gateway for every Learnomy purchase type: single course, membership plan, space, space seat, gift, and learning path.

WooCommerce only collects the money. Learnomy handles enrolment, subscription, and commission the same way it does for Stripe and PayPal.

How it works

When a student checks out with WooCommerce:

  1. Learnomy adds one hidden virtual product ("Learnomy Checkout Item") to the WooCommerce cart and sets the line price to the exact amount (already adjusted for any sale or coupon).
  2. The student is redirected to the standard WooCommerce checkout page.
  3. The student pays using whatever payment method WooCommerce has configured (any WooCommerce payment plugin works).
  4. When the order reaches "processing" or "completed" status, Learnomy's adapter reads the purchase payload from the order, records a transaction, fires the standard enrolment or subscription actions, and calculates instructor commission.

For one-time purchases, Learnomy uses one reusable hidden virtual product across all purchase types. Recurring membership billing (when WooCommerce Subscriptions is active) uses a small set of period-keyed subscription products, one per billing interval (for example, monthly and yearly), with the price still set dynamically at checkout. Learnomy does not create a separate WooCommerce product per course or membership plan.

Prerequisites

  • WooCommerce must be installed and active.
  • The WooCommerce Checkout page must use the classic shortcode ([woocommerce_checkout]), not the block-based checkout. The block checkout does not support third-party payment gateways that operate outside the Store API.
  • The WooCommerce Cart page must also use the classic shortcode ([woocommerce_cart]).
  • If WooCommerce has "Coming soon" store mode enabled, disable it (set WooCommerce > Settings > General > Store notice off or use the woocommerce_coming_soon=no option). Coming-soon mode blocks the cart and checkout.

Enabling WooCommerce

  1. Install and activate WooCommerce.
  2. In Learnomy, go to Learnomy Settings > Payments.
  3. Check Enable WooCommerce and save.

WooCommerce now appears as a gateway option at checkout alongside Stripe and PayPal.

No API keys or per-plan mapping is required. WooCommerce uses its own installed payment methods (card, PayPal, bank transfer, etc.) for the actual charge.

Recurring subscriptions via WooCommerce Subscriptions (Pro feature)

Pro feature. Recurring membership billing through WooCommerce Subscriptions is available in Learnomy Pro.

When the WooCommerce Subscriptions extension is active, recurring membership plans are supported. Learnomy creates a period-keyed subscription product per billing interval (e.g. one for monthly, one for yearly) and sets the recurring price dynamically at checkout. No per-plan subscription products are needed.

Lifecycle events (cancellation, expiry, payment failure, reactivation) from WooCommerce Subscriptions are mapped back to the corresponding Subscription_Service methods in Learnomy, so the subscription status in Commerce > Subscriptions stays in sync.

Commission with WooCommerce

Instructor commission works exactly as with Stripe and PayPal. When the WooCommerce order completes, Learnomy fires learnomy_payment_completed and the commission service calculates the platform and instructor split using the same rules (per-course rate, per-instructor rate, or the default 30% platform / 70% instructor). The commission rows appear on the transaction detail page.


Test Gateway

The Test Gateway completes any checkout instantly without calling an external service. It records a completed transaction and triggers all the same fulfilment actions as a real gateway.

Enable it at Learnomy Settings > Payments > Test Gateway. Turn it off before going live. It is intended for development and QA only.


Checkout and Refund Policy settings

Below the gateway cards, the Checkout settings card contains:

  • Business Name - shown on receipt PDFs and invoice emails. Defaults to the site title.
  • Money-Back Guarantee - the number of guarantee days shown on course pages and at checkout. Set to 0 to hide it.
  • Refund Policy - plain-text refund policy shown at checkout and on receipts.

Tips

  • You can run Stripe in Test mode and PayPal in Live mode at the same time. Each gateway uses its own mode setting.
  • Stripe and PayPal secret keys are stored encrypted in the database using WordPress's AUTH_KEY. They are never sent back to the browser.
  • If a student's checkout redirects to WooCommerce but the cart looks empty, the most common cause is that WooCommerce's "Coming soon" store mode is active.
  • For WooCommerce refunds, go to the WooCommerce order (find the order ID in the transaction's gateway reference) and use WooCommerce's own Refund button. Learnomy detects the refund via webhook and creates the corresponding refund transaction row automatically.
  • The test gateway is detected by Learnomy's onboarding check as "not a real gateway". If you see a warning about no payment gateway being configured, it means only the test gateway is active.

Related

Settings

Configure Learnomy to match your site's needs: commerce, communications, content, and advanced options.

Settings Overview

The Settings page is where you configure every aspect of how Learnomy behaves on your site. It lives under Learnomy Settings in the WordPress admin sidebar.

Overview

Go to Learnomy Settings in the sidebar. The settings page opens with a left-hand navigation panel organized into four groups: General, Commerce, Communication, and Content, plus an Advanced group. Clicking a section label scrolls you to that section without reloading the page.

Settings page with sidebar navigation

The sidebar only shows sections for modules that are enabled on your site. For example, the Payments, Instructors, and Commissions sections disappear if the corresponding modules are turned off on the Modules page.


General

Go to Learnomy Settings and click General in the sidebar.

General section

Course Setup card

Setting What it does
Container Width Sets the maximum width of the Learnomy content area on the frontend. Options are 960 px, 1100 px, 1200 px, 1400 px, or Full Width.
Enrollment Mode Open lets anyone enroll. Approval requires an admin to approve each enrollment request.
Completion Rules Strict means students must meet every rule (watch time, video percentage, scroll, quiz) before marking a lesson complete. Advisory shows the rules but lets students mark complete at any time. Off removes rules entirely. Admins and a course's own instructor always bypass this setting.

Currency and Payments card

Set the default currency for course pricing and all transactions. Changing this only affects how amounts are formatted and stored going forward; it does not convert existing transactions.

Getting Started Guide card

If you previously dismissed the onboarding checklist on the Learnomy dashboard, click Show the guide again to bring it back.

Setup Wizard card

Click Open setup wizard to re-run the onboarding flow with your current settings pre-filled. Use Reset demo data to delete all demo content (tagged lrn_demo_*) and recreate it from scratch. Only demo data is affected.


Pages

Go to Learnomy Settings and click Pages in the sidebar.

Pages section

URL Slugs card

These fields let you localize or rename the URL segments for all Learnomy pages. For example, a German site might use kurse instead of courses. Leave any field blank to keep the default.

Field Default Example URL
Course URL Base courses /courses/
Lesson URL Segment lesson /courses/my-course/lesson/intro/
Course Quiz URL Segment quiz /courses/my-course/quiz/final/
Category URL Segment category /courses/category/design/
Instructor URL Base instructor /instructor/jane/
Certificate Verify URL Base verify /verify/uuid/
Standalone Quiz URL Base quiz /quiz/my-quiz/
Membership URL Base membership /membership/
My Spaces URL my-spaces /my-spaces/ (Pro Spaces required)
Enroll URL Base enroll /enroll/
Account URL Base account /account/

Saving any slug change automatically refreshes your WordPress permalink rules.

Frontend Pages card

A read-only table listing every Learnomy page on your site, its URL, whether login is required, and a View link for static pages.

Theme Override card

To customize any Learnomy template, copy it from the plugin's templates/ folder into your-theme/learnomy/ and edit from there. The path is displayed on screen so you know exactly where to place the file.


Labels

Go to Learnomy Settings and click Labels in the sidebar.

Labels section

Rename core content types across your whole site without writing any code. Each entity has a singular and a plural field. Leave either blank to keep the default. To translate labels into another language, use a .po translation file instead of this panel.


Layouts

Go to Learnomy Settings and click Layouts in the sidebar.

Layouts section

Pick the structural layout for each page type: the course catalog, single course page, lesson player, course quiz, and standalone quiz. Switching a layout never changes the page URL.


Payments

Go to Learnomy Settings and click Payments in the sidebar. This section only appears when the Payments module is active.

Payments section

Stripe card

Enable or disable Stripe, toggle between Test and Live mode, and enter your keys. Secret keys and webhook signing secrets are write-only fields: once saved, they show a "Saved" badge and the field stays blank for security. Paste your Stripe webhook URL into Stripe Dashboard under Developers > Webhooks > Add endpoint. The required events are checkout.session.completed, invoice.payment_succeeded, and customer.subscription.deleted.

Stripe credentials

PayPal card

Same pattern as Stripe: enable, choose Sandbox or Live mode, enter Client ID, Secret, and Webhook ID. The Webhook ID is found in PayPal Developer Dashboard under your app > Webhooks, and is required for signature verification.

PayPal credentials

Checkout card

Setting What it does
Business Name Appears on receipt PDFs and invoice emails. Defaults to your site name.
Money-Back Guarantee Number of days for your refund guarantee. Set to 0 to disable. Shown on course sales pages and at checkout.
Refund Policy Plain text shown at checkout and on receipt PDFs.

Test Gateway card

A development-only adapter that completes every checkout without hitting any external service. Turn this off before going live. When enabled, paid courses show a "Test Gateway" option alongside Stripe and PayPal.


Membership Page

Go to Learnomy Settings and click Membership Page in the sidebar.

Membership Page section

Control the headline, subtitle, and FAQ shown on the public membership pricing page at /membership/. You can also toggle the FAQ section and the gifting widgets on or off. The gifting widgets require Learnomy Pro.


Instructors

Go to Learnomy Settings and click Instructors in the sidebar. This section only appears when the Commissions module is active.

Instructors section

Setting What it does
Self-Publish Courses When enabled, instructors can publish courses without admin approval. When off, courses go to pending review.
Multi-Instructor Allows multiple instructors to be assigned to a single course with a configurable revenue share per instructor.

Commissions

Go to Learnomy Settings and click Commissions in the sidebar. This section only appears when the Commissions module is active.

Commissions section

Commission Rules card

Setting What it does
Platform Commission (%) The percentage the platform keeps from each sale. The instructor receives the remainder. Default is 30.
Payout Period How often commissions are grouped for payout: Monthly, Bi-weekly, or Weekly.

Payment Processing Fee card

When Deduct fee is on, the gateway fee is taken off the sale amount before the commission split, so both platform and instructor share the processing cost. Set the percentage fee (typically 2.9%) and the fixed per-sale amount (typically 0.30). The Tax in base toggle controls whether gateway-collected tax is included in the commission base.

Withdrawals card

Setting What it does
Minimum Withdrawal Instructors must accumulate at least this amount before requesting a payout.
Payout Methods Enable PayPal and/or Bank Transfer as payout options for instructors.

Emails

Go to Learnomy Settings and click Emails in the sidebar. This section only appears when the Notifications module is active.

Emails section

Email Sender card

Set the sender name and email address used for all Learnomy notifications.

Email Notifications card

Turn individual notification types on or off. The following notifications are available:

  • Enrollment Welcome
  • Course Completed
  • Certificate Issued
  • Quiz Graded
  • Instructor Application Approved / Rejected
  • Withdrawal Approved
  • Membership Created / Cancelled / Renewed / Expired
  • Trial Ending Reminder
  • New Course Review
  • New Lesson Comment
  • Reply to a Comment

All notifications default to on. Unchecking a type stops that email from being sent.


Reviews

Go to Learnomy Settings and click Reviews in the sidebar. This section only appears when the Reviews module is active.

Reviews section

Setting What it does
Enable Reviews Allow students to leave course reviews.
Auto-Approve When on, reviews go live immediately without admin moderation. When off, new reviews land in the Reviews queue for manual approval.

Comments

Go to Learnomy Settings and click Comments in the sidebar.

Comments section

Setting What it does
Enable Lesson Comments Allow students to post comments on individual lessons.

Course-level comments are planned for a future release and do not appear here.


Certificate Defaults

Go to Learnomy Settings and click Certificate Defaults in the sidebar. This section only appears when the Certificates module is active.

Certificate Defaults section

Setting What it does
Enable Certificates Issue a certificate automatically when a student completes a course.
Footer Text Text shown at the bottom of every certificate. Typically your organization name or legal text.

Quiz Settings

Go to Learnomy Settings and click Quiz Settings in the sidebar.

Quiz Settings section

Quiz Defaults card

These settings apply to every new quiz unless overridden at the individual quiz level.

Setting What it does
Default Pass Mark (%) Minimum score required to pass. Default is 50.
Max Attempts How many times a student can attempt a quiz. Set to 0 for unlimited.
Randomize Questions Shuffle question order on every attempt.
Show Correct Answers Choose when students see correct answers: after submission, only after passing, or never.

Anti-Cheat card

Setting What it does
Track Tab Switches Record when a student switches browser tabs during a quiz. The count is stored on the attempt record.
Default Time Limit (min) Time limit in minutes. 0 means no limit. When time runs out the quiz is submitted automatically.

API and Performance

Go to Learnomy Settings and click API and Performance in the sidebar.

API and Performance section

Setting What it does
Sensitive endpoint limit (req/min per user) Rate limit for write endpoints flagged as sensitive: login, password reset, instructor application, withdrawal request, coupon validate, quiz start, and comment post. Set to 0 to disable. Maximum 10,000.
Cache TTL (seconds) Object-cache lifetime for read endpoints. Set to 0 to disable caching. Maximum 86,400 (24 hours).

The Tools card provides two buttons: Send Test Email dispatches a test notification to the admin email address, and Flush Rewrite Rules regenerates WordPress permalink rules without requiring a visit to Settings > Permalinks.


Data Management

Go to Learnomy Settings and click Data Management in the sidebar.

Data Management section

Setting What it does
Audit Log Retention (days) Entries in the audit log older than this many days are removed automatically. Minimum is 30 days, default is 365.
On Uninstall When checked, all plugin data is deleted when the plugin is removed. Leave unchecked to preserve student progress, transactions, and other data if you reinstall later.

Bridges

Pro feature. Requires Learnomy Pro. The Bridges section only appears in settings when Learnomy Pro is active.

Go to Learnomy Settings and click Bridges in the sidebar.

The Bridges section connects Learnomy with other Wbcom plugins installed on the same site. Each bridge has its own block of settings. A "Plugin Not Active" badge appears next to any bridge whose companion plugin is not installed or activated.

BuddyNext Integration

Setting What it does
Enable BuddyNext Bridge Connects Learnomy with BuddyNext for social learning features.
Activity Feed Posts activities to the BuddyNext activity feed on enrollment, course completion, certificate issuance, and new review.
Profile Courses Tab Adds a Courses tab to BuddyNext member profiles listing that member's enrolled courses.

Jetonomy Integration

Setting What it does
Enable Jetonomy Bridge Connects Learnomy with Jetonomy for course discussions.
Auto-create Forums Automatically creates a Jetonomy forum when a course is published.
Auto-join Students Automatically adds a student to the course forum when they enroll.

Settings are saved under the learnomy_pro_bridges option. Each bridge's settings are ignored when the respective plugin is not active, even if the toggles are on.


License

Pro feature. Requires Learnomy Pro.

Go to Learnomy Settings and click License in the sidebar.

Enter your Learnomy Pro license key here to activate automatic updates and support. Once saved, the panel shows the license status, the site domain it is registered against, and the expiry date.


Tips

  • Settings are stored as a single WordPress option (learnomy_settings). All sections share one Save Changes button per section. Saving one section does not overwrite other sections.
  • Sidebar sections whose module is disabled still exist in the page HTML so that deep-linked URLs continue to work, but they are hidden from the navigation.
  • The API Keys section is not visible by default. It becomes available in a future release when the REST key management endpoints ship.
  • Pro-only settings sections (Bridges, License) appear in the sidebar only when Learnomy Pro is active.

Related

Emails and Announcements

Learnomy sends automated email notifications for key learning events and lets you broadcast one-off announcements to all students or to the students of a specific course.

Overview

There are two distinct surfaces:

  • Email Settings (at Learnomy Settings > Emails) controls which automated notifications go out and who they come from.
  • Email Log (at Learnomy Settings > Email Log) is a read-only audit trail of every notification that was dispatched.
  • Announcements (at Learnomy > Announcements) lets you compose and send manual broadcasts to students.

Configuring Email Notifications

  1. Go to Learnomy Settings in the sidebar.

  2. Click Emails in the left-hand settings navigation.

    Email Settings section

  3. Under Email Sender, enter the name and email address you want recipients to see. By default these use your site name and admin email.

  4. Under Email Notifications, use the checkboxes to enable or disable each notification type.

    The available notifications are:

    Notification Sent to
    Enrollment Welcome Student (on enrollment)
    Course Completed Student (on completion)
    Certificate Issued Student (on certificate generation)
    Quiz Graded Student (when a manual-graded quiz is finalized)
    Instructor Application Approved Instructor applicant
    Instructor Application Rejected Instructor applicant
    Withdrawal Approved Instructor (on payout approval)
    Membership Created Member (on subscription start)
    Membership Cancelled Member (on cancellation)
    Membership Renewed Member (on renewal)
    Membership Expired Member (on expiry)
    Trial Ending Reminder Member (trial nearly over)
    New Course Review Admin (when a student submits a review)
    New Lesson Comment Admin (when a comment is posted)
    Reply to a Comment The commenter (when a reply arrives)
  5. Click Save Changes.


Viewing the Email Log

The Email Log records every notification Learnomy attempted to send. It is useful for confirming a specific student received an enrollment email or for diagnosing delivery problems.

  1. Go to Learnomy Settings in the sidebar.

  2. Click Email Log under the Settings submenu.

    Email Log overview

  3. The page header shows the log name.

    Email Log header

  4. The table lists every logged notification with five columns:

    Email Log table

    Column What it shows
    Recipient The user's email address (or the user ID if no account is found)
    Type The notification type slug, such as enrollment or quiz_graded
    Subject / Title The notification subject line or title
    Status sent, failed, or skipped
    Sent At Date and time the notification was dispatched

    Rows written before the real delivery status column existed show skipped rather than a status that cannot be verified.

  5. Use the pagination controls at the bottom to move between pages. The log shows 25 entries per page.

The log is read-only. There is no delete or resend action from this screen.


Sending an Announcement

Announcements let you push a message to students as an in-app notification and, optionally, as an email.

  1. Go to Learnomy > Announcements in the admin sidebar.

    Announcements page

  2. The page header confirms you are on the Announcements screen.

    Announcements header

  3. Fill in the Create Announcement form.

    Compose form

    Field What to enter
    Title A short, clear subject line for the announcement
    Message The announcement body
    Course Select a specific course to notify only its enrolled students, or leave it as All students to reach every student on the site
    Email Check Also send email to each recipient if you want the announcement delivered by email as well as as an in-app notification
  4. Click Send Announcement. The form submits and the announcement appears in the Sent Announcements list below.


Reviewing Sent Announcements

The Sent Announcements list below the compose form shows every announcement that has been sent.

Sent announcements list

Each row shows the title, the course it was targeted to (or "All students"), a short excerpt of the message, and the date sent. You can delete a past announcement from the row actions. Deleting removes it from every recipient's notification feed and cannot be undone.

The list is paginated at 20 entries per page.


Tips

  • Turning off a notification type stops future emails of that type but does not affect notifications already sent.
  • The Email Log captures notifications from the moment the status column was added (migration 3.8.0). Older rows show skipped because their actual delivery status was never recorded.
  • An announcement sent to a specific course notifies only students who are currently enrolled in that course. Students who enroll later do not receive it.
  • There is no way to edit a sent announcement. Delete it and create a new one if the content needs to change.

Related

Course Reviews

Course reviews let enrolled students rate and comment on the courses they have taken. Admins can moderate every review before it appears publicly, or enable auto-approval to publish reviews immediately.

Overview

Reviews are managed from Learnomy > Reviews in the admin sidebar. The page shows every review submitted on your site, grouped by status tab. You can approve, reject, mark as spam, or delete reviews individually or in bulk.

Review moderation behavior is controlled by two settings in Learnomy Settings > Reviews.


Turning Reviews On or Off

  1. Go to Learnomy Settings in the admin sidebar.

  2. Click Reviews in the left-hand settings navigation.

    Reviews settings section

  3. Check or uncheck Enable Reviews to turn the review system on or off site-wide.

  4. Check Auto-Approve if you want new reviews to go live immediately without a moderation step.

  5. Click Save Changes.


Moderating Reviews

  1. Go to Learnomy > Reviews in the admin sidebar.

    Reviews list overview

  2. The page header shows the Reviews title and a brief description.

    Reviews list header

  3. Use the status tabs at the top of the table to filter by All, Pending, Approved, Rejected, or Spam. Each tab shows the count of reviews in that status.

  4. The table lists each review with the following columns:

    Reviews table

    Column What it shows
    Review An excerpt of the review text, with row actions below
    Author The student who wrote the review
    Course The course being reviewed, linked to its editor
    Rating The star rating (1 to 5)
    Status The current moderation status pill
    Date When the review was submitted
  5. To take action on a review, use the row actions that appear under the review excerpt:

    Review row actions

    • Approve publishes the review and updates the course's average rating. Only available when the review is not already approved.
    • Reject hides the review from the public course page. Only available when the review is not already rejected.
    • Spam marks the review as spam. Only available when it is not already marked spam.
    • Mark Pending returns the review to the pending queue. Only available when the review is not already pending.
    • Delete permanently removes the review.

Using Bulk Actions

When you have multiple reviews to process:

  1. Check the box at the top of the table to select all visible reviews, or check individual rows.
  2. The bulk action bar slides in at the bottom of the screen showing how many reviews are selected.
  3. Choose an action from the dropdown: Approve, Reject, Mark as spam, Mark as pending, or Delete.
  4. Click Apply.

Searching Reviews

Use the search box at the top right of the reviews table to filter by keyword. The search runs against the review title and body. Click Search to apply it and Clear (or remove the search term and search again) to reset.

You can also toggle the sort order between newest first and oldest first using the sort button next to the search field.


Tips

  • When Auto-Approve is on, new reviews bypass the pending state entirely and go directly to approved. The Pending tab will show zero unless a review is manually moved back to pending.
  • Approved reviews update the avg_rating and review_count columns on the course record immediately. Rejecting or deleting an approved review recalculates both values.
  • Students can submit one review per course. Submitting a new review replaces any previous one.
  • The Anonymized status appears for reviews where GDPR erasure has removed the author's personal data but the review text has been kept.
  • The Reviews list is paginated and supports search, so it stays usable even with thousands of reviews.

Related

Integrations

Connect Learnomy to external services, build on the REST API, and monitor every webhook delivery.

Outgoing Webhooks

Outgoing webhooks let Learnomy POST a signed JSON payload to an external URL every time a chosen event occurs. Use them to connect Learnomy to Zapier, your CRM, a custom backend, or any HTTPS endpoint.

Overview

Webhooks are managed from Learnomy Settings > Webhooks in the admin sidebar. Each webhook has a delivery URL, a set of subscribed events, a secret key for signature verification, and a status. The Free plan supports up to 3 webhooks. Learnomy Pro removes this limit.


Adding a Webhook

  1. Go to Learnomy Settings > Webhooks in the admin sidebar.

    Webhooks page overview

  2. The page header shows how many of your webhook slots are in use.

    Webhooks header with usage counter

  3. Fill in the Add New Webhook form.

    Add webhook form

    • Delivery URL: The HTTPS endpoint that will receive the POST. Must be a valid URL.
    • Events to Send: Check every event type you want this webhook to fire on. Use Select all to check every option at once.
    • Secret Key: A random 32-character key is pre-filled. Copy it now. For security, it is not shown again after you save. You can also click the regenerate button to get a new key, or copy the current value using the copy button.
  4. Click Add Webhook.

The webhook appears in the table below the form immediately.


Available Events

Events come from Learnomy's canonical event catalogue. The checkboxes in the form list every event that can fire an outgoing webhook. Pro's Webhooks Pro extension adds additional lifecycle events via the learnomy_pro_webhooks_event_slugs filter.


Viewing and Editing Webhooks

The webhooks table shows all configured webhooks.

Webhooks table

Column What it shows
URL The delivery endpoint (truncated to 60 characters; hover for the full URL)
Events Badge-style list of subscribed event types
Status Active, Paused, Disabled, or Failed
Last Triggered Date and time of the most recent delivery attempt, or "Never"
Actions Edit, Test, and Delete buttons

Edit: Opens the Add Webhook form pre-filled with the webhook's current URL and events. You can update the URL and events, then save. Note: editing does not change the secret key; the stored encrypted secret is preserved.

Test: Sends a test payload to the endpoint immediately. Use this to confirm your endpoint is reachable and that the signature verification in your receiver is working before waiting for a real event.

Delete: Permanently removes the webhook and stops all future deliveries to that URL. A confirmation prompt appears before the delete completes.


The Free 3-Endpoint Limit

Free installations can configure up to 3 outgoing webhooks. When you have reached the limit, the Add New Webhook form is replaced by a notice pointing to Learnomy Pro.

Pro feature. Available in Learnomy Pro. Learnomy Pro removes the 3-webhook cap so you can configure as many outgoing webhooks as needed. See the Pro Features page in your admin.


Verifying Signatures

Every outgoing payload is signed with HMAC-SHA256 using the secret key you set when creating the webhook. Learnomy adds an X-Learnomy-Signature header to each request. In your receiver, compute HMAC-SHA256(secret, raw_body) and compare it to the header value to confirm the payload came from your site.


Tips

  • A webhook with Failed status has encountered repeated delivery errors. Check your endpoint for downtime or errors, then use the Test button to confirm it is reachable again.
  • The secret key is encrypted at rest. Once saved, there is no way to retrieve it through the admin UI. If you lose it, delete the webhook and create a new one.
  • Learnomy validates delivery URLs against a server-side allowlist to prevent SSRF attacks. Private IP addresses, localhost, and reserved ranges are rejected.
  • Pro's Webhook Delivery Log gives a per-webhook history of every outbound delivery, response code, and retry. See Webhook Delivery Log.

Related

Incoming Webhook Events

The Webhook Events page is a log of every inbound webhook delivery Learnomy received from Stripe or PayPal. It shows whether each delivery was handled successfully, rejected, or produced an error, and lets you replay any event without waiting for the payment provider to resend it.

Overview

Learnomy records every inbound webhook before processing it. This log is the primary debugging tool for payment and subscription issues. Go to Learnomy Settings > Webhook Events in the admin sidebar.


Viewing the Event Log

  1. Go to Learnomy Settings > Webhook Events in the admin sidebar.

    Webhook Events page

  2. The page header confirms you are on the Webhook Events screen.

    Webhook Events header

  3. The table shows the most recent 50 events. Use the pagination controls at the bottom to move between pages.

    Webhook Events table

    Column What it shows
    Provider Stripe or PayPal badge
    Event Type The raw event type slug from the provider (e.g. checkout.session.completed)
    Event ID The provider's unique event identifier, truncated to 24 characters. Hover to see the full ID.
    Processed At Date and time the event was received
    Outcome The result of processing (see below)
    Retries How many replay attempts have been made on this event
    Actions Payload and Replay buttons

Filtering Events

Use the filter bar above the table to narrow the list by provider or outcome.

Webhook Events filter bar

  • Provider: Show only Stripe events, only PayPal events, or all.
  • Outcome: Filter to a specific result: Handled, Duplicate, Rejected, Error, or Pending.

Click Filter to apply the selections. Click Clear to remove active filters and return to the full list.


Outcome Values

Outcome Meaning
Handled The event was processed successfully. Enrollment, subscription, or transaction records were created or updated as expected.
Duplicate The event ID had already been processed. Learnomy uses a unique constraint on (provider, event_id) to guarantee idempotency, so this outcome is normal when a provider resends.
Rejected The signature verification failed, the event type is not handled, or the payload was malformed. No data was changed.
Error Processing started but an exception occurred. The enrollment, transaction, or subscription record may be incomplete. Replay to try again.
Pending The event was logged but processing has not started yet. This is a transient state.

Viewing a Payload

  1. Find the event in the table.

  2. Click Payload in the Actions column.

    Payload modal

  3. A modal opens showing the raw JSON payload from the provider.

    Payload modal detail

    The modal also shows any error message if the outcome was Error. Press Escape or click the close button or the backdrop to dismiss it.


Replaying an Event

Use replay when an event ended in Error and you want to reprocess it without waiting for the provider to resend.

  1. Find the event in the table.
  2. Click Replay in the Actions column.

Learnomy deletes the original row (to bypass the idempotency guard), builds a synthetic request from the stored payload, dispatches it through the same adapter as the original, and returns the new outcome. If the event ends in Handled, the replay row replaces the original in the log. The Retries counter increments with each replay attempt.

If the replay surfaces a signature validation error alongside the new outcome, it means the webhook signing secret has been rotated at the provider since the original delivery. Update the signing secret in Learnomy Settings > Payments and replay again.


Tips

  • Learnomy logs the raw payload before calling any processing logic. Even events with Rejected or Error outcomes have their full payload stored, so you can inspect exactly what the provider sent.
  • The table is paginated at 50 rows per page. On high-volume sites, use the filters to narrow to Error outcomes before browsing.
  • Duplicate outcomes are expected and healthy when a provider's retry schedule fires after you have already processed an event. No action is needed.
  • If you see a large volume of Rejected events, verify that the webhook signing secret in Settings > Payments matches the one shown in your Stripe or PayPal dashboard. A mismatch causes every delivery to fail signature verification.

Related

Webhook Delivery Log

Pro feature. Available in Learnomy Pro.

The Webhook Delivery Log shows the complete outbound delivery history for a single webhook endpoint. Every time Learnomy attempts to POST a payload to your endpoint, the result is recorded here: the HTTP response code, the delivery status, and any retry attempts.

Overview

The delivery log is per-webhook, not a global view. Reach it from the row actions on the main Webhooks list: go to Learnomy Settings > Webhooks, then use the View log action on any row. This action is added by the Webhooks Pro extension.


Viewing Delivery History

  1. Go to Learnomy Settings > Webhooks in the admin sidebar.

  2. On the webhook you want to inspect, click the row actions overflow menu and choose View log.

    The page breadcrumb shows Webhooks / Delivery Log so you always know which webhook you are looking at.

    Delivery Log page

  3. The header shows the page title and the endpoint URL.

    Delivery Log header

  4. The table lists deliveries in reverse chronological order with cursor-based pagination.

    Delivery Log table


Filtering Deliveries

Use the filter buttons above the table to narrow the list by delivery status.

Delivery Log filter bar

Filter Shows
All Every delivery attempt regardless of outcome
Delivered Attempts that received a 2xx response from the endpoint
Failed Attempts that received a non-2xx response or timed out
Pending Attempts that are queued or in progress

Filters update the list immediately without a page reload.


Delivery Statuses

Status Meaning
Delivered The endpoint responded with an HTTP 2xx status code. The payload was accepted.
Failed The endpoint responded with a non-2xx code, the connection timed out, or the request was refused. Learnomy will retry failed deliveries on a back-off schedule.
Pending The delivery is queued and waiting to be sent. This is normal immediately after an event fires.
Retrying A failed delivery is being retried. The retry count shown next to the row indicates how many attempts have been made.

Retrying a Failed Delivery

When a delivery is in Failed status, Learnomy automatically retries it on a back-off schedule. If you need to retry immediately without waiting for the automatic schedule, use the retry button available in the delivery row.

A successful retry updates the delivery record to Delivered and records the new response code.


Navigating Back

Click Back to Webhooks in the page header to return to the main Webhooks list.


Tips

  • The delivery log only records outbound attempts to the endpoint you configured. For inbound Stripe and PayPal webhook deliveries, see the Incoming Webhook Events page.
  • If you see a sustained stream of Failed deliveries, check whether your endpoint is returning a 2xx response. Many endpoints accidentally return a redirect (301/302) or a non-success code even when they have processed the payload. Learnomy treats anything outside 2xx as a failure.
  • Delivery history is stored per webhook endpoint. If you delete a webhook, its delivery history is also deleted.
  • The log uses cursor-based pagination, which keeps performance consistent on endpoints that have thousands of delivery records.

Related

REST API and App

Learnomy ships a full REST API that powers both the mobile/web app and third-party integrations. Everything students and instructors can do through the browser is also accessible through the API.

Overview

The REST API is built on top of the WordPress REST API framework. All Learnomy endpoints are registered under the namespace learnomy/v1, making them available at:

https://yoursite.com/wp-json/learnomy/v1/

The API is what the Learnomy mobile app and web app use to communicate with your site. If you are building an integration, a custom mobile app, or connecting Learnomy to another system, the REST API is the right layer to work with.


What the API Covers

The API provides endpoints for every major data type in Learnomy:

  • Courses, sections, lessons, and topics
  • Quizzes, questions, and quiz attempts
  • Enrollments and student progress
  • Certificates
  • Reviews
  • Memberships and subscriptions
  • Coupons
  • Earnings, commissions, and withdrawals
  • Notifications and announcements
  • Webhooks
  • Admin operations (student management, settings, revenue reports)

Learnomy Pro adds its own endpoints under the learnomy-pro/v1 namespace for Pro-only features such as Cohorts, Learning Paths, Spaces, Assignments, and Membership Analytics.


Authentication

The API uses JWT (JSON Web Token) authentication.

Obtaining a token

Send a POST request to /wp-json/learnomy/v1/auth/login with a valid WordPress username and password. The response returns an access token and a refresh token.

Using a token

Pass the access token in the Authorization header on every authenticated request:

Authorization: Bearer <token>

Tokens expire and can be refreshed using the /auth/refresh endpoint.

Admin API keys

A future release will add long-lived API keys for server-to-server integrations (Zapier, custom backends, and similar). The API Keys section in Learnomy Settings > API and Performance will light up once those endpoints ship. Until then, use JWT tokens obtained through the login endpoint.


Response Shape

Every API response uses a consistent envelope format:

  • List responses: { "data": [...], "meta": { "total": N, "cursor_next": "..." } }
  • Single resource: { "data": { ... } }
  • Errors: { "error": { "code": "...", "message": "...", "details": [...], "request_id": "..." } }

This shape is the same whether you are calling a Free endpoint or a Pro endpoint.


Rate Limiting

Learnomy applies rate limiting to write endpoints flagged as sensitive (login, password reset, quiz start, coupon validation, and others). The default limit is 60 requests per minute per user. You can adjust this in Learnomy Settings > API and Performance.


Where to Find More

This page is a conceptual overview. The full endpoint reference is part of the Developer Guide:

  • Endpoint inventory: see audit/manifest.json in the plugin repository (164 curated endpoints across all Free controllers).
  • Code: REST controllers live in includes/api/ in the Free plugin and includes/extensions/*/rest/ in Learnomy Pro.

Tips

  • The REST API is always available as long as the plugin is active. There is no separate toggle.
  • All endpoints use permission_callback for access control. Anonymous requests to protected endpoints receive a 401 response. There are no unprotected write endpoints.
  • ETag headers on read endpoints allow your HTTP client to use conditional requests and avoid re-downloading unchanged data.
  • The WordPress application passwords feature also works with Learnomy's REST API as an alternative to JWT, since it uses standard WordPress authentication.

Related

Community Bridges

Pro feature. Requires Learnomy Pro. The Bridges settings are in Learnomy Settings > Bridges and only appear when Learnomy Pro is active.

Bridges connect Learnomy to other Wbcom community plugins installed on the same WordPress site. When a bridge is active, Learnomy and the companion plugin share data and events without any custom code on your part.

Two bridges are available: BuddyNext and Jetonomy.

BuddyNext Bridge

BuddyNext is a BuddyPress-based community plugin. When the BuddyNext bridge is enabled, learning activity flows into the BuddyNext social layer.

Prerequisites: BuddyNext must be installed and activated. If it is not active, the Bridges settings panel shows a "Plugin Not Active" badge next to the BuddyNext heading, and the bridge settings are ignored even if the checkboxes are ticked.

Settings

Go to Learnomy Settings > Bridges and find the BuddyNext Integration section.

Setting What it does
Enable BuddyNext Bridge Turns the BuddyNext integration on or off. All BuddyNext-specific behavior below is inactive when this is off.
Activity Feed Posts a BuddyNext activity item when a student enrolls in a course, completes a course, earns a certificate, or submits a course review.
Profile Courses Tab Adds a Courses tab to BuddyNext member profile pages listing that member's enrolled courses.

What activity items look like

When Activity Feed is on, four event types generate an activity entry:

  • Enrollment - "John enrolled in Photography Fundamentals."
  • Completion - "John completed Photography Fundamentals."
  • Certificate - "John earned a certificate in Photography Fundamentals."
  • Review - "John reviewed Photography Fundamentals" (only if Reviews module is active).

Activity items link back to the course page so other members can discover the course.

Jetonomy Bridge

Jetonomy adds forum discussions to your WordPress site. When the Jetonomy bridge is enabled, each Learnomy course can have its own discussion forum and students are joined automatically on enrollment.

Prerequisites: Jetonomy must be installed and activated. If it is not active, the Bridges settings panel shows a "Plugin Not Active" badge and the bridge settings are ignored.

Settings

Go to Learnomy Settings > Bridges and find the Jetonomy Integration section.

Setting What it does
Enable Jetonomy Bridge Turns the Jetonomy integration on or off.
Auto-create Forums Automatically creates a Jetonomy forum linked to a course when the course is published. The forum title matches the course title.
Auto-join Students Automatically joins a student to the course's linked Jetonomy forum when they enroll.

Forum lifecycle

  • When Auto-create Forums is on and you publish a course, Learnomy creates a Jetonomy forum and stores the association. If a forum already exists for that course, a new one is not created.
  • When Auto-join Students is on and a student enrolls, they are added as a forum member immediately. Students who enrolled before the bridge was enabled are not retroactively joined.
  • If you delete a course, the Jetonomy forum is not deleted automatically. You can delete it manually from the Jetonomy admin.

Saving bridge settings

Both bridge sections share one Save Changes button at the bottom of the Bridges settings panel. Clicking it saves both BuddyNext and Jetonomy settings in a single request. The settings are stored under the learnomy_pro_bridges WordPress option.

Tips

  • You can enable one bridge without the other. The checkboxes for each bridge are independent.
  • Turning a bridge off stops new events from being sent but does not retroactively remove activity items or forum memberships that were already created.
  • If a student disenrolls and re-enrolls in a course, Auto-join Students will add them to the forum again if they were removed in the interim.
  • The Profile Courses Tab on BuddyNext shows all courses the member is enrolled in, including courses on other sites in a WordPress Multisite network if Learnomy is network-activated.

Related

Reporting

Track the performance of your learning site: course revenue, enrollments, completions, and subscription health.

Analytics Dashboard

Pro feature. Available in Learnomy Pro.

The Analytics dashboard gives you a site-wide view of revenue, enrollment activity, course completions, and top-performing courses and instructors, for any reporting period you choose.

Overview

The Analytics dashboard is at Learnomy > Analytics in the admin sidebar. It is only visible when the Analytics extension is active in Learnomy Pro.


Choosing a Reporting Period

  1. Go to Learnomy > Analytics in the admin sidebar.

    Analytics dashboard overview

  2. At the top of the page, click one of the four period buttons to change the reporting window.

    Period selector

    Period What it covers
    7 Days The last 7 days
    30 Days The last 30 days (default)
    90 Days The last 3 months
    1 Year The last 12 months

    The page reloads with data for the selected window. A screen-reader announcement confirms which period is now active.


KPI Cards

The four stat cards at the top of the dashboard show headline numbers for the selected period.

KPI cards

Card What it shows
Total Revenue Sum of all completed transactions in the period
New Enrollments Number of new course enrollments in the period
Course Completions Number of courses marked complete by students in the period
Avg Rating Average star rating across your top courses

Revenue Trend

The Revenue Trend section shows a bar chart of revenue over time for the selected period.

Revenue trend chart

Each bar represents a day or week depending on the period length. Hover over a bar to see the exact revenue amount for that interval. If there is no revenue in the period, the section shows an empty state message instead of a blank chart.

An accessible data table is included for screen reader users.


Top Courses

The Top Courses table lists your highest-earning or most-enrolled courses for the period.

Top courses table

Each row shows the course title, enrollment count, completion count, average rating, and revenue. Use this to identify which courses are driving growth and which may need attention.


Exporting Analytics Data

Click Export CSV in the page header to download the current dashboard data as a CSV file.

Export button

The export covers the currently selected reporting period. Open it in any spreadsheet application. The download streams directly without a separate confirmation step.


Tips

  • Revenue figures show completed transactions only. Refunded transactions are not included in the totals.
  • The Average Rating in the KPI cards is calculated from the courses that appear in the Top Courses list for the period, not all courses site-wide.
  • Instructor-level analytics (earnings per instructor, top instructors by revenue) are available in the same view when the Commissions module is active. Look for additional columns in the Top Courses table.
  • When the page first loads with no data (a new site or a period with no activity), each KPI card shows zero and the Revenue Trend shows an empty state. This is expected.

Related

Membership Analytics

Pro feature. Available in Learnomy Pro.

Membership Analytics shows the health of your subscription business: monthly and annual recurring revenue, churn rate, subscriber flow, and cohort retention. Use it to track whether your membership is growing, shrinking, or holding steady.

Overview

The Membership Analytics dashboard is at Learnomy Commerce > Membership Analytics in the admin sidebar. It is only visible when the Membership Pro extension is active in Learnomy Pro.

The page has two tabs: Overview (this page) and Paused (subscribers who have paused their plan).


Opening the Dashboard

  1. Go to Learnomy Commerce > Membership Analytics in the admin sidebar.

    Membership Analytics overview

  2. The page header shows the title and a description: "Recurring revenue, churn, and cohort retention."

    Membership Analytics header

  3. Data loads asynchronously from four REST endpoints. If any endpoint fails, an error notice appears with a Try again button.


KPI Cards

The KPI section shows four headline numbers. The values update as soon as the REST calls complete.

KPI cards

Card What it shows
Active subscribers The current number of active paid members
Monthly recurring MRR: the sum of monthly subscription revenue from all active plans at their current billing amounts
Annual run rate ARR: MRR multiplied by 12
Churn (30 days) The percentage of active subscribers who cancelled in the last 30 days

If no members have subscribed yet, the KPI grid shows "No subscription data yet."


MRR over the Last 12 Months

This section shows a placeholder message in the current release. Historical MRR trend charting requires a data-history layer that is not yet shipped. The placeholder reads: "Historical MRR will appear once we have at least a month of subscription activity to compare against."

MRR chart section


New Subscribers vs Cancellations

This section shows a placeholder message in the current release. Monthly new-versus-cancelled flow charting requires the same historical-data layer. The placeholder reads: "Monthly new-vs-cancelled flow will appear once we have at least two months of subscriber changes to compare."

New vs cancellations section


Cohort Retention

The Cohort Retention grid shows how well each monthly signup cohort retains subscribers over time.

Cohort retention grid

Each row is a month in which subscribers joined (the signup cohort). Each column is the number of months since that cohort signed up. The value in each cell is the percentage of the original cohort still active at that point.

Read it like this: a value of 80 in the "Month 3" column for the February cohort means 80% of subscribers who joined in February were still active after three months.


Exporting Data

Click Export CSV in the page header to download the current membership analytics data. The export uses the same data that populates the KPI cards and is useful for reporting outside Learnomy.


Tips

  • MRR is a point-in-time calculation based on active subscriptions and their billing amounts right now. It does not include paused subscriptions.
  • Churn is calculated over the last 30 days regardless of any period filter. There is no period selector on this page.
  • The Paused tab lists subscribers who have temporarily paused their plan. Paused subscriptions are not counted in Active subscribers or MRR.
  • Cohort retention requires at least two months of data before the second column populates. A new site will see mostly empty cells until subscribers have been active for a few months.

Related

Pro Tools

> **Pro feature.** All pages in this section require Learnomy Pro.

Pro Tools Overview (Pro)

Pro feature. Available in Learnomy Pro.

Pro Tools is a hub page inside wp-admin that gives you quick access to every Pro extension active on your site. It does not add any functionality by itself. Think of it as a single landing pad so you are never hunting through the sidebar for an advanced feature.

Overview

Go to Learnomy > Pro Tools to open the hub. Each enabled extension registers a card here via the learnomy_pro_tools_cards filter. Clicking a card takes you directly to that extension's admin page.

Pro Tools hub

If no Pro extensions are enabled, the hub shows an empty state with a link to Learnomy Settings > Modules where you can switch them on.

What is on the hub

Each card shows an icon, the extension name, and a short description. The extensions that appear on the hub are:

Assignments - Attach written assignments to any lesson. Students submit text from the lesson page; you grade inline from the admin.

Assignments documentation

Cohorts - Group students into named cohorts scoped to one course. Set start and end dates and a seat cap.

Cohorts documentation

Content Drip - Schedule when lesson content unlocks for enrolled students, either on a fixed date or a number of days after enrollment.

Content Drip documentation

Learning Paths - Chain multiple courses into an ordered sequence. Students enroll in the path and are auto-enrolled in every course step.

Learning Paths documentation

User Journeys - Track per-student skill scores, achievements, and a chronological learning timeline.

User Journeys documentation

Spaces - Create group or organisation accounts (mini-schools) with their own student rosters and assigned courses.

Spaces documentation

The Frontend Builder and White Label extensions are configured from Learnomy Settings rather than the Pro Tools hub. See Frontend Builder and White Label.

Tips

  • Extensions must be enabled on the Modules page before their cards appear here. Go to Learnomy Settings > Modules to toggle them.
  • Direct URLs such as ?page=learnomy-cohorts continue to work even when an extension is hidden from the sidebar, so browser bookmarks are safe.

Related

Cohorts (Pro)

Pro feature. Available in Learnomy Pro.

Cohorts let you run the same course in scheduled batches. Each cohort is tied to one course, has a fixed start and end date, and caps the number of seats. Students added to a cohort are auto-enrolled in the course, and their enrollment row records which cohort they belong to so you can filter and report on them as a group.

Overview

Go to Learnomy > Pro Tools > Cohorts to manage all cohorts. The page shows a table with each cohort's name, linked course, member count, start date, end date, and status.

Cohorts list

Cohort status can be one of: Draft, Open (accepting members), In progress, Completed, or Archived. Status transitions are manual in this release.

Creating a cohort

  1. Click Add new in the top-right corner. The create form slides into view above the table.

    Cohorts list header

  2. Fill in the fields:

    • Cohort name (required) - a label for this batch, for example "Spring 2026 cohort".
    • Course (required) - select any published course from the dropdown.
    • Start date and End date - optional calendar inputs. Leave blank if the cohort has no fixed schedule.
    • Max students - defaults to 30. Accepts 1-999.
    • Status - set to Open (accepting members) when you are ready to add students. Newly created cohorts default to Draft.
  3. Click Save cohort. The new cohort appears in the table immediately.

Adding and removing members

  1. In the cohort table, click Members in the Actions column to open the members view for that cohort.

    Cohort detail - members

  2. To add a student, type their email address into the Add member field and confirm. The student is added to the cohort and automatically enrolled in the cohort's course. Their enrollment row records the cohort ID.

    Cohort members list

  3. To remove a member, click Remove next to their row. This removes them from the cohort but does not unenroll them from the course.

Bulk CSV import is not available in this release. Add members one at a time using the email lookup.

Editing a cohort

Click Edit next to any cohort row. The same form reappears pre-filled with the current values. Update the fields and click Save cohort to apply changes.

Deleting a cohort

Click the overflow menu (three-dot icon) in the Actions column and choose Delete. Deleting a cohort removes the cohort record and clears the cohort_id from any related enrollment rows. Students remain enrolled in the course.

Cohort progress

The REST API exposes an aggregate progress endpoint at GET /learnomy-pro/v1/cohorts/{id}/progress (available to cohort owners and admins). It returns the overall completion rate and a per-member status list. A UI for this view is planned for v1.1.

The learner experience

Students enrolled via a cohort see the course exactly as any other enrolled student would. There is no separate cohort-facing page in this release. If a student visits /cohorts/{id}/ they see the cohort name, linked course, dates, and capacity; enrolled members also see a Continue Learning button.

Tips

  • Status transitions are manual. When your cohort's start date passes, switch the status from Open to In progress yourself.
  • The enrollment gate fires when status is set to a mode other than Open. If your course settings require cohort membership, students who are not in an Open cohort cannot self-enroll.
  • Member counts and all list queries are paginated at the database level, so cohorts with thousands of members load at the same speed as cohorts with ten.

Related

Learning Paths (Pro)

Pro feature. Available in Learnomy Pro.

Learning Paths let you chain multiple courses into a curated, ordered sequence. A student enrolls in the path once and is automatically enrolled in every course step. If the path is sequential, the student cannot access step N+1 until all required steps before it are complete. Finishing the last required step issues a path-level certificate.

Overview

Go to Learnomy > Pro Tools > Learning Paths to see all paths. The list shows each path's title, number of steps, enrolled student count, and status.

Learning paths list

Creating a learning path

  1. Go to Learnomy > Pro Tools > Learning Paths and click New Path. A create form appears above the list.

    Learning paths list header

  2. Enter the path title, choose whether it is sequential or flexible, and set the status to Published when ready. Click Save. The new path appears in the table.

  3. Click Edit next to the path to open the path editor. From there you can add course steps, reorder them with the Move up and Move down buttons, and mark steps as optional.

Once a path is published, it appears at /paths/ for students to browse and at /paths/{slug}/ to view and enroll.

Paths can also be created via the REST API. Send a POST to /learnomy-pro/v1/learning-paths with title, is_sequential, and status, then add steps via POST /learnomy-pro/v1/learning-paths/{id}/steps with course_id, sort_order, and is_required.

The student experience

  1. A student visits /paths/ to browse the published paths catalog. Paths can be filtered by category and sorted by latest, most popular, or title.

    Learning paths list

  2. The student opens a specific path at /paths/{slug}/. The page shows the path title, description, the list of course steps in order, and an Enroll button.

    Learning path detail

  3. Clicking Enroll enrolls the student in the path and in every course step simultaneously. On a sequential path, the step tiles reflect which steps are locked and which are accessible.

    Learning path steps

  4. When the student completes all required steps, the path is marked complete and a path-level certificate is issued automatically.

Sequential enforcement

When is_sequential is true, the access check refuses entry to a step until every earlier required step is marked complete. Optional steps (is_required: false) do not gate the next step and can be visited at any time.

Paid learning paths

A learning path can require payment. Use Stripe Checkout with purchase_type=learning_path and the path ID. After payment, the student is enrolled in the path and all its course steps. The learnomy_pro_learning_path_purchased action fires on successful purchase.

Viewing path details in admin

The admin list shows the path title, step count, enrolled student count, and status. Click Edit to open a path and manage its steps.

Learning path header

Tips

  • Drag-and-drop step reordering in the admin editor is planned for v1.1. Use the Move up and Move down row actions to reorder steps in this release.
  • Path-level prerequisites (paths that require completing other paths first) are planned for v1.1.
  • The path-level certificate reuses the certificate template system from Free. Assign a certificate template via the REST API when creating or updating the path.

Related

Spaces (Pro)

Pro feature. Available in Learnomy Pro.

Spaces are organisation or group accounts inside your LMS. Think of each space as a mini-school: it has its own roster of students and its own set of assigned courses. When you add a member to a space, they are automatically enrolled in every course assigned to that space. When you add a new course to a space, every existing member is automatically enrolled in it.

A typical use case is a corporate client who buys access for their whole team. You create one space for them, assign the relevant courses, and add their staff. All staff get access immediately without you having to enroll each person one by one.

Overview

Go to Learnomy > Pro Tools > Spaces to see all spaces. The list shows each space's name, member count, assigned course count, status, and subscription status.

Spaces list

Filter the list using the links above the table: All, Active, Inactive, Recurring, Past Due, Cancelled, Expired.

Creating a space

  1. Click Add new. A create form slides into view.

    Spaces list header

  2. Enter a space name (for example, "Acme Corporation Training") and set the initial status to Active. Save the space. The new space appears in the table.

Assigning courses to a space

  1. Click the space name or the Manage action to open the space detail page.

    Space detail

  2. In the Assigned Courses section, choose a published course from the picker and click Assign.

    Space detail - assigned courses

    Only published courses that are not already assigned appear in the picker. Every current space member is enrolled in the newly assigned course automatically.

  3. To remove a course from the space, click Remove next to it. Members keep their existing enrollments.

Adding members

  1. On the space detail page, open the Members section.

    Space detail - members

  2. Type a member's email address into the Add member field. Choose a role (Member or Manager) and confirm.

    The user is added to the space and auto-enrolled in all assigned courses. If the user account does not exist, an invitation is queued.

  3. To add many members at once, use the invite link (see below).

Invite links

On the space detail page, generate a Shareable invite link. The link is valid for 7 days. Anyone who clicks it and signs in (or registers) is added to the space automatically and redirected to spaces/{slug}/?joined=1. Multiple people can use the same link during its 7-day window. Regenerate the link from the space admin page whenever you need a new one.

Pending join requests

Students can request access to a space. When there are pending requests, a notice appears at the top of the Spaces list page.

Spaces list - pending requests

Click the notice or open the space's detail page to see the request queue. You can Approve or Decline each request individually.

Space seat packs

If you sell seat packs (bundles of additional student seats), manage them from Learnomy > Pro Tools > Spaces > Seat Packs (the Plans/Seat Packs tab).

Space seat packs

The seat packs table shows each pack name, the number of seats it contains, the price, and its status. Use Add new to create a pack, and the row action menu to edit or delete existing ones.

Space seat packs table

Spaces can be configured to require a seat pack purchase. When a student attempts to join a space that has run out of seats, they are directed to buy more.

Subscriptions

Spaces support recurring subscriptions via Stripe. When a subscription is active, it appears in the Subscription column of the spaces list. The cron job learnomy_pro_space_subscription_sweep runs hourly to detect past-due or expired subscriptions and update space status accordingly. PayPal recurring subscriptions for space plans are planned for v1.1.

The member experience

Members visit /spaces/{slug}/ on the frontend to see their space. The page shows the space name, a member count, and clickable course cards for every assigned course. Clicking a card takes the student directly to the course page.

Space Manager role

A member with the Manager role can add and remove members and view per-member progress reports for their space, without needing WordPress admin access. The Manager role is a member-row designation, not a WordPress capability.

Tips

  • Deleting a space does not unenroll its members from courses. Enrollments persist after a space is deleted.
  • Branded subdomains (for example, acme.yourdomain.com) and per-space email templates are planned for v1.1.
  • Bulk CSV member import is not available in this release. Use the email lookup field or the invite link for large batches.
  • The shareable invite link is a signed URL (HMAC-SHA256 with a 7-day expiry). No token is stored server-side; the expiry and signature are verified from the URL itself.

Related

Assignments (Pro)

Pro feature. Available in Learnomy Pro.

Assignments attach written tasks to any lesson. An enrolled student sees the assignment widget below the lesson content, writes their response, and submits it. You then review each submission and award a numeric score with optional feedback. The student sees the result the next time they open the lesson.

Overview

Go to Learnomy > Pro Tools > Assignments to see all assignments. The table shows each assignment's title, the lesson and course it is attached to, the total submission count, and how many submissions are pending grading.

Assignments list

Creating an assignment

  1. Click Add new. The create form slides into view above the table.

    Assignments list header

  2. Fill in the fields:

    • Assignment title - a short description of the task, for example "Write a 300-word reflection".
    • Lesson - select any lesson from the dropdown. Only one assignment can be attached to each lesson.
    • Max score - the maximum numeric score for this assignment (for example, 100).
    • Due date - optional. When set, the due date appears in the student widget and is enforced: submissions after the deadline are rejected.
  3. Click Save assignment. The assignment is now active on the selected lesson for all enrolled students.

The student experience

  1. An enrolled student opens the lesson. The assignment widget appears below the lesson content.

  2. The student types their submission text into the text area. They can also attach files using the Attach files (optional) input. The maximum number of attachments is configured by the site owner.

  3. The student clicks Submit. The widget immediately shows a Submitted, awaiting grade confirmation.

  4. After grading, the student returns to the lesson and sees their score (for example, 78 / 100) and the instructor's feedback in the widget.

Grading submissions

  1. From the Assignments list, click Grade in the row for an assignment that has pending submissions. You land on the grader view for that assignment.

    Assignment submissions grading

  2. The grader shows every submission for this assignment with the student's name and their submitted text.

    Grading view

  3. For each submission, enter a numeric score in the score field (0 to the assignment's max score). Optionally add feedback text.

  4. Click Grade to save. The submission is marked graded. The student sees the score and feedback the next time they open the lesson.

  5. When all submissions are graded, the page shows "All caught up. No assignments to grade."

  6. Click Back to list to return to the full assignments table.

Who can grade

An assignment can be graded by the course author or any WordPress administrator. The grading REST endpoint checks this ownership rule. Instructors assigned as co-instructors on a course can also grade assignments for that course.

Empty states

  • If no assignments exist yet, the list shows "No assignments yet. Click 'Add new' to create one."
  • If an assignment has no submissions, the grader shows "All caught up. No assignments to grade."

Tips

  • Students can submit text, file attachments, or both. Files are uploaded to the WordPress media library and linked to the submission.
  • Grading uses a simple numeric score. Rubric grading is planned for v1.1.
  • The due date is displayed in the assignment widget and enforced at the REST layer. Submissions after the deadline are rejected with an error.
  • The assignment widget on the lesson page is injected via the learnomy_lesson_player_aside hook, so it appears in the lesson sidebar area regardless of which course template is active.

Related

User Journeys (Pro)

Pro feature. Available in Learnomy Pro.

User Journeys tracks each student's skill development over time. Every time a student completes a course or passes a quiz, the system recalculates their skill score for that course category. The result is a per-student profile showing skill progress bars, earned achievements, and a chronological activity timeline. Administrators can review any student's profile; students can view their own journey from their dashboard.

Overview

Go to Learnomy > Pro Tools > User Journeys to see a list of all students who have activity on the site.

User journeys list

The table shows each student's name, email address, number of distinct skills tracked, number of courses completed, number of quizzes passed, and their last activity date.

User journeys list table

If no students have activity yet, the page shows "No journey data yet. Skill scores accumulate as students complete courses and pass quizzes."

Viewing a student's journey

  1. Click View Journey in the row for any student. You land on the student journey detail page.

    User journey detail

  2. The detail page is divided into three sections:

    Skills - a list of skill categories with a progress bar for each, showing the student's current score in that category.

    User journey skills

    Achievements - a list of milestones the student has earned, such as first enrollment, first course completion, and first certificate.

    User journey achievements

    Timeline - a chronological list of activity events: enrollments, course completions, quiz attempts, and certificates earned.

How skill scores are calculated

Skill scores are tied to course categories. When a student completes a course, the system recalculates their score for that course's category. When a student passes a quiz attached to a course, the score is recalculated again. The category name is used as the skill name in the student-facing view.

This happens automatically through two hooks:

  • learnomy_course_completed - recalculates the skill for the completed course's category.
  • learnomy_quiz_graded - recalculates the skill on quiz pass.

There is no manual skill assignment in this release. Scores are derived from completion and quiz performance only.

The student experience

Students see their journey from the My Journey tab on their account dashboard (/account/). The tab shows their skill scores, achievements, and recent activity timeline. No configuration is needed; the tab appears automatically when the User Journeys extension is active.

Tips

  • Skill categories match your course categories. If your categories are "Marketing", "Design", and "Development", those are the skill names students see.
  • Achievements are calculated automatically from enrollment, completion, quiz, and certificate activity. Configurable skill thresholds and a skill-tree builder are planned for v1.1.
  • At-risk student detection (flagging students who have gone quiet) requires the Email Automator module and is planned for v1.1.
  • Cohort journey comparison (side-by-side skill scores for a group) is planned for v1.1.
  • The REST API exposes full journey data at GET /learnomy-pro/v1/users/{id}/journey, /skills, /timeline, /achievements, and /recommendations. The mobile app and third-party integrations can consume these endpoints directly.

Related

Frontend Course Builder (Pro)

Pro feature. Available in Learnomy Pro.

The Frontend Course Builder lets instructors create and manage courses entirely from the front end of your site, with no access to wp-admin required. An instructor follows a four-step wizard to create a course, then uses the persistent editor to build out curriculum, configure settings, and publish.

Overview

The builder lives at two routes:

  • /instructor/create-course/ - the four-step creation wizard.
  • /instructor/edit-course/{id}/ - the persistent editor for an existing course.

Both routes are login-required. A visitor who lands on /instructor/create-course/ without the right capability is redirected to the course catalog with ?access=instructors_only.

The builder is enabled for all users with the learnomy_frontend_course_edit ability, which is granted to users with the lrn_instructor role.

Creating a course: the four-step wizard

Step 1 - Course Info

The first step collects the core course details.

  • Course Title (required) - the public name of the course.
  • Description - a rich-text editor (powered by Editor.js) for the course overview. Supports paragraphs, headings, lists, code blocks, and quotes.
  • Category - a dropdown of existing categories. Type a new name in the field to create a category inline without leaving the builder.
  • Course Thumbnail - upload an image from your device. A preview appears once uploaded.

Click Next (or the step indicator) to advance. The wizard remembers your progress as you move between steps.

Save Draft in the top-right header saves your work at any point without publishing. The course is created in the database as a draft on the first save, and the browser navigates to the editor at /instructor/edit-course/{id}/.

Step 2 - Curriculum

Build the course structure. Add sections (groupings of lessons) and loose lessons (lessons not inside a section).

  • Click Add Section to add a named section.
  • Inside a section, click Add Lesson to add a lesson title. The lesson is saved via REST as you type.
  • Lessons outside sections are listed as loose lessons below the sections.
  • Drag sections and lessons to reorder them. Dragging uses native HTML5 drag-and-drop and saves the new order immediately.

Step 3 - Settings

Configure access and completion rules.

  • Access Type - Free, Paid, Membership, or Paid or Membership.
  • Price - shown when Paid access is selected.
  • Difficulty - Beginner, Intermediate, or Advanced.
  • Completion Type - how the course is marked complete: all lessons, lessons and quiz, percentage, or manual.

Step 4 - Review and Publish

Review a summary of what you have entered. Click Publish to set the course status to Published and redirect to the persistent editor. A success notice confirms publication.

Editing an existing course

The persistent editor at /instructor/edit-course/{id}/ covers everything you can do after the course is created.

From the editor, the instructor can:

  • Edit course info (title, description, category, thumbnail)
  • Add, rename, and delete sections
  • Add, edit, and delete lessons (lesson content uses Editor.js for rich text)
  • Add quizzes to the curriculum
  • Set up content drip rules (when each lesson unlocks after enrollment)
  • Choose a certificate template
  • Set prerequisites (a multi-select picker of other courses)
  • Add tags
  • Add or remove co-instructors

Every change is saved via the same REST API used by the mobile app. There is no separate save button in the editor; saves happen on each action.

The Create Course and Edit Course links on the instructor dashboard point to the frontend builder when this extension is active. Instructors do not need to know about /wp-admin/.

Question types in the builder

When an instructor adds a quiz to a course via the editor, the question type dropdown is populated from the learnomy_question_types filter. Available types depend on which extensions are active:

Type Available in
True / False Free
Single choice Free
Multiple choice Free
Short answer Free
Essay Free
Fill in the blank Free
Matching Advanced Quizzes (Pro)
Ordering Advanced Quizzes (Pro)

The matching and ordering types only appear in the dropdown when the Advanced Quizzes extension is enabled.

Tips

  • Instructors author lesson content in the persistent editor after publishing. The creation wizard does not include an Editor.js content panel; content editing starts in the editor.
  • Every time a lesson is saved, a revision snapshot is stored. Instructors can open the revision history panel to browse previous versions and restore any saved state.
  • If an instructor pastes a YouTube URL into the lesson editor, the embed saves. Re-editing the lesson reconstructs the embed block. Full media-embed round-tripping improvements are planned for v1.1.
  • The builder is a frontend route (/instructor/create-course/ and /instructor/edit-course/{id}/). It uses the WordPress Interactivity API for step navigation and real-time state, with no React or jQuery.

No screenshots available

No dedicated frontend-builder screenshots are included in this release. The feature shares the course-builder and course-editor templates. Refer to the ../images/courses/ and ../images/lessons/ folders for adjacent UI screenshots, or capture them from /instructor/create-course/ on a test site.

Related

White Label (Pro)

Pro feature. Available in Learnomy Pro.

The White Label extension lets you replace Learnomy's name, icon, and accent color with your own brand across every admin page the plugin creates. Students see a custom attribution on the frontend. The settings are saved once and apply everywhere automatically.

Overview

White Label settings live in Learnomy Settings > White Label. The section appears in the settings sidebar under the Pro nav group after the extension is enabled.

If none of the fields are filled in yet, the card shows "No customizations yet. Fill in the fields below to brand your LMS."

Settings

Brand Identity

Plugin Name - replaces the word "Learnomy" in the admin sidebar menus. For example, enter "My Academy" and the three menus rename to "My Academy", "My Academy Commerce", and "My Academy Settings". The "Commerce" and "Settings" suffixes are preserved; only the "Learnomy" token is replaced.

Admin Logo URL - paste the URL of a custom icon image (SVG or PNG recommended). This replaces the default icon in the WordPress sidebar next to the menu label. The image must be hosted somewhere accessible; the field accepts any public URL.

Color

Accent Color - pick a hex color using the color swatch or type it directly into the hex field. The chosen color overrides --lrn-accent and --lrn-accent-hover across both the admin and frontend. The hover variant is automatically darkened by 15% from the base color.

Clearing this field restores the default accent color.

Text and Attribution

Footer Text - the text shown in the WordPress admin footer on Learnomy pages. For example, "Powered by My Academy". Leave blank to show the default WordPress footer text on Learnomy pages.

Hide "Powered by Learnomy" on the frontend - a toggle. When on, the Learnomy attribution is removed from learner-facing pages.

Advanced

Custom CSS - a textarea for additional CSS injected into both admin and frontend pages. Maximum 5,000 characters. Use this for minor style tweaks that the accent color alone does not cover.

Saving changes

Click Save Changes at the bottom of the card. A status message ("Changes saved.") confirms success. If the save fails, a "Save failed. Please try again." message appears.

Settings are stored in a single WordPress option (learnomy_pro_white_label) and read on every page load, so changes take effect immediately without a cache clear.

Scope of branding

The white label extension rebrand applies to the three Learnomy top-level menus:

Original label After white label with name "Acme"
Learnomy Acme
Learnomy Commerce Acme Commerce
Learnomy Settings Acme Settings

The custom icon applies to all three menu items. The accent color and custom CSS apply to every admin and frontend page the plugin renders.

Tips

  • The plugin name field only replaces the "Learnomy" token in labels. If a label does not contain the word "Learnomy", the entire label is replaced with the plugin name instead.
  • The accent color is applied via a CSS custom property (--lrn-accent). It takes effect on every element that uses this token, including buttons, links, progress bars, and tab indicators.
  • Custom CSS is stripped of HTML tags before saving. It is not sanitized for valid CSS; take care with untrusted input.
  • There is no media-library picker for the admin logo URL field in this release. Upload your logo to the WordPress media library, copy its URL, and paste it in.
  • To remove a branding value, clear the field and save. The extension falls back to the Learnomy defaults.

No dedicated screenshots available

No dedicated white-label admin UI screenshots are included in this release. The settings card renders inside the standard Learnomy Settings page. Refer to ../images/settings/ for the settings page layout, or capture the White Label section from your live site.

Related

Something unclear? Open a support ticket →

Get notified at launch