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.
Deprecations
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 LLMSNotificationsQuery 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.
Fixed incorrect HTML code for single Add On displayed on the LifterLMS > Add-ons & more screen.
Developer Notes
Added new paramater $force, false by default, to the static method LLMS_Helper_Keys::activate_keys(). It’ll allow to force a remote call instead of using ccached results.
Performance Improvements
Cache results from the activate keys calls to the LifterLMS license API. This prevents issues where sites are pinging the license server too often, specifically if they are “cloned” sites.