Saber LMS

Saber LMS is a free learning management system plugin for WordPress. It is part of our series of free "Saber" line of plugins which leverage ACF (Advanced Custom Fields). ACF Pro is a dependency and requirement to use this free plugin.

Download or fork for free at saberwp/saber-lms: Learning management plugin for WordPress. (

Try a live demo by taking a free quizzes available here at

File Reference


Main plugin file. Defines plugin path constants. Provides activation hook. Provides template_include for loading single page templates.


Provides draft documentation that is used to later form official plugin docs.

Repo Install

Saber LMS is a free plugin distributed under the GPL3 license. The GitHub repo for the plugin is plugin and developers can fork or download the plugin code at

The notable difference between a "repo install" versus a release install is that the repo will provide you with a branched version of the code. If you choose the branch "main" which is the default branch, you will get the latest development code. This code is not necessarily as well tested or stable as the release versions.

Developers are allowed to (and encouraged) to fork Saber LMS for their projects. Not only is Saber LMS free in the licensing sense, but it is also a community driven project that provides a foundation for creating rich learning experiences within WordPress.

Saber LMS Pro

The Saber LMS Pro plugin is under active development as of March 2023 and has not yet been made available for sale. The plugin will enhance Saber LMS free and will be installed as an extension, rather than as a replacement. The plugin structure is similar to that of WooCommerce and other plugins where the site will keep the free version installed as the base/core plugin and then use extensions to add enhancement and specialized features. The Saber LMS Pro feature set will be announced here when it is available.

Estimated release date for Saber LMS Pro: July 2023.

Default UI Design

Review screen after the student completes a quiz.

Default button controls for the Quiz UI.

Default answer screen during a quiz session.

Course Single Design

The course single template is used to render each singular course. The course main view or course dashboard as we may sometimes refer to it, is the initial view seen when the course is loaded. If the user has not yet registered for the course, then the focus is on asking the user to complete that registration and a register button is provided in the main body of the UI.

Once the user has registered for a given course, the course dashboard focus is on navigation between lessons contained within the course. Here we see a button for navigating to lesson 1.

Creating Courses

The structure of a course is pretty simple in any LMS, and it is no different here in Saber LMS. We use a simple structure whereby courses are collections of lessons. The only other aspects of courses that is really interesting is the addition of quizzes. You can insert quizzes anywhere you like in the course track.

What is the "course track" you ask? This is simply the timeline created by your list of lessons and/or quizzes. Courses are inherently linear, students are expected to finish lesson 1 before continuing on to lesson 2, and their expected to do the quiz in position 3 before proceeding to lesson 3, which is now in position 4 on the timeline. The timeline or course track is not something you will visually see when editing courses. You can think of this as a "virtual concept". Instead what you'll see as an editor is just a list of lessons and quizzes like this:

Lessons First!

Always, always add your lessons first because you need those lessons in the database before you can add them to a course. Unfortunately Saber LMS does not provide an inline creation feature. It's something we're working on, but at this point in time your lessons must be created first. Of course you can cycle over both the lesson list and the course, you can draft a course, create a lesson, add it to the course, continue making more lessons and adding them one-by-one to the course lesson list. Normally you'll find it's faster though to make all your lessons in a batch prior to making your course because this way you only have to edit the course once and you can drop in all the lessons you have prepared in advance.

Creating Quizzes

The testing engine built into Saber LMS is the most advanced and sophisticated aspect of the entire plugin. What really makes an LMS challenging software to build is the testing engine or quiz system. Courses and lessons, that is mostly content with some navigation and basic features like marking lessons completed and registering for courses. What happens in a quiz however, is a completely different ballgame. Here we have multiple screens, no page reloads, questions are loaded dynamically from the API, answers are presented to the user, the user then makes a selection, answers the question, and their answer must then be stored in the database as a statistic.

Just as you need to make lessons before you can add them to courses, with the quiz system you need to make your questions before you can add them to a quiz. Creating questions in batches and batch adding them to quizzes is the most efficient way to handle this editing task.

In the question editor shown below notice that each answer has a true/false toggle next to it. Use this to indicate which answer is correct. Every question should have exactly one correct answer, as multiple correct answers is not supported at this time.