LifterLMS – WordPress LMS Plugin for eLearning


LifterLMS is a secure WordPress LMS plugin packed with features to easily create & sell courses online.

Transform your WordPress website into a professional eLearning platform with every feature you could possibly need from your LMS.

  • Intuitive LMS Course Builder: Create Courses, Sections, Interactive Lessons with Rich Content Including Multimedia and Videos
  • Track Student Progress: In-Depth Reporting, Create Timed or Open Quizzes, Drip Content, Add Prerequisites, Analyze Progress, and Award Certificates
  • Complete Ecommerce Platform: Built-in Gateway Integration for Stripe and PayPal With Memberships and Subscriptions Including Single or Group Enrollment
  • Community and Social Learning: Integrate a Community Forum or Discussion Area, Add Multiple Instructors, and Display Course Reviews for Social Proof

Explore All LMS Features

LifterLMS makes it easy to create, sell, and protect engaging online courses and training based membership websites.

Integrate Your LMS With Any Theme, Page Builder, & Block Editor

LifterLMS works with any well-coded WordPress theme/FSE, the Block Editor (Gutenberg), and every popular WordPress page builder including Elementor, Beaver Builder, and Divi.

With over 9 years development, our team is deeply engaged with the WordPress community. We actively encourage our integration partners to create the extensions you need most, like Affiliate WP, Monster Insights, WP Fusion, the most popular form plugins, GamiPress, Astra Pro, and many more.

Don’t see an integration you need? Connect your LifterLMS website to 5,000+ other apps via Zapier.

Open Source, Completely Free Core Plugin

Just like WordPress, LifterLMS gives back to the open source community. The core LifterLMS plugin is a totally FREE forever LMS – no limits on your courses, memberships, enrollments, or earnings.

We believe in free, distributed learning for all. LifterLMS exists to democratize education in the digital classroom.

Premium LMS Add-ons and Bundles

Get to know our team and product by signing up for a $1 temporary 30 Day website. You’ll get instant access to a private demo site hosted on our servers pre-installed with:

  • the core LifterLMS plugin, AND
  • every premium LMS add-on we offer

See why so many people start with or switch from another WordPress LMS or hosted platform to LifterLMS for online course creation, membership sites, and remote schools.

This LMS demo site allows you to test drive the core plugin and all premium add-ons before you invest.

  • You can practice creating an online course with LifterLMS’s industry leading course builder.
  • Or simply take a course yourself on your demo site to test the course experience out for yourself.
  • You can even add your other favorite plugins & themes to your demo site so you can see them in action together with the LMS.

Are you ready to Try LifterLMS for $1? 🚀

LifterLMS is a Perfect Fit For Every WordPress User

Best for Builders
We’re the favorite LMS plugin for WordPress developers, designers and IT pros who build LMS websites and training portals for clients, employers and themselves

Best for Starters
Do-it-yourself innovators love that LifterLMS helps them create high value online courses, coaching or training based membership websites, right on WordPress.

Best for Switchers
Have you outgrown a hosted LMS platform or an incomplete WordPress LMS stack? Choose LifterLMS if you are looking for more power, control and better support.

Meet The LifterLMS Team

The LifterLMS team is a diverse group of talented course creators, developers, designers, marketers and entrepreneurs.

Before developing LifterLMS, we consulted and built custom WordPress-based online learning and membership sites for clients all over the world. LifterLMS was born through this deep hands-on experience building high-end, custom WordPress LMS websites for the expert industry.

Learn more about the people behind LifterLMS here.

LifterLMS WordPress LMS By The Numbers

  • 4,348,041 Course Enrollments powered by LifterLMS
  • 6,570,731 Course and lesson completions powered by LifterLMS
  • 86,807 Achievement badges awarded by LifterLMS
  • 120,728 Certificates awarded by LifterLMS
  • Over 10,000 active installs of the WordPress LMS plugin
  • 267 5 star reviews

LifterLMS Features

Start with our core free WordPress LMS plugin and scale-up as your business grows.

Make Money Building an Education-Based Business
Just set up LifterLMS, activate built-in payments with Stripe or PayPal. That’s all you need to get started on your LMS website journey.

