LifterLMS Version 3.4.1

  • Password strength meter now functions correctly when using the [lifterlms_registration] shortcode
  • Ensure open registration with required voucher prevents registration with invalid vouchers
  • Lesson completion via quiz completion only recorded the first time the quiz is completed
  • Fix issue preventing membership catalog from obeying the catalog’s ordering settings
  • Prevent duplicate engagements from being triggered
  • Admin tables can display percentages as a progress bar!
  • Students reporting table displays overall progress as a progress bar
  • Refactored frontend assets class to allow better management of inline scripts

LifterLMS Version 3.4.0

  • Enrollment for free access plans has improved based on your feedback. For more information see https://lifterlms.com/docs/checkout-free-access-plans/
  • Upgraded Student Management Table for courses and memberships:
  • Allow searching students by name / email
  • Allow filtering of students by current status
  • Allow sorting of students by name, user id, status, and enrollment updated date
  • Added student’s grade to the table (courses only)
  • Table pagination allows skipping to the first and last pages
  • Student names link to full student reporting screen
  • Student IDs added to the table. ID links to the WP User Edit screen which was previously accessible by clicking the student’s name
  • Utilizing improved database queries for displaying data on the table
  • One-click bulk enrollment of all current members of a membership into an auto-enrollment course. More info here
  • Students reporting table pagination can now jump to first and last page
  • Students reporting table pagination now displays current page and total number of pages
  • Added new class LLMS_Student_Query which is modeled, loosely, off of the WP_User_Query and allows for querying student data in relation to courses
  • LLMS_Admin_Table abstract now supports filtering and jump to first and last page pagination options
  • llms_get_enrolled_students now utilizes LLMS_Student_Query and resolves a bug where some users returned by this query would be returned with the incorrect status.
  • Ensure LLMS_Course::has_prerequisite( 'course' ) & LLMS_Course::has_prerequisite( 'track' ) always return booleans
  • Made a small performance tweak for courses without audio / video embeds
  • Fix coupon expiration dates check to be more i18n friendly
  • Update LLMS_Coupon class to utilize 3.3.0 class property enhancements
  • added llms_current_time, a pluggable wrapper for current_time() to enable easier unit testing of date-related functions
  • Shortcodes within course restriction messages are now handled properly to output their intend content rather than the raw shortcode
  • Ensure the Page Attributes area is available on lessons so WordPress 4.7 custom post type page templates can be utilized

LifterLMS Version 3.3.1

  • Tested up to WordPress core 4.7.2
  • Added new engagement triggers for Quiz completion, quiz failure, and quiz passed.
  • Refactored Lesson Completion for sanity
  • Added function llms_mark_complete() for simple programmatic completion of courses, sections, lessons, and tracks. See usage docs for more information.
  • Class function LLMS_Lesson::mark_complete() has been staged for deprecation. It will still function but developers should update code to use above function.
  • LifterLMS background updaters will now display a progress report on the admin panel to add some transparency to how the update is doing.
  • Added author support to llms_membership post type
  • Added a way to remove all LifterLMS-generated data during plugin uninstallation.
  • llms_get_post() will now work with any LifterLMS Post Model post types
  • Removed references to LLMS_Activate class which was removed back in 2.0.
  • Changed include method to session related classes for better handling via phpunit
  • Refactored some of the LLMS_Install class for reliability and test coverage
  • Changed order of table and option creation during installation. Prevents a database warning from being thrown during installation.
  • Added function for retrieving default difficulty categories added during installation
  • Added function for removing default categories added during installation
  • llms_are_terms_and_conditions_required() ensure the page id used in this function is an absint
  • Removed redundant function LLMS_Lesson::single_mark_complete_text()
  • Add css classes for buttons to be auto-width rather than the width of their containers
  • Fix ID of engagement email class. Allows some filters and actions to actually be used.
  • Properly display quiz failures as failures on the quiz results screen
  • loop/feature-image.php now works for unsupported PHP 5.5 and down
  • Fix issue with modifying section titles from within the course builder
  • Fix undefined warning resulting from admin notice “flash” being undefined on pre-existing saved notices
  • Updated template at templates/course/complete-lesson-link.php to include a few new CSS classes and utilize llms_form_field() to standardize buttons

LifterLMS Version 3.3.0

  • New course option allows displaying the video embed in place of the featured image on course tiles displayed on the course catalog screen
  • Courses can now be exported individually or in bulk. Export of a course includes all course content, sections, lessons, and quizzes.
  • Courses can now be duplicated. Duplication duplicates all course content, sections, lessons, and quizzes.
  • Upon completion of the Setup Wizard a sample course can be automatically installed.
  • Postmeta keys for Lessons and Sections which denote their relationship to their parents have been renamed for consistency, database upgrade 330 included in this release will rename the keys automatically. Read more here
  • Update to LLMS_Post_Model to allow easier programmatic definition and handling of extending class properties
  • classes extending LLMS_Post_Model can now be serialized to json and converted to arrays programmatically
  • new function llms_get_post() allows easier instantiation of an LLMS_Post_Model instance
  • Added LifterLMS Database Version to the system report