LifterLMS

LifterLMS Version 7.0.0-alpha.3

  • Add max-length sanitization to admin settings which specify a max length.
  • Fixed invalid user links on admin order screens when viewing incomplete orders missing a registered user.
  • Added new function llms_is_secure().
  • Added lifterlms- and llms- as automatically stripped prefixed when using llms_strip_prefixes().
  • Added new temporary metadata, temp_gateway_ids to orders for use by gateways when switching payment methods.
  • Moved LLMS.Spinner Javascript into an @lifterlms/components module and removed its reliance on jQuery.
  • Disabled scroll-behavior: scroll on checkout screens to address a validity reporting issue on Chromium-based browsers.

LifterLMS Version 6.8.0

Bug Fixes
  • Fixed Hello Theme’s word-break and spacing for quiz answer options. #2132
  • Fixed text/label alignment in Twenty-Twenty-Two theme.
  • Fixed regression introduced in version 6.3.0 which prevented the Courses nav item from being customized in the BuddyPress profile nav menu. #2142
Developer Notes
  • Added new filter llms_product_get_restrictions hook to filter the list of restrictions placed on a given product. #2201

LifterLMS Version 7.0.0-alpha.2

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.
Bug Fixes
  • Don’t attempt to lookup the default payment gateway from user meta data.
  • Fixes Hello Theme’s word-break and spacing for quiz answer options. Also fixes text/label alignment in Twenty-Twenty-Two Theme. #2132
Deprecations
  • 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().
  • 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.
  • Implemented new gateway feature: modify_recurring_payments. #2176
  • Admin settings fields now display after_html for additional field types which support desc.
  • Added new filter llms_transaction_can_be_refunded enabling custom refund restrictions to be applied to a transaction.
Updated Templates

LifterLMS Version 7.0.0-alpha.1

New Features
  • Added new AJAX checkout and payment source switching endpoints for payment gateways to utilize instead of the preexisting synchronous form submission methods.
Bug Fixes
  • Don’t attempt to lookup the default payment gateway from user meta data.
Deprecations
  • Deprecated LLMS_Controller_Orders::switch_payment_source() in favor of LLMS_Controller_Checkout::switch_payment_source().
  • 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().
  • Deprecated hook llms_{$method}_title in favor of llms_{$method}_refund_title.
Developer Notes
  • 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.
  • 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.
  • Implemented new gateway feature: modify_recurring_payments. #2176
  • Added new filter llms_transaction_can_be_refunded enabling custom refund restrictions to be applied to a transaction.
Updated Templates

LifterLMS Version 6.6.0

PHP Minimum Required Version Change
  • Raised the minimum supported PHP version to 7.4.
WordPress Minimum Required Version Change
  • Raised the minimum supported WordPress core version to 5.6.
New Features
  • Added support for WordPress 6.0.
Bug Fixes
  • Fixed the ability for 3rd party plugins to use the lifterlms_external_engagement_handler_arguments and lifterlms_external_engagement_query_arguments filters.
  • Added automatic exclusion of “no cache” pages from the WP Engine server-side cache when using “pretty” permalinks. #1717
  • Stop subtracting LifterLMS order note comments from global comment counts via the wp_count_comments filter on WordPress 6.0 and later. See related WordPress Trac ticket #19901

LifterLMS Version 6.5.0

Upcoming PHP Version Requirement Change

This will be the last version of LifterLMS to support PHP 7.3. The next version of LifterLMS, expected before the end of May 2022, will raise the minimum supported PHP version to 7.4. PHP 7.3 reached its official end of life on December 6, 2021. If you are still using PHP 7.3 please upgrade to PHP 7.4 or later as soon as possible.

Updates and Enhancements
Bug Fixes
  • Students who have already completed a lesson will now automatically bypass the lesson’s drip restrictions. #1835
  • Properly encode certificate JS localization data. #2140
Developer Notes
  • Added a new filter, llms_lesson_drip_bypass_if_completed, which controls the automatic bypass of drip restrictions for completed lessons. #1835
  • Allow avoiding error return when updating an LLMS_Post_Model post meta with the same value as the one stored in the database. #909

LifterLMS Version 6.4.0

Upcoming PHP Version Requirement Change

LifterLMS will drop support for PHP 7.3 by May, 2022. This will raise the minimum supported PHP version to 7.4. PHP 7.3 reached its official end of life on December 6, 2021. If you are still using PHP 7.3 please upgrade to PHP 7.4 or later as soon as possible.