When you need more features and want to expand your online learning business, we are here for you. We have several free and premium add-ons to help you create more value for your students and members, with a focus on scaling your business revenue.

  • Credit card payments
  • One-time payments
  • Recurring payments
  • Payment plans
  • Unlimited course and membership pricing models
  • PayPal
  • Subscriptions
  • Checkout
  • Free courses
  • Course bundles
  • Private coaching upsells
  • Course and membership Coupons
  • Bulk course and membership sales
  • Affiliate ready
  • Native course and membership sales pages
  • Offline course and membership sales
  • Customizable course and membership enrollment
  • Country and currency
  • E-commerce dashboard
  • Credit card management
  • Subscription switching
  • Payment switching
  • Native Zapier integration

Create Courses on Your WordPress LMS Website

  • Course multimedia lessons
  • Course quizzes
  • Course builder
  • Drip Content
  • Course and lesson prerequisites
  • Course tracks
  • Course assignments
  • Quiz time limits
  • Student dashboard
  • Multi-instructor courses
  • Lesson downloads
  • Course import & export
  • Discussion areas
  • Instructional design
  • Forum integrations
  • Graphics pack
  • Course reviews
  • Group enrollments for courses and memberships

Engage Your Students

  • Achievement badges
  • Certificates
  • Personalized email
  • Social learning
  • Private coaching
  • Text messaging

Offer Memberships

  • Sitewide membership
  • Course bundles
  • Traditional memberships
  • Automatic course enrollment
  • Bulk course enrollment
  • Content restrictions outside of a course
  • Members-only payment plans
  • Private group discussions
  • Members-only forums

Integrate your WordPress LMS with the Tools You Need

  • Payment gateways
  • Email marketing
  • Forums
  • Mobile friendly
  • Use any theme or page builder
  • Built for compatibility
  • CRMs
  • E-learning authoring tools
  • Tin Can API (xAPI)

Secure and Protect Your Content

  • Course protection
  • User account management and registration
  • Members only content
  • Course only content
  • Restricted access
  • Password management
  • Self-hosted

Own and Manage Your WordPress LMS Platform

  • Detailed course, membership, ecommerce, and student reporting
  • Course gradebook
  • Email notifications
  • Bulk course and membership enrollments
  • Student management
  • Course and membership access management
  • Web design management
  • Branding & typography
  • WordPress LMS User Roles
  • Security
  • Require terms
  • Scalable
  • Layout
  • Testing tools

Get Support For Your WordPress LMS Project

More Info About LifterLMS

Extend and Enhance Your LMS With LifterLMS Add-Ons


Increase your LMS website and it’s training program’s value with these engagement add-ons:


Integrate your LMS with the third-party tools you know and love:

LMS Website and User Experience Design Tools

Make your online course creations and WordPress LMS platform beautiful

How To Get Support

Our world-class LMS software support has your back and all of our paid products include priority private support with the LifterLMS support team.

  • LifterLMS Support Ticket System, ready for any question you have about your LMS
  • Liftoff Sessions access with live screensharing to help you get started with the LMS software
  • LifterLMS Office Hours is weekly Mastermind group hosted by LifterLMS CEO Chris Badgett and special guests

Save on LifterLMS With A Bundle

Save money while unlocking the full potential of your course building and LMS platform.

  • The Earth Bundle gives you all the essentials you need to get your online learning website up and running so it’s collecting money today with the most powerful secure learning management system software.
  • Level up your online course LMS website with our ecommerce, design, marketing technology, and automation tools with the Universe Bundle.
  • Add even more engagement and student transformation potential to your immersive training programs with our entire suite of products including advanced features used by the best teachers, experts, and coaches with the Infinity Bundle.

Give The Best WordPress LMS Plugin A Try

The best way to know if LifterLMS meets your needs is to take it for a test drive – something you can’t do with a totally premium LMS!

  • Go install the free core LifterLMS plugin right now. See how extensive and customizable our free core plugin truly is.
  • Get a temporary 30 Day website on our servers with the core LifterLMS plugin AND all the premium add-ons installed. This demo website allows you to test drive all the LMS add-ons before you invest. Practice creating an online course, test out the learner experience yourself, and see how easy it will be to manage your course in the WordPress admin. Install your favorite plugins & themes to test compatibility. Try LifterLMS for $1 now.
  • Another way to test LifterLMS out is to see what the student experience is like. Take a free course on how to build a LifterLMS website in 20 minutes. Take a Free Course now.

Scaling LifterLMS From A Simple Online Course

LifterLMS is incredibly flexible, customizable and scalable. It can be used for a simple one course website, and it can also be used as a course marketplace or multi instructor online school.

