Added an option to disable the Tainted Content Protection feature, that could conflict with some themes or plugins altering the HTML of the certificate after its loading via JavaScript.
Updates and Enhancements
When the save certificate button doesn’t include the expected icon to turn into a spinner show a “Loading…” text while creating the PDF.
Bug Fixes
Fixed compatibility with BuddyBoss theme when trying to download a certificate’s PDF.
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.