New Features
  • Any “secure” payment gateway options will be automatically masked when written to debug log files.
Updates and Enhancements
  • When building notification content, only parse merge codes used in the notification. #1465
  • Improved checks related to the number of quiz attempts allowed for each student.
  • Prevent browser page caching on quizzes. #2092
Bug Fixes
  • Allowed classes extended from the manual payment gateway class to display payment instructions.
  • Allowed the LLMS_Shortcode_User_Info class to be filtered by the llms_load_shortcodes and llms_load_shortcode_path hooks.
  • Stop using the deprecated FILTER_SANITIZE_STRING constant.
  • Fixed an issue that caused shortcodes to not be replaced in some engagement emails. #2070
  • Improve core forms detection so to exclude duplicates. #2052
  • Added Aosta (AO) to the list of Italian provinces. #2098
  • Fixed a compatibility issue with the Elementor Pro Theme Builder encountered on course and membership catalogs. #2111
  • Fixed an issue where merge codes in reusable blocks on certificate templates were not replaced when the template was displayed or when the certificate was awarded and published. #2058
  • Fixed an issue with OceanWP and Twenty Twenty themes where the Terms and Conditions checkbox was displayed incorrectly. #1938
Developer Notes
  • Added a new filter, llms_secure_strings allowing developers to register strings that should be automatically masked when written to log files.
  • Added new filter llms_no_cache to control whether or not LifterLMS will send nocache headers. #2092
  • Added new filter llms_template_loader_restricted_priority to control the priority of the template_include hook callback used to load restricted content single templates.

LifterLMS Version 6.3.0

Upcoming PHP Version Requirement Change

LifterLMS will drop support for PHP 7.3 by May, 2022. This will raise the minimum supported PHP version to 7.4. PHP 7.3 reached its official end of life on December 6, 2021. If you are still using PHP 7.3 please upgrade to PHP 7.4 or later as soon as possible.

New Features
  • Automatically add student’s dashboard endpoints to the BuddyPress profile nav. #627
Updates and Enhancements
  • Upgraded LifterLMS Blocks to v2.4.2.
  • Updated LifterLMS Helper to v3.4.2.
Bug Fixes
  • Fixed paged queries in student dashboard not working when using plain permalinks.
  • Fixed an issue that prevented searching students in some admin areas when WordPress was installed in a subdirectory. #2096
  • Fixed lesson’s comments status not reflecting default global setting when created with the course builder. #2099
Deprecations
  • Deprecated LLMS_Integration_Buddypress::achievements_screen() method with no replacement.
  • Deprecated LLMS_Integration_Buddypress::certificates_screen() method with no replacement.
  • Deprecated LLMS_Integration_Buddypress::courses_screen() method with no replacement.
  • Deprecated LLMS_Integration_Buddypress::memberships_screen() method with no replacement.
  • Deprecated LLMS_Integration_Buddypress::remove_courses_paginate_links_filter() method with no replacement.
  • Deprecated LLMS_Integration_Buddypress::modify_courses_paginate_links() method with no replacement.
Developer Notes
  • Added llms_get_paged_query_var() function that returns the page number query var for the current request.
  • Added new filter llms_buddypress_profile_endpoints to control the LifterLMS endpoints to be added to the BuddyPress profile.
  • Added new filter llms_buddypress_min_nav_item_slug to control the LifterLMS main BuddyPress’ nav item slug.
  • Added new filter llms_buddypress_min_nav_item_label to control the LifterLMS main BuddyPress’ nav item label.
  • Added new filter llms_buddypress_min_nav_item_position to control the LifterLMS main BuddyPress’ nav item position.

LifterLMS Version 6.2.0

Updates and Enhancements
  • Changed the llmsStudentsSelect2() JavaScript function to use the LifterLMS REST API “list students” endpoint instead of the LLMS_AJAX_Handler::query_students() PHP function.
  • Upgraded LifterLMS Blocks to v2.4.1.
Bug Fixes
  • Fixed issue with hidden checkboxes on LifterLMS forms.
  • Fixed a compatiblity issue with the Divi Theme Builder ignoring access restrictions when using template with custom body. #2063
  • Fixed an error encountered on the Engagements > Certificates screen when using the BuddyBoss theme. #2080
Deprecations
Developer Notes
  • Added new filter llms_template_loader_priority to control the priority of the template_include hook callback used to load restricted content templates.