The plugin is lightweight enough to handle niche sites with low course enrollments, while also powering huge universities and employee training in Fortune 500 corporations. We’ve even worked with a site that has over 730,000 course enrollments.

Unlike hosted LMS software where you would pay increasing monthly fees for access and growth, LifterLMS does not charge you more per course. LifterLMS also does not charge you more per instructor or per student or based on your revenue.

Whether you are going big or keeping it small, LifterLMS scales to meet your needs for online courses, memberships, training portals, or remote schools.

LifterLMS in Action

  • Success Stories — Discover these amazing stories and accomplishments from our community of course creators.
  • Showcase — Check out these websites using LifterLMS

What Others Are Saying About LifterLMS

“I’ve used a number of course creation and delivery platforms over the years. And they were all fine… right up to the day when they weren’t. The trouble is, they all want you to package and manage your course the way THEY think you should do it. THEIR feature set. THEIR way to do it. Now I host all my courses on LifterLMS. TOTALLY different experience, because I’m free to do things MY way. I’ve never yet hit a wall where LifterLMS didn’t enable me to do things the way I wanted. Love it! Great support and community too.”

Nick Usborne, Teacher, Entrepreneur serves more than 30,000 members, so it’s no small challenge to migrate to a new membership plugin. We spent more than a year carefully evaluating dozens of LMS and membership plugins before we finally discovered LifterLMS (a membership plugin and LMS plugin combined into one). It was the only plugin that checked all the boxes for our needs for course creation and membership functionality. And the LifterLMS team also shares our passion for creating better online learning experiences. In particular, we deeply resonate with their goal of restoring the human touch to online learning—something that is absent from most online courses today.”

Shawn Hesketh, Owner, WP101

“As a former School Teacher, professional User Experience Designer, and current online course creator – I can honestly attribute much of our success to LifterLMS and it’s consideration for multiple learning modalities, the LMS UI/UX out of the box, and natural student Engagement opportunities. In less than 10 months we’ve gone from $0 to $300K in revenue with LifterLMS playing a huge part in that!! I’m looking forward to everything that comes next from the creators of LifterLMS!!”

Sarah Lorenzen, Teacher, Entrepreneur

“LifterLMS has been the best decision we have made towards the build out of our course library, online Learning Management System site, and community. The breadth and depth of what LifterLMS offers in a few WordPress plugins exceeds anything else we evaluated as it includes: easy course construction, integrated eCommerce, community capabilities, gamification and the support for delivery of 1-on-1 coaching collaboration services. Lifter also has pre-built integrations with other key WordPress technologies we wanted to use. LifterLMS has attracted a solid community and support network of leading experts to help guide anyone who wants to transform the world or their industry with online training. Chris and the Lifter team are real people, and they care.”

Michael Wolf, CEO, emPowering NOW LLC (Golden XPR)

“I bought/installed LifterLMS yesterday then spent the day having a blast! Two years ago I started writing a book, which morphed into wanting to present the material online in a more interactive way. I started my website from scratch in January and installing the WordPress LMS plugin was a milestone moment! A milestone moment that turned out to be one joy right after the other! I’m always amazed when something is made easy! The LifterLMS product is amazing!! Power to the people! Really quite extraordinary to have something so helpful be able to be in the hands of regular folk.”

Margot Worthy, Author, Teacher

Join Our Growing Community of Education Entrepreneurs

When you download LifterLMS, you join a thriving community of education entrepreneurs, course creators, developers, LMS professionals, and WordPress enthusiasts.

We’re one of the fastest growing open source eLearning communities online, and everyone that is seeking to build a sustainable online course business is welcome.

Join the LifterLMS VIP Facebook group so you can:

  • check out what other LifterLMS users and course creators are up to, and
  • ask questions and support fellow course creators

We also have an engaged LifterLMS Slack community with live developer office hours if you’d prefer to connect in Slack.

Contribute to LifterLMS

Are you a developer interested in contributing to LifterLMS? Visit the LifterLMS GitHub Repository to find out how to support this fully open source WordPress LMS software.

Want to add a new language to LifterLMS? Swell! You can contribute language translations to the LMS at

The mission of LifterLMS is to democratize education in the digital classroom. Our vision is to lift up others through education. LifterLMS helps you ACCELERATE.

What Should You Do Next?

Install the free LifterLMS plugin on your website, then …

