Releases: gocodebox/lifterlms
Version 6.6.0
v6.6.0 - 2022-05-23
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
andlifterlms_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
Version 6.5.0
v6.5.0 - 2022-05-11
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
- Updates LifterLMS Rest to v1.0.0-beta.25.
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
Version 6.4.0
v6.4.0 - 2022-04-19
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 thellms_load_shortcodes
andllms_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 thetemplate_include
hook callback used to load restricted content single templates.
Version 6.3.0
v6.3.0 - 2022-04-07
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
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.
Version 6.2.0
v6.2.0 - 2022-03-30
Updates and Enhancements
- Changed the
llmsStudentsSelect2()
JavaScript function to use the LifterLMS REST API "list students" endpoint instead of theLLMS_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
- Deprecated
LLMS_AJAX_Handler::query_students()
. Use the REST API list students endpoint instead.
Developer Notes
- Added new filter
llms_template_loader_priority
to control the priority of thetemplate_include
hook callback used to load restricted content templates.
Version 6.1.0
v6.1.0 - 2022-03-23
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
- Added the
{earned_date}
certificate merge code.
Updates and Enhancements
- Changed the label for the
{current_date}
certificate merge code from 'Earned Date' to 'Current Date'. - Updates LifterLMS REST to v1.0.0-beta.24.
Bug Fixes
- Fixed an issue encountered when editing an order with a completed payment plan. #2067
- Fixed access of protected LLMS_Abstract_Query properties.
Version 6.0.0
v6.0.0 - 2022-03-08
This major release of LifterLMS focuses on improving the experience of creating, designing, and managing achievements and certificates: use the block editor to design certificates, sync awards with their templates, award achievements and certificates on demand without requiring an engagement trigger, and much more. In addition, this release removes a significant number of previously deprecated classes, methods, and functions. Please read the full Breaking Changes sections for more information on removed code.
New Features
- The block editor is now enabled by default for certificates when using WordPress versions 5.8 and later.
- Existing certificates are marked as "legacy" and will continue to use the classic editor until migrated.
- To migrate a certificate, click the "Migrate Certificate" button. This will force the certificate's content into blocks.
- A number of new settings are available to certificates when using the block editor:
- Set the certificate's display (and print) size using common paper sizes such as US Letter, US Legal, A3, A4, and more.
- Set the certificate's display orientation: portrait of landscape.
- Set the certificate's inner margins.
- Set the certificate's background color.
- A new block, the Certificate Title Block, has been made available to certificates.
- The block works like a WordPress core Heading Block with added options for selecting from a few display fonts (provided by Google Web Fonts).
- The block controls the title of awarded certificates.
- Added the ability for administrators and LMS managers to edit earned certificates/achievements from the students reporting screen, as well as award new certificates/achievements to students.
- Added the ability to sync awarded certificates with the template used to generate them. #1078
- The
post_name
of earned certificate posts will be generated with a randomized 3+ character string in favor of relying on sequential numbers. - Added certificate global options for the default size of new certificates and certificate templates.
- Certificate and email template merge code buttons now include [llms-user] information shortcodes.
- Added certificate sequential ID functionality merge code.
- Added a link to return to the student dashboard when viewing an awarded certificate. #1959
- Provide additional information to hooks on the student single course reporting screen.
Updates and Enhancements
- Added new default images for use with achievements and certificates.
- The site-wide default images can be customized on the admin panel under Settings -> Engagements.
- The old default images will automatically be used for legacy certificates and can be forced by filtering
llms_use_legacy_engagement_images
. #1081
- Certificates no longer use the
header.php
andfooter.php
files from the site's theme, instead custom templates (templates/certificates/header.php
andtemplates/certificates/footer.php
) are used instead. These templates are minimal and exclude theme wrappers which reduces the visual conflicts encountered from theme wrappers, backgrounds, and more, especially when printing certificates. #463 - The achievements and certificates dashboard endpoints are now paginated. #669
- Added pagination to achievement and certificate reporting pages.
- The URL of earned user certificates has been changed from "my_certificate" to "certificate". Requests to the old url are automatically redirected to the new url, including instances where the URL slug has been translated.
- The URL of certificate template previews has been changed from "certificate" to "certificate-template".
- The certificate merge code,
{first_name}
, now outputs an empty string in favor of falling back to the user's nickname when there is no first name for the user. #1640 - The look and behavior of the certificate {{MINI_CERTIFICATE}} pop-over notification merge code now displays a placeholder preview of the certificate in favor of attempting to render a tiny version of the actual certificate. #1950
- The coupon code in the student's order details table is now wrapped in a
<code>
tag instead of an<a>
tag. #2033 - Updates LifterLMS REST to v1.0.0-beta.23.
- Updated LifterLMS Blocks to version 2.4.0.
Bug Fixes
- Delayed engagements are automatically unscheduled when the related post is deleted.
- A disabled student dashboard endpoint will no longer display the endpoint's summary on the main dashboard page. #535
- Prior to sending a delayed engagement the recipient's enrollment in the related post is verified resulting the engagement not being triggered if the recipient's enrollment has been terminated. #290
- Post search filter boxes on various post tables will now longer display a link to the selected post.
- Basic notification code is no longer loaded on the admin panel.
- Fixed the label hover on picture type quizzes in some themes. #2015
Database Migration
- A database migration is required when upgrading from versions earlier than 6.0.0. A description of the required updates can be found at https://lifterlms.com/docs/lifterlms-database-updates/#600.
Deprecations
- Public access to properties of the abstract
LLMS_Database_Query
has been deprecated.- Public access to class property
LLMS_Database_Query::$found_results
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_found_results()
. - Public access to class property
LLMS_Database_Query::$max_pages
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_max_pages()
. - Public access to class property
LLMS_Database_Query::$number_results
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_number_results()
. - Public access to class property
LLMS_Database_Query::$results
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_results()
. - Public access to class property
LLMS_Database_Query::$query_vars
. The variable as a whole cannot be publicly accessed, instead useLLMS_Database_Query::get()
andLLMS_Database_Query::set()
to read and write to the array. - The above changes were made to the abstract class
LLMS_Database_Query
but the following concrete classes that utilize the abstract are also affected by this change:LLMS_Query_User_Postmeta
,LLMS_Student_Query
,LLMS_Query_Quiz_Attempt
,LLMS_Events_Query
, andLLMS_Notifications_Query
.
- Public access to class property
- Class
LLMS_Achievement_User
is deprecated with no direct replacement.- Method
LLMS_Achievement::is_enabled()
is deprecated with no replacement. - Method
LLMS_Achievement::get_blogname()
is deprecated with no replacement. - Method
LLMS_Achievement::format_string()
is deprecated with no replacement. - Method
LLMS_Achievement::get_title()
is deprecated with no replacement. - Method
LLMS_Achievement::get_content()
is deprecated with no replacement. - Method
LLMS_Achievement::get_content_html()
is deprecated with no replacement. - Method
LLMS_Achievement::create()
is deprecated with no replacement.
- Method
- Method
LLMS_Achievements::trigger_engagement()
is deprecated in favor ofLLMS_Engagement_Handler::handle_achievement()
. - Class
LLMS_Certificate
is deprecated with no direct replacement.- Method
LLMS_Certificate::is_enabled()
is deprecated with no replacement. - Method
LLMS_Certificate::get_blogname()
is deprecated with no replacement. - Method
LLMS_Certificate::format_string()
is deprecated with no replacement. - Method
LLMS_Certificate::get_title()
is deprecated with no replacement. - Method
LLMS_Certificate::get_content()
is deprecated with no replacement. - Method
LLMS_Certificate::get_content_html()
is deprecated with no replacement. - Method
LLMS_Certificate::get_title()
is deprecated with no replacement.
- Method
- Method
LLMS_Certificates::trigger_engagement()
is deprecated in favor ofLLMS_Engagement_Handler::handle_certificate()
. - Method
LLMS_Engagements::init()
is deprecated with no replacement. - Method
LLMS_Engagements::handle_achievement
is deprecated in favor ofLLMS_Engagement_Handler::handle_achievement
. - Method
LLMS_Engagements::handle_certificate
is deprecated in favor ofLLMS_Engagement_Handler::handle_certificate
. - Method
LLMS_Engagements::handle_email
is deprecated in favor ofLLMS_Engagement_Handler::handle_email
. - Method
LLMS_Database_Query::set_found_results()
is deprecated. - Class
LLMS_Achievement_User
is deprecated with no direct replacement.- Method
LLMS_Achievement_User::has_user_earned()
is deprecated with no replacement. - Method
LLMS_Achievement_User::init()
is deprecated with no replacement. - Method
LLMS_Achievement_User::trigger()
is deprecated with no replacement. - Method
LLMS_Achievement_User::get_content_html()
is deprecated with no replacement.
- Method
- Class
LLMS_Certificate_User
is deprecated with no direct replacement.- Method
LLMS_Certificate_User::init()
is deprecated with no replacement. - Meth...
- Method
Version 6.0.0-rc.1
v6.0.0-rc.1 - 2022-03-03
New Features
- Added a link to return to the student dashboard when viewing an awarded certificate. #1959
- The block editor is now enabled by default for certificates when using WordPress versions 5.8 and later.
- Existing certificates are marked as "legacy" and will continue to use the classic editor until migrated.
- To migrate a certificate, click the "Migrate Certificate" button. This will force the certificate's content into blocks.
- A number of new settings are available to certificates when using the block editor:
- Set the certificate's display (and print) size using common paper sizes such as US Letter, US Legal, A3, A4, and more.
- Set the certificate's display orientation: portrait of landscape.
- Set the certificate's inner margins.
- Set the certificate's background color.
- A new block, the Certificate Title Block, has been made available to certificates.
- The block works like a WordPress core Heading Block with added options for selecting from a few display fonts (provided by Google Web Fonts).
- The block controls the title of awarded certificates.
-
- Added the ability to sync awarded certificates with the template used to generate them. #1078
- The
post_name
of earned certificate posts will be generated with a randomized 3+ character string in favor of relying on sequential numbers. - Added the ability for administrators and LMS managers to edit earned certificates/achievements from the students reporting screen, as well as award new certificates/achievements to students.
-
- Added certificate global options for the default size of new certificates and certificate templates.
- Certificate and email template merge code buttons now include [llms-user] information shortcodes.
- Added certificate sequential ID functionality merge code. Read more.
- Provide additional information to hooks on the student single course reporting screen.
Updates and Enhancements
- Added pagination to achievement and certificate reporting pages.
- Certificates no longer use the
header.php
andfooter.php
files from the site's theme, instead custom templates (templates/certificates/header.php
andtemplates/certificates/footer.php
) are used instead. These templates are minimal and exclude theme wrappers which reduces the visual conflicts encountered from theme wrappers, backgrounds, and more, especially when printing certificates. #463 - The achivements and certificates dashboard endpoints are now paginated. #669
- Added new default images for use with achievements and certificates.
- The site-wide default images can be customized on the admin panel under Settings -> Engagements.
- The old default images can be used by filtering
llms_use_legacy_engagement_images
. #1081
- The URL of earned user certificates has been changed from "my_certificate" to "certificate". Requests to the old url are automatically redirected to the new url, including instances where the URL slug has been translated.
- The URL of certificate temaplate previews has been changed from "certificate" to "certificate-template".
- The certificate merge code,
{first_name}
, now outputs an empty string in favor of falling back to the user's nickname when there is no first name for the user. #1640 - Updates LifterLMS REST to v1.0.0-beta.23.
- Updated LifterLMS Blocks to version 2.4.0.
- The look and behavior of the certificate {{MINI_CERTIFICATE}} pop-over notification merge code now displays a placeholder preview of the certificate in favor of attempting to render a tiny version of the actual certificate. #1950
Bug Fixes
-
- Fixed how the protected
LLMS_Notifications_Query::$found_results
property is accessed inLLMS_Abstract_Notification_Controller::has_subscriber_received()
. + Fixed how the protectedLLMS_Notifications_Query::$max_pages
property is accessed inlifterlms_template_student_dashboard_my_notifications()
.
- Fixed how the protected
- Delayed engagements are automatically unscheduled when the related post is deleted.
- Prior to sending a delayed engagement the recipient's enrollment in the related post is verified resulting the engagement not being triggered if the recipient's enrollment has been terminated. #290
- A disabled student dashboard endpoint will no longer display the endpoint's summary on the main dashboard page. #535
- Post search filter boxes on various post tables will now longer display a link to the selected post.
- Basic notification code is no longer loaded on the admin panel.
Deprecations
- Public access to properties of the abstract
LLMS_Database_Query
has been deprecated.- Public access to class property
LLMS_Database_Query::$found_results
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_found_results()
. - Public access to class property
LLMS_Database_Query::$max_pages
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_max_pages()
. - Public access to class property
LLMS_Database_Query::$number_results
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_number_results()
. - Public access to class property
LLMS_Database_Query::$results
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_results()
. - Public access to class property
LLMS_Database_Query::$query_vars
. The variable as a whole cannot be publicly accessed, instead useLLMS_Database_Query::get()
andLLMS_Database_Query::set()
to read and write to the array. - The above changes were made to the abstract class
LLMS_Database_Query
but the following concrete classes that utilize the abstract are also affected by this change:LLMS_Query_User_Postmeta
,LLMS_Student_Query
,LLMS_Query_Quiz_Attempt
,LLMS_Events_Query
, andLLMS_Notifications_Query
.
- Public access to class property
- Class
LLMS_Achievement_User
is deprecated with no direct replacement.- Method
LLMS_Achievement::is_enabled()
is deprecated with no replacement. - Method
LLMS_Achievement::get_blogname()
is deprecated with no replacement. - Method
LLMS_Achievement::format_string()
is deprecated with no replacement. - Method
LLMS_Achievement::get_title()
is deprecated with no replacement. - Method
LLMS_Achievement::get_content()
is deprecated with no replacement. - Method
LLMS_Achievement::get_content_html()
is deprecated with no replacement. - Method
LLMS_Achievement::create()
is deprecated with no replacement.
- Method
- Method
LLMS_Achievements::trigger_engagement()
is deprecated in favor ofLLMS_Engagement_Handler::handle_achievement()
. - Class
LLMS_Certificate
is deprecated with no direct replacement.- Method
LLMS_Certificate::is_enabled()
is deprecated with no replacement. - Method
LLMS_Certificate::get_blogname()
is deprecated with no replacement. - Method
LLMS_Certificate::format_string()
is deprecated with no replacement. - Method
LLMS_Certificate::get_title()
is deprecated with no replacement. - Method
LLMS_Certificate::get_content()
is deprecated with no replacement. - Method
LLMS_Certificate::get_content_html()
is deprecated with no replacement. - Method
LLMS_Certificate::get_title()
is deprecated with no replacement.
- Method
- Method
LLMS_Certificates::trigger_engagement()
is deprecated in favor ofLLMS_Engagement_Handler::handle_certificate()
. - Method
LLMS_Engagements::init()
is deprecated with no replacement. - Method
LLMS_Engagements::handle_achievement
is deprecated in favor ofLLMS_Engagement_Handler::handle_achievement
. - Method
LLMS_Engagements::handle_certificate
is deprecated in favor ofLLMS_Engagement_Handler::handle_certificate
. - Method
LLMS_Engagements::handle_email
is deprecated in favor ofLLMS_Engagement_Handler::handle_email
. - Method
LLMS_Database_Query::set_found_results()
is deprecated. - Class
LLMS_Achievement_User
is deprecated with no direct replacement.- Method
LLMS_Achievement_User::has_user_earned()
is deprecated with no replacement. - Method
LLMS_Achievement_User::init()
is deprecated with no replacement. - Method
LLMS_Achievement_User::trigger()
is deprecated with no replacement. - Method
LLMS_Achievement_User::get_content_html()
is deprecated with no replacement.
- Method
- Class
LLMS_Certificate_User
is deprecated with no direct replacement.- Method
LLMS_Certificate_User::init()
is deprecated with no replacement. - Method
LLMS_Certificate_User::trigger()
is deprecated with no replacement. - Method
LLMS_Certificate_User::get_content_html()
is deprecated with no replacement. - Method
LLMS_Certificate_User::set_shortcode_user()
is deprecated with no replacement.
- Method
- Engagement debug logging is removed. Use
llms_log()
directly instead. - Filter
llms_db_query_get_default_args
is deprecated in favor ofllms_{$this->id}_query_get_default_args
. - Filter
llms_certificate_has_user_earned
is deprecated in favor ofllms_earned_certificate_dupcheck
. - Unused public class property
LLMS_Achievements::$content
is deprecated with no replacement. - Method
LLMS_Admin_Post_Types::meta_metabox_init()
is deprecated with no replacement. - The site options
lifterlms_certificate_bg_img_width
,lifterlms_certificate_bg_img_height
, andlifterlms_certificate_legacy_image_size
are now u...
Version 6.0.0-beta.2
v6.0.0-beta.2 - 2022-02-22
New Features
- Added a link to return to the student dashboard when viewing an awarded certificate. #1959
- The block editor is now enabled by default for certificates when using WordPress versions 5.8 and later.
- Existing certificates are marked as "legacy" and will continue to use the classic editor until migrated.
- To migrate a certificate, click the "Migrate Certificate" button. This will force the certificate's content into blocks.
- A number of new settings are available to certificates when using the block editor:
- Set the certificate's display (and print) size using common paper sizes such as US Letter, US Legal, A3, A4, and more.
- Set the certificate's display orientation: portrait of landscape.
- Set the certificate's inner margins.
- Set the certificate's background color.
- A new block, the Certificate Title Block, has been made available to certificates.
- The block works like a WordPress core Heading Block with added options for selecting from a few display fonts (provided by Google Web Fonts).
- The block controls the title of awarded certificates.
-
- Added the ability to sync awarded certificates with the template used to generate them. #1078
- The
post_name
of earned certificate posts will be generated with a randomized 3+ character string in favor of relying on sequential numbers. - Added the ability for administrators and LMS managers to edit earned certificates/achievements from the students reporting screen, as well as award new certificates/achievements to students.
-
- Added certificate global options for the default size of new certificates and certificate templates.
- Certificate and email template merge code buttons now include [llms-user] information shortcodes.
- Added certificate sequential ID functionality merge code. Read more.
Updates and Enhancements
- Added pagination to achievement and certificate reporting pages.
- Certificates no longer use the
header.php
andfooter.php
files from the site's theme, instead custom templates (templates/certificates/header.php
andtemplates/certificates/footer.php
) are used instead. These templates are minimal and exclude theme wrappers which reduces the visual conflicts encountered from theme wrappers, backgrounds, and more, especially when printing certificates. #463 - The achivements and certificates dashboard endpoints are now paginated. #669
- Added new default images for use with achievements and certificates.
- The site-wide default images can be customized on the admin panel under Settings -> Engagements.
- The old default images can be used by filtering
llms_use_legacy_engagement_images
. #1081
- The URL of earned user certificates has been changed from "my_certificate" to "certificate". Requests to the old url are automatically redirected to the new url, including instances where the URL slug has been translated.
- The URL of certificate temaplate previews has been changed from "certificate" to "certificate-template".
- The certificate merge code,
{first_name}
, now outputs an empty string in favor of falling back to the user's nickname when there is no first name for the user. #1640 - Updates LifterLMS REST to v1.0.0-beta.22.
- The look and behavior of the certificate {{MINI_CERTIFICATE}} pop-over notification merge code now displays a placeholder preview of the certificate in favor of attempting to render a tiny version of the actual certificate. #1950
Bug Fixes
-
- Fixed how the protected
LLMS_Notifications_Query::$found_results
property is accessed inLLMS_Abstract_Notification_Controller::has_subscriber_received()
. + Fixed how the protectedLLMS_Notifications_Query::$max_pages
property is accessed inlifterlms_template_student_dashboard_my_notifications()
.
- Fixed how the protected
- Delayed engagements are automatically unscheduled when the related post is deleted.
- Prior to sending a delayed engagement the recipient's enrollment in the related post is verified resulting the engagement not being triggered if the recipient's enrollment has been terminated. #290
- A disabled student dashboard endpoint will no longer display the endpoint's summary on the main dashboard page. #535
- Post search filter boxes on various post tables will now longer display a link to the selected post.
- Basic notification code is no longer loaded on the admin panel.
Deprecations
- Public access to properties of the abstract
LLMS_Database_Query
has been deprecated.- Public access to class property
LLMS_Database_Query::$found_results
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_found_results()
. - Public access to class property
LLMS_Database_Query::$max_pages
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_max_pages()
. - Public access to class property
LLMS_Database_Query::$number_results
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_number_results()
. - Public access to class property
LLMS_Database_Query::$results
. The property is no longer publicly writable but can be read viaLLMS_Database_Query::get_results()
. - Public access to class property
LLMS_Database_Query::$query_vars
. The variable as a whole cannot be publicly accessed, instead useLLMS_Database_Query::get()
andLLMS_Database_Query::set()
to read and write to the array. - The above changes were made to the abstract class
LLMS_Database_Query
but the following concrete classes that utilize the abstract are also affected by this change:LLMS_Query_User_Postmeta
,LLMS_Student_Query
,LLMS_Query_Quiz_Attempt
,LLMS_Events_Query
, andLLMS_Notifications_Query
.
- Public access to class property
- Class
LLMS_Achievement_User
is deprecated with no direct replacement.- Method
LLMS_Achievement::is_enabled()
is deprecated with no replacement. - Method
LLMS_Achievement::get_blogname()
is deprecated with no replacement. - Method
LLMS_Achievement::format_string()
is deprecated with no replacement. - Method
LLMS_Achievement::get_title()
is deprecated with no replacement. - Method
LLMS_Achievement::get_content()
is deprecated with no replacement. - Method
LLMS_Achievement::get_content_html()
is deprecated with no replacement. - Method
LLMS_Achievement::create()
is deprecated with no replacement.
- Method
- Method
LLMS_Achievements::trigger_engagement()
is deprecated in favor ofLLMS_Engagement_Handler::handle_achievement()
. - Class
LLMS_Certificate
is deprecated with no direct replacement.- Method
LLMS_Certificate::is_enabled()
is deprecated with no replacement. - Method
LLMS_Certificate::get_blogname()
is deprecated with no replacement. - Method
LLMS_Certificate::format_string()
is deprecated with no replacement. - Method
LLMS_Certificate::get_title()
is deprecated with no replacement. - Method
LLMS_Certificate::get_content()
is deprecated with no replacement. - Method
LLMS_Certificate::get_content_html()
is deprecated with no replacement. - Method
LLMS_Certificate::get_title()
is deprecated with no replacement.
- Method
- Method
LLMS_Certificates::trigger_engagement()
is deprecated in favor ofLLMS_Engagement_Handler::handle_certificate()
. - Method
LLMS_Engagements::init()
is deprecated with no replacement. - Method
LLMS_Engagements::handle_achievement
is deprecated in favor ofLLMS_Engagement_Handler::handle_achievement
. - Method
LLMS_Engagements::handle_certificate
is deprecated in favor ofLLMS_Engagement_Handler::handle_certificate
. - Method
LLMS_Engagements::handle_email
is deprecated in favor ofLLMS_Engagement_Handler::handle_email
. - Method
LLMS_Database_Query::set_found_results()
is deprecated. - Class
LLMS_Achievement_User
is deprecated with no direct replacement.- Method
LLMS_Achievement_User::has_user_earned()
is deprecated with no replacement. - Method
LLMS_Achievement_User::init()
is deprecated with no replacement. - Method
LLMS_Achievement_User::trigger()
is deprecated with no replacement. - Method
LLMS_Achievement_User::get_content_html()
is deprecated with no replacement.
- Method
- Class
LLMS_Certificate_User
is deprecated with no direct replacement.- Method
LLMS_Certificate_User::init()
is deprecated with no replacement. - Method
LLMS_Certificate_User::trigger()
is deprecated with no replacement. - Method
LLMS_Certificate_User::get_content_html()
is deprecated with no replacement. - Method
LLMS_Certificate_User::set_shortcode_user()
is deprecated with no replacement.
- Method
- Engagement debug logging is removed. Use
llms_log()
directly instead. - Filter
llms_db_query_get_default_args
is deprecated in favor ofllms_{$this->id}_query_get_default_args
. - Filter
llms_certificate_has_user_earned
is deprecated in favor ofllms_earned_certificate_dupcheck
. - Unused public class property
LLMS_Achievements::$content
is deprecated with no replacement. - Method
LLMS_Admin_Post_Types::meta_metabox_init()
is deprecated with no replacement. - The site options
lifterlms_certificate_bg_img_width
,lifterlms_certificate_bg_img_height
, andlifterlms_certificate_legacy_image_size
are now used only for certificates and certificate templates created using the classic editor.- The settings, found on the Engagements Settings screen, are hidden by default.
- During the database upgrade fr...
Version 5.10.0
v5.10.0 - 2022-02-22
Updates and Enhancements
- Added an option to specify a custom checkout form title for free access plans. #1774
- Updated LifterLMS Blocks to v2.3.2. #1774
Bug Fixes
- Fixed ability to sort course students table by completed date. #1969
- Fixed reporting issue encountered when a course has no lessons. #2012
- Fixed broken checkout on Twenty Twenty-Two Theme when using the password strength meter. #1997
- Fixed block template slug generation from path in Windows environments. #2001
- Fixed an issue encountered when using the search box on the voucher admin posts list screen. #2005
Updated Templates
- templates/admin/reporting/tabs/courses/overview.php
- templates/admin/reporting/tabs/memberships/overview.php
- templates/admin/reporting/tabs/quizzes/overview.php
- templates/block-templates/archive-course.html
- templates/block-templates/archive-llms_membership.html
- templates/block-templates/single-certificate.html
- templates/block-templates/single-no-access.html
- templates/block-templates/taxonomy-course_cat.html
- templates/block-templates/taxonomy-course_difficulty.html
- templates/block-templates/taxonomy-course_tag.html
- templates/block-templates/taxonomy-course_track.html
- templates/block-templates/taxonomy-membership_cat.html
- templates/block-templates/taxonomy-membership_tag.html
- templates/checkout/form-confirm-payment.php
- templates/course/lesson-navigation.php
- templates/course/lesson-preview.php
- templates/course/parent-course.php
- templates/loop-main.php
- templates/loop.php
- templates/myaccount/view-order.php
- templates/quiz/questions/content-picture_choice.php
- templates/quiz/results.php