Fennec Learn docs
Setup, then the developer reference. Early-access build: names and details can still change before 1.0.
Getting started
Fennec Learn isn't published on WordPress.org yet. Early-access sign-ups get the plugin zip by email when it's ready. Join early access
Install and activate
Upload the plugin under Plugins → Add New (WordPress.org listing coming at launch) and activate it. WordPress 6.9+ and PHP 8.1+.
Write a course
Go to Fennec Learn → Add New Course and design the course page with blocks.
Build the curriculum
Click “Open course builder” in the sidebar to add sections, lessons, drip days and quizzes, and choose who can take the course.
Add a student dashboard
Add the Student Dashboard block to a page such as “My Courses”, then select that page under Fennec Learn → Settings.
Optional: sell access with Members
With Fennec Members active, set the course to Restricted and choose the levels that unlock it.
Blocks and shortcodes
- Student dashboard: the Student Dashboard block or
[fennec_learn_dashboard]. - Course outline: the Course Outline block or
[fennec_learn_course_outline]. Course pages append their outline automatically unless you turn it off withfennec_learn_auto_outline.
Certificates
Every certificate has a unique code and a public verification link on your own site, like https://example.com/?fennec_certificate=ABCD-1234-EF56-7890. Anyone with the link sees the student's name, the course and the completion date. Verification pages are marked noindex. Customize what's shown with fennec_learn_certificate_data.
Access and Fennec Members
Courses are open (any logged-in user), free (with registration) or restricted. Restricted courses rely on the fennec_learn_user_can_access_course filter. When Fennec Members is active, Learn's built-in integration uses it to grant access by membership level. Any other plugin can grant access the same way.
Developer hooks
Extensions, including the Pro add-on, use only these public hooks. Data an inactive extension wrote is kept when an item is re-saved.
| Hook | Type | Purpose |
|---|---|---|
fennec_learn_capability | filter | Capability for reports, enrollments and settings (default manage_options). |
fennec_learn_user_can_access_course | filter | Grant access to a course (restricted courses rely on this). |
fennec_learn_access_level_options | filter | Level ID → label choices shown in the course builder. |
fennec_learn_restricted_message | filter | Message for logged-in visitors without access. |
fennec_learn_auto_outline | filter | Whether a course page appends its outline automatically. |
fennec_learn_certificate_data | filter | Student, course, date, site, code and URL shown on a certificate. |
fennec_learn_expose_students_to_mcp | filter | Make get-student-progress agent-visible (default false). |
fennec_learn_course_slug | filter | Rewrite slug for courses (default “courses”). A matching lesson filter exists. |
fennec_learn_certificate_footer | action | Extra certificate content such as a signature or logo. |
fennec_learn_builder_saved | action | After the course builder saved (course ID, raw POST). |
fennec_learn_loaded | action | Fennec Learn has loaded. |
Suite events
Fired on fennec_event and on fennec_event/<name> with the shared envelope (id, event, plugin, occurred_at, data, site).
fennec-learn/course-enrolledfennec-learn/course-unenrolledfennec-learn/lesson-completedfennec-learn/quiz-passedfennec-learn/quiz-failedfennec-learn/course-completed
Abilities
fennec-learn/list-coursesagent-visibleList courses (read-only).
fennec-learn/get-course-outlineagent-visibleA course’s sections and lessons (read-only).
fennec-learn/get-student-progresshidden by defaultA student’s progress. Personal data, hidden from agents unless you opt in.
Data and uninstall
Deactivating never deletes anything. Uninstalling keeps all data unless the fennec_learn_delete_data_on_uninstall option is set first (there's a checkbox for it on the plugin's Settings screen). Requires WordPress 6.9+ and PHP 8.1+.