Try out all the premium add-ons for $1 by signing up >>HERE<<



  • Infinitely customizable course catalog layouts: shown with course title, featured image, and instructor information.
  • View a single course with customizable content including access plans, difficulty, instructor, and lesson syllabus.
  • Edit courses in the WordPress block editor to add pricing tables, progress, outline, and more content.
  • Use the interactive Course Builder to structure your course, sections, lessons, quizzes, assignments and more.
  • Dashboard for course creators in the WordPress admin: an overview of recent statistics and quick links to common admin screens.
  • Advanced reporting for every learner so admins can track an individual students's course progress, membership, engagements, and achievements.
  • Clean and organized plugin settings to help you quickly and easily set up your course or membership site.
  • Detailed sales and enrollment reporting with built-in time periods or custom fields to filter by term, student, course, and membership.
  • Setup Wizard to help you install and configure your new online course website with LifterLMS in 5 simple steps.


This plugin provides 18 blocks.

  • My Account Outputs the login, registration, dashboard, profile and reset password templates.
  • LifterLMS Register Displays the LifterLMS registration form. If a user is already logged in, nothing is displayed.
  • Course Progress with Continue Button Display a progress bar with continue button for a specific course. Renders only for enrolled students.
  • My Achievements Outputs achievements using the achievement loop templates.
  • Courses Displays a loop of LifterLMS Course "Tiles" as displayed on the default "Courses" page.
  • Course Syllabus Display the Course Syllabus for a specific course.
  • Course Meta Information Display all meta information for a course.
  • Course Reviews Display reviews and review form for a LifterLMS Course.
  • Pricing Table Outputs a LifterLMS Pricing table (like those found on a course or membership page) for a course or membership outside of a course or membership. Useful if you want to create custom sales pages.
  • LifterLMS Login Displays the LifterLMS login form. If a user is already logged in, nothing is displayed.
  • Checkout Outputs the checkout page for purchasing courses and memberships in LifterLMS.
  • Course Author Display the Course Author’s name, avatar, and (optionally) biography for a specific course.
  • Course Prerequisites Display a notice describing unfulfilled prerequisites for a course.
  • Access Plan Button Outputs a button which links to the purchase page for a LifterLMS access plan. Useful if you’re creating custom sales pages for courses or memberships.
  • Course Outline Outputs the course outline as displayed by the widget of the same name. Can show full course outline or just the current section outline. Setting the Outline Type to Current Sections refers to the section that contains the next uncompleted lesson for current student. If the student is not enrolled then the first section in the course will be displayed.
  • Memberships Display a loop of LifterLMS Membership "Tiles" as displayed on the default "Memberships" page.
  • Certificate Title Displays the title of a certificate.
  • LifterLMS Link Add dynamic LifterLMS links to navigation menus.


Minimum System Requirements

LifterLMS Requires

  • PHP 7.4 or later
  • WordPress 5.6 or later
  • MySQL 5.6 or later

Visit our full system requirements for additional information.

Automatic Installation

The simplest way to install LifterLMS is through your existing WordPress site’s admin. Let WordPress handle file transfers for you – you’ll never need to leave the web browser or admin panel.

  1. Log in to your WordPress dashboard
  2. Navigate to Plugins -> Add New
  3. In the search field, type “LifterLMS” and click “Search Plugins”
  4. Once you’ve located LifterLMS, click “Install Now”
  5. Once installation is complete, click “Activate”

Manual Installation

To manually install LifterLMS, you’ll need to download the zip file using the “Download” link on this screen. Then, use FTP to manually upload the unzipped plugin folder to the proper plugins directory on your webserver.

Please see this WordPress Codex document for full instructions on Manual Plugin Installation.

Setup Wizard

After installation, LifterLMS launches a friendly (and super quick) Setup Wizard.

This wizard helps you configure LifterLMS so you can get to the fun stuff – like creating your courses – as quickly as possible.

The wizard includes a few sample courses you can import if you want to see some examples before you start creating your own content.

You can return to the setup wizard at any time by following these steps.


Where do I buy add-ons or bundles for my LifterLMS eLearning Website?

You can explore the individual learning management system add-ons here or save BIG with a bundle

How do I troubleshoot issues with my LMS website?

First, make sure that you’re running the latest version of LifterLMS. And if you’ve got any other LifterLMS plugins active on your site, make sure those are running the most current version as well.

