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.
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
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