How LifterLMS works under the surface
One plugin, four moving parts
LifterLMS is easier to reason about once you see its parts separately. Courses and memberships are the things people get access to. Access plans are the prices and terms attached to them: free, one-time or recurring, with optional trials, sale periods and expiry. Orders record what a student bought and drive recurring charges. Enrollments record what the student may open right now. Most faults we are called in for sit between two of those parts, for example an order that went on hold while the enrollment stayed active.
What it does well without code
A great deal. The course builder, quizzes, drip and prerequisites cover standard teaching. Memberships can restrict any page or post and enroll members in courses automatically. Engagements send emails and award achievements or certificates when something happens. The student dashboard and the reporting screens for students, courses, quizzes and sales come in the core. For a business selling its own courses directly that is often enough, and we will tell you when it is. If your catalog needs a full cart or physical products, pairing it with WooCommerce is the usual route.
Where custom work starts
The requests are consistent. Content built in authoring tools needs a SCORM or xAPI player with results written back to the lesson. Companies want to buy seats for staff and see their progress. Sales teams want enrollments and completions in the CRM. Assessors want quiz behavior the standard question types do not offer. LifterLMS is built for this kind of extension: it has an integration class, a gateway class, a REST API and hooks at every enrollment and completion event. We use those instead of patching the plugin, and LifterLMS add-on development describes how.
LifterLMS or LearnDash?
We work on both, so we have no reason to push either. LifterLMS tends to win when memberships and direct selling are central and you want checkout, emails and the student area from one vendor. LearnDash tends to win when assessment is demanding or when training is delivered to many client groups with their own leaders. If you already run one of them and it mostly works, staying put and fixing the gaps is nearly always cheaper than switching.
How we keep changes safe
Orders, enrollments and quiz attempts are business records. We do all work on a staging copy, keep custom code in its own plugin or a child theme, and run test purchases through each access plan, including a renewal, a failed payment and a cancellation, before anything goes live. LifterLMS updates are applied on staging first.