The most common issues we see are either plugin conflicts, theme conflicts, or outdated servers. You can test if a plugin or theme is conflicting by manually deactivating other plugins until just LifterLMS is running on your site. If the issue persists from there, revert to the default Twenty Fifteen theme. If the issue is resolved after deactivating a specific plugin or your theme, you’ll know that is the source of the conflict. If it is a hosting issue, contact your web host and make sure they’re running the most current version of PHP.

Also be sure to check out the official LifterLMS Knowledge Base.

How do I ask a question about my online course website?

Users of the free LifterLMS should post their questions here in our support area. If you find you’re not getting support in as timely a fashion as you wish, you might want to consider purchasing a product from LifterLMS so you can access the LifterLMS support team.

If you’re already a LifterLMS customer, you can simply log into your account and contact the support team directly on the LifterLMS website. We can provide a deeper level of support in there and address your needs on a daily basis during the work week. Generally, except in times of increased support loads, we reply to all comments within 12 business hours.

LifterLMS is awesome! Can you set up my online course site for me?

LifterLMS offers technical support, but we do not offer custom website development services. However, we do recommend third party LifterLMS Experts who can help with web design, web development, instructional design or marketing for a fee. Click here to visit the LifterLMS Experts page.

I’m interested in purchasing add-ons for my WordPress LMS website, but I have a few questions first.

If you’re not finding your questions answered here or on our website, you can ask your presales questions through this contact form. You can also connect live with a member of our team here.

What add-ons are available for LifterLMS, and where can I read more about them?

You can find a full list of official LifterLMS Add-ons here

I have a feature idea. What’s the best way to tell you about it?

We care about your feature ideas and what you have to say. You can request a feature, vote on existing feature requests, and checkout the product roadmap.

Do you have any training for building an online course website?

Be sure you’ve taken the free tutorial training video course: How to Create an Online Course with LifterLMS. We also encourage you to get to know us by signing up for a $1 temporary 30 Day website on our servers which comes with the core LifterLMS plugin all our add-ons intalled. This demo allows you to test drive all the add-ons before you invest. Check it out here: Try LifterLMS for $1.

I’m interested in contributing to LifterLMS, how can I start?

LifterLMS is an open source project. We manage our team, developers, issues, and code on GitHub.

We welcome contributions of all kinds, anyone can contribute even if you don’t write code! Check out our Contributor’s Guidelines to get started.

I found a security vulnerability or issue, how can I report it to the team?

The LifterLMS team takes security issues and vulnerabilities very seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions.

Please contact to report a security vulnerability.

You can review our full security policy at


سپتامبر 20, 2023
I have experience with the other very popular competitor in the LMS field. apart from the fact that it comes with tons of features out of the box and for free, as a developer I acknowledge that LifterLMS comes with very clean done, very good documentation and easy of customization. I am an experienced WordPress developer and I managed to develop a highly customized course platform with LifterLMS just by following WordPress standards and search the plugin code for the relevant hooks, classes and functions. It was an extremely smooth experience.
سپتامبر 18, 2023
Wow! I am really impressed and grateful for the support the Lifter LMS Team offers. The patience, kindness and willingness to answer my questions has been an incredible God-Send! Their Team is upbeat and community oriented. Their product as far as I’ve experienced also falls into excellence. I have spent months and months intensely researching different online course options (affordable, and out of desperation- even expensive) and I really do believe Lifter LMS the best great thing going on! I would recommend all they offer to anyone debating whether to do some other plug in/platform or Lifter LMS!! Lifter LMS does Rock It!😊
سپتامبر 8, 2023
I have extensively tested numerous LMS platforms, exploring both SaaS options like Teachable and Thinkific, as well as WordPress plugins like Sensei, LearnDash, and TutorLMS. From my own experience, LifterLMS emerges as the ultimate winner, boasting a plethora of top-notch features, impeccable code quality, rapid development, and exceptional support.
سپتامبر 7, 2023
LMS provides advanced functionality (I have $360/year plan) and support team is great answering and solving all doubts in less than 24 hours
Read all 319 reviews

Contributors & Developers

“LifterLMS – WordPress LMS Plugin for eLearning” is open source software. The following people have contributed to this plugin.


“LifterLMS – WordPress LMS Plugin for eLearning” has been translated into 23 locales. Thank you to the translators for their contributions.

Translate “LifterLMS – WordPress LMS Plugin for eLearning” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


v7.3.0 – 2023-08-08

Updates and Enhancements

  • When a notice is shown for an access plan on the course edit screen (e.g. When using the WooCommerce integration and no product has been associated to the access plan.) Also display a warning icon next to the access plan title.
  • Made sure only who can view_others_lifterlms_reports will be able to see the analytics widget content in the WordPress admin.
  • Better rounding of float values on some reporting screens.
  • Avoid creating a post revision when cloning a course/lesson.
  • When creating pages via llms_create_pages(): strip all tags from the page title and slash the page data prior to inserting the page in the db via wp_insert_post() to prevent slashes from being stripped from the page title.
  • Updated the WordPress tested version up to 6.3.
  • Improved compatibility with the Divi theme by fixing an issue with the quiz attempt result clarifications not being visible when the Divi option Defer jQuery And jQuery Migrate was enabled. #2470

Bug Fixes

  • Fix spacer block when creating new certificate templates in WP 6.3.
  • Fixed PHP Warning when no course/membership catalog page was set or if the selected page doesn’t exist anymore. #2496
  • Don’t include WordPress default sidebar.php template when using a block theme. #2488
  • Updated Kazakhstani Tenge’s currency symbol. #2475
  • Make the dashboard widget visible only if the current user has LMS Manager capabilities. #2500
  • Fixed issue with LifterLMS Navigation Link block and block visibility settings. #2474
  • Use student dashboard as default value for navigation link block. #2465
  • Fixed typo in a function name that could potentially produce a fatal. Thanks @kamalahmed!

Developer Notes

  • Added the parameter $tab (ID/slug of the tab) to the lifterlms_reporting_tab_cap filter hook. Thanks @sapayth! #2468
  • Added new filter hook llms_can_analytics_widget_be_processed that will allow to filter wheteher or not an analytics widgegt can be processed/disoplayed.
  • Added new filter llms_install_get_pages.
  • Added new public static method LLMS_Admin_Dashboard_Widget::get_dashboard_widget_data().
  • Added llms_dashboard_checklist and llms_dashboard_widget_data filters to adjust dashboard content. #2491

Updated Templates

v7.2.1 – 2023-06-13

Updates and Enhancements

v7.2.0 – 2023-06-07

New Features

  • Added LLMS_ASSETS_VERSION constant for cache busting.
  • Add course builder explainer video and lesson IDs.
  • Add new dashboard widget.
  • Added query to remove order comments on plugin uninstall when the constant LLMS_REMOVE_ALL_DATA is set to true. #2322
  • Added support for showing multiple difficulties when using Gutenberg Editor. #2433
  • Add shortcode wrapper blocks.
  • Added new navigation link block.
  • Added llms_is_editor_block_rendering helper function.
  • Added llms_is_block_editor helper function.

Updates and Enhancements

  • Adjusted llms_modify_dashboard_pagination_links_disable filter to return false only on Dashboard page.
  • Updates LifterLMS REST to v1.0.0-beta.27.
  • Raised the minimum support WordPress core version to 5.9.
  • Updates LifterLMS Blocks to 2.5.0.

Bug Fixes

  • Fixed LifterLMS specific block templates not correctly working on Windows file system.
  • Added function_exists check for llms_blocks_is_post_migrated().
  • Update so dismissed notifications don’t remain on viewport top layer.
  • Made sure to always enqueue iziModal assets when rendering achievements cards.

Developer Notes

  • Added new filter hook llms_builder_settings to filter the settings passed to the course builder.

Updated Templates

v7.1.4 – 2023-04-28

Bug Fixes

  • Fixed an issue that prevented the correct saving of the course length when using the block editor. #2426

Developer Notes

  • Fixed an issue running unit tests on PHP 7.4 and WordPress 6.2 expecting render_block() returning a string while we were applying a filter that returned the boolean true.

v7.1.3 – 2023-04-25

Updates and Enhancements

  • Wrapped some elements in HTML for better styling.
  • In Course and Lesson settings, replaced outdated URLs to WordPress’ documentation about the list of sites you can embed from.
  • Updated few Italian province names. #2256
  • Avoid use of inline styles in course reviews. #410

Bug Fixes

  • Fixed “Unsaved Data” warning when adding vouchers. #2394
  • Fixed “Course Length” and “Difficulty” fields visible in the Block Editor which is meant for Classic Editor. #2174
  • Added missing $post_id parameter to the the_title filter hook when retrieving a form title. #2332
  • Added missing Armed Forces options to the US States dropdown in the Billing information form. #2325
  • Using strpos() instead of str_starts_with() for compatibility. #2415

Developer Notes

  • Added helper function llms_get_floats_rounding_precision() to return precision for rounding off floating values and filter hook lifterlms_floats_rounding_precision to filter precision value in reporting. #2237
  • Added lifterlms_dashboard_memberships_not_enrolled_text filter hook to allow altering the message displaying on the student dashboard when the current user is not enrolled in any memberships. #2396
  • Added lifterlms_dashboard_courses_not_enrolled_text filter hook to allow altering the message displaying on the student dashboard when the current user is not enrolled in any courses. #2396

Updated Templates

v7.1.2 – 2023-03-27

Updates and Enhancements

  • Making the LifterLMS logo link to the site.

Bug Fixes

  • Fix bug in llms_featured_img function when featured image file is not available. #2381
  • Fixed manual certificates awarding broken when using the block editor. #2386

v7.1.1 – 2023-03-13

Bug Fixes

  • Fixed notice display on WooCommerce dashboard pages.
  • Fixed View button URL when using WP in subdirectory.
  • Fixed blank System Report’s copy for Support.

v7.1.0 – 2023-03-02

New Features

  • Added lessons count column on the Courses post list table.
  • Added a new Dashboard page under the LifterLMS menu in the admin, whicih includes recent activity widgets and links to useful resources.
  • Added link to the course builder for each lesson on the Lessons post list table. Also added a link to either edit or add a quiz.

Updates and Enhancements

  • Updates LifterLMS Helper to v3.5.0.
  • Make the LifterLMS menu meta box initially available on Appearance -> Menus.
  • Updates LifterLMS REST to v1.0.0-beta.26.

Bug Fixes

  • Catch possible fatal when trying to display a “broken” basic notification and set its status to ‘error’ so that it’ll be excluded from the next fetches.
  • Catch possible fatal when sending notification emails and in that case remove from the queue the item that produced it.
  • Fix cloned course retaining original course’s ID in some restriction messages.
  • Fixed possible admin notices duplication when activating/deactivating or installing add-ons from the page Add-ons & more.
  • Avoided setting the llms-tracking cookie when there are no events to track.
  • Updated styles across the entire plugin.
  • Updated Add-ons & more list to hide old (uncategorized) products.


  • Deprecated methods LLMS_Admin_Notices_Core::sidebar_support() and LLMS_Admin_Notices_Core::clear_sidebar_notice().
  • Removed notice for theme sidebar support.

Developer Notes

  • The function llms_is_user_enrolled() will always return false for non existing users. While, before, it could return true if a now removed user was enrolled into a the given course or membership.
  • Added new LLMS_Course::get_lessons_count() method. It can be used in place of count( LLMS_Course::get_lessons() ) to improve performance.
  • Fixed compatibility with PHP 8.1 by using an empty string as menu parent page for the course builder submenu page in place of NULL.
  • Avoid passing null values to urlencode() and urldecode() that would produce PHP warnings on PHP 8.1+.
  • Added $autoload parameter to the function llms_get_student.

Performance Improvements

  • Improve performance when querying notifications via the LLMS_Notifications_Query and there’s no need to count the total notifications found, or for pagination information.
  • Immediately return false when running llms_is_user_enrolled() on logged out or no longer existing users, avoiding running additional DB queries e.g. when displaying course or membership catalogs for visitors.
  • Skip counting the total transactions found when retrieving the last or the first transaction for an order.

Updated Templates

  • templates/admin/reporting/nav-filters.php
  • templates/admin/reporting/reporting.php
  • templates/admin/reporting/tabs/courses/course.php
  • templates/admin/reporting/tabs/memberships/membership.php
  • templates/admin/reporting/tabs/quizzes/quiz.php
  • templates/admin/reporting/tabs/students/student.php
  • templates/admin/reporting/tabs/widgets.php
  • templates/checkout/form-confirm-payment.php

v7.0.1 – 2022-11-14

Bug Fixes

  • Fixed a fatal error encountered on the payment confirmation screen when attempting to confirm a non-existent order. #2093
  • Use sanitize_file_name() in favor of sanitize_title() for generating the file name of reporting table export files. #1540
  • Resolved conflict encountered on post edit screens when using LifterLMS, Yoast SEO, and the Classic Editor plugin. #2298

Developer Notes

  • A stub method, get_title() has been added to the LLMS_Abstract_Exportable_Admin_Table abstract class. This method should be defined by any extending classes and will throw a _doing_it_wrong() error when undefined.
  • Added new filter to allow customizing which user roles are affected by the LLMS_Admin_Menus::instructor_menu_hack function.

v7.0.0 – 2022-10-04

New Features

  • Added handling for admin settings options that store their option values in a nested array.
  • Added new AJAX checkout and payment source switching endpoints for payment gateways to utilize instead of the preexisting synchronous form submission methods.
  • On purchase completed retrieve the redirection URL from the INPUT_POST ‘redirect’ variable, if no ‘redirect’ variable is passed via INPUT_GET. The INPUT_POST ‘redirect’ variable comes from the new checkout form’s hidden field ‘redirect’ populated with LLMS_Access_Plan::get_redirection_url(). #2229

Updates and Enhancements

  • Full Site Editing: [BREAKING] The wrappers in the custom header and footer templates have been changed to the semantic HTML tags <header> and <footer> in favor of default <div> tags. #2281
  • When an order post is restored from the trash its post status will now be “llms-pending” in favor of the default “draft” status.

Bug Fixes

  • Fixed unclosed checkout div wrapper on empty cart. #2277
  • Don’t attempt to lookup the default payment gateway from user meta data.
  • Fixed required fields duplication when the form is a child of a .wp-block-column element. #2134
  • Fixed an issue that prevented disabling the access plan’s option, Override Membership Redirects, once enabled. #2234
  • Disabled scroll-behavior: smooth on checkout screen to address form element validity checking issues on Chromium-based browsers. #2206


  • Deprecated LLMS_Controller_Orders::switch_payment_source() in favor of LLMS_Controller_Checkout::switch_payment_source().
  • Deprecated the lifterlms_update_option_{$type} action in favor of the llms_update_option_{$type} filter.
  • Method LLMS_Controller_Orders::confirm_pending_order() is deprecated in favor of LLMS_Controller_Checkout::confirm_pending_order().
  • Method LLMS_Controller_Orders::create_pending_order() is deprecated in favor of LLMS_Controller_Checkout::create_pending_order().
  • Method LLMS_Controller_Orders::switch_payment_source() is deprecated in favor of LLMS_Controller_Checkout::switch_payment_source().
  • Passing jQuery selections into the window.LLMS.Spinner functions is deprecated. Use JS Elements or selection strings parseable by document.querySelector() instead.
  • Deprecated hook llms_{$method}_title in favor of llms_{$method}_refund_title.

Developer Notes

  • Added admin settings helper function, llms_get_dashicon_link(), intended to enable the addition of external resource helper links to settings field descriptions.
  • The LLMS_Student object can be instantiated as an empty object and bypass current user autoloading. In the future this may affect integrations using the lifterlms_new_pending_order action hook which will receive an “empty” student object during order setup by gateways utilizing new AJAX-powered checkout endpoints.
  • Added a filter, llms_gateway_{$this->id}_logging_enabled, which will allow force enabling/disabling of gateway logging functions.
  • Improved payment gateway secure string logging by adding a method, add_secure_string() allowing developers to add secure strings during runtime without the necessity of registering the strings using filters.
  • Introduces new function llms_is_option_secure() for determining if an “secured” option is defined in a “secure” manner.
  • Implemented new gateway feature: modify_recurring_payments. #2176
  • Added two new parameters to LLMS_Access_Plan::get_redirection_url() – $encode to optionally get a raw (not encoded) URL. – $querystring_only to optionally get only the redirect URL if set via NPUT_GET variable.
  • Added new parameter $querystring_only to the filter hook llms_plan_get_checkout_redirection.
  • Admin settings fields now display after_html for additional field types which support desc.
  • The CSS for .llms-spinning and .llms-spinner elements is no longer loaded as part of the lifterlms.css and admin.css files, instead it is loaded dynamically when window.LLMS.Spinner functions are called. In some cases CSS overrides to these elements which relied on CSS rule load order may no longer successfully override the default CSS rules. These overrides may need to be updated to have more specific selectors in order to ensure the overrides are retained.
  • The Javascript object, window.LLMS.Spinner, has been converted to a module accessible from the same variable.
  • The window.LLMS.Spinner methods now accept JS Elements and selector strings parseable by document.querySelector() in addition to jQuery selections.
  • Added new filter llms_transaction_can_be_refunded enabling custom refund restrictions to be applied to a transaction.

Updated Templates

Read the full changelog