Releases: gocodebox/lifterlms
Releases · gocodebox/lifterlms
Version 6.0.0-beta.1
v6.0.0-beta.1 - 2022-02-16
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.
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 from versions earlie...
Version 5.9.0
v5.9.0 - 2022-02-15
Updates and Enhancements
- Picture choice questions are now organized using flexbox in favor of a float-powered column layout.
- Resolved PHP 8.1 deprecation warnings. #1859
Bug Fixes
- Updated
llms_get_endpoint_url()
to better adhere to a site's permalink structure with regards to the presence of a trailing slash in the generated url. #1983 - Only allow users with
edit_post
capabilities to bypass content restrictions. - Fixed stretched images in quiz description/questions when using the Twenty Twenty-Two theme. #1976
Deprecations
- Method
LLMS_AJAX::check_voucher_duplicate()
is deprecated in favor ofLLMS_AJAX_HANDLER::check_voucher_duplicate()
.
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
Version 6.0.0-alpha.4
v6.0.0-alpha.4 - 2022-02-11
Updates and Enhancements
- Removed usage of PHP features deprecated in PHP 8.1.
- Added a link to return to the student dashboard when viewing an awarded certificate.
- Allow block templates to be overridden from themes or plugins.
- Added a "Reset Certificate" button to restore certificates to the default template.
- Added links from achievement and certificate templates to view all awards generated from the template.
- Added the ability to sync achievements (sync all awards to the parent template and sync one award to it's parent).
- Improved class autoloading.
Bug Fixes
- Fixed certificate print compatibility issues with the OceanWP and Genesis themes.
- Fixed custom font usage in the Certificate Title block to utilize WP Core functionality introduced in version 5.9.
- Fixed access to protected properties in the
LLMS_Notifications_Query
class.
Breaking Changes
- Removed the Single Certificate block template.
Version 5.8.0
v5.8.0 - 2022-01-26
New Features
- Add theme support for the Twenty Twenty-Two theme. #1824
- Added WordPress Full Site Editing compatibility for various LifterLMS-powered templates.
Updates and Enhancements
- The minimum required WordPress core version is now version 5.5.
- Tested against WordPress version 5.9.
- Updated LifterLMS Blocks: v2.3.0, v2.3.1.
- Remove the "description" registered with LifterLMS custom post types. #710
Updated Templates
- 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/course/lesson-navigation.php
- templates/course/lesson-preview.php
- templates/course/parent-course.php
- templates/loop-main.php
- templates/loop.php
Version 6.0.0-alpha.3
v6.0.0-alpha.3 - 2022-01-14
Updates and Enhancements
- Automatically dequeue print-only stylesheets to reduce theme and plugin conflicts when printing certificates.
- Only enable the Certificate Title block font-family selector for WordPress 5.9 and later.
- Only enable the Block Editor for certificates on WordPress 5.8 and later.
- Replaced welcome message placeholder text with a real welcome message.
Bug Fixes
- Explicitly define a default font-family ("default") for the Certificate Title block.
- Fixed visual issues encountered on certificates when resizing the browser window.
- Fixed issue with the certificate block template on WordPress 5.8 (divider blocks aren't centered by default).
Breaking Changes
- Removed the deprecated
LLMS()
function in favor of thellms()
function. - Removed the deprecated
LLMS_SendWP::do_remote_install()
method in favor of theLLMS_Abstract_Email_Provider::do_remote_install()
method. - Removed the deprecated
LLMS_Abstract_Email_Provider::output_css()
method. - Removed the deprecated
LLMS_Abstract_Generator_Posts::increment()
method. - Removed the deprecated
LLMS_Admin_Users_Table::load_dependencies()
method. - Removed the deprecated
LLMS_Admin_Import::localize_stat()
method. - Removed the deprecated
LLMS_Admin_Notices_Core::check_staging()
method. - Removed the deprecated
LLMS_Admin_Setup_Wizard::generator_course_status()
method. - Removed the deprecated
LLMS_Admin_Setup_Wizard::output_step_html()
method. - Removed the deprecated
LLMS_Admin_Setup_Wizard::scripts()
method. - Removed the deprecated
LLMS_Admin_Setup_Wizard::watch_course_generation()
method. - Removed the deprecated
llms_format_decimal()
function. - Removed the deprecated
llms_set_person_auth_cookie()
function. - Removed the deprecated
LLMS_Course::sections
property. - Removed the deprecated
LLMS_Course::sku
property. - Removed the deprecated
LLMS_Frontend_Assets::enqueue_inline_pw_script()
method. - Removed the deprecated
LLMS_Frontend_Assets::enqueue_inline_script()
method. - Removed the deprecated
LLMS_Frontend_Assets::is_inline_script_enqueued()
method. - Removed the deprecated
LLMS_Generator::add_custom_values()
method. - Removed the deprecated
LLMS_Generator::add_custom_values()
method. - Removed the deprecated
LLMS_Generator::format_date()
method. - Removed the deprecated
LLMS_Generator::get_author_id_from_raw()
method. - Removed the deprecated
LLMS_Generator::get_default_post_status()
method. - Removed the deprecated
LLMS_Generator::get_generated_posts()
method. - Removed the deprecated
LLMS_Generator::increment()
method. - Removed the deprecated
llms__created
action hook from theLLMS_Abstract_Database_Store::create()
method. - Removed the deprecated
llms__deleted
action hook from theLLMS_Abstract_Database_Store::delete()
method. - Removed the deprecated
llms__updated
action hook from theLLMS_Abstract_Database_Store::update()
method. - Removed the deprecated
llms_user_removed_from_membership_level
action hook from theLLMS_Student::unenroll()
method. - Removed the deprecated and misspelled
$purchaseable
global variable in thelifterlms_template_pricing_table()
function. - Removed the deprecated and misspelled
$purchaseable
global variable in thetemplates/product/pricing-table.php
file. - Removed the deprecated
LLMS_Frontend_Password
class. - Removed the deprecated
LLMS_Install::db_updates()
method. - Removed the deprecated
LLMS_Install::update_notice()
method. - Removed the deprecated
LLMS_Notifications::dispatch_processors()
method. - Removed the deprecated
llms_processors_async_dispatching
filter hook from theLLMS_Notifications::__construct()
method. - Removed the deprecated
LLMS_Notifications::$_instance
property. - Removed the deprecated
LLMS_Person_Handler::register()
method. - Removed the deprecated
LLMS_Person_Handler::sanitize_field()
method. - Removed the deprecated
LLMS_Person_Handler::update()
method. - Removed the deprecated
LLMS_Person_Handler::validate_fields()
method. - Removed the deprecated
LLMS_Person_Handler::voucher_toggle_script()
method. - Removed the deprecated
templates/admin/notices/db-update.php
file. - Removed the deprecated
templates/admin/notices/db-updating.php
file. - Removed the deprecated
llms_usernames_blacklist
filter hook in thellms_get_usernames_blocklist()
function. - Removed the deprecated
includes/libraries/wp-background-processing/index.php
file. - Removed the deprecated
includes/libraries/wp-background-processing/wp-async-request.php
file. - Removed the deprecated
includes/libraries/wp-background-processing/wp-background-process.php
file. - Removed the deprecated
LLMS_Section::get_next_available_lesson_order()
method. - Removed the deprecated
LLMS_Section::get_order()
method. - Removed the deprecated
LLMS_Section::get_parent_course()
method. - Removed the deprecated
LLMS_Section::set_parent_course()
method. - Removed the deprecated
LLMS_AJAX::get_ajax_data()
method. - Removed the deprecated
LLMS_AJAX::register_script()
method. - Removed the deprecated
LLMS_Interface_Post_Audio
interface. - Removed the deprecated
LLMS_Interface_Post_Sales_Page
interface. - Removed the deprecated
LLMS_Interface_Post_Video
interface. - Removed the deprecated
LLMS_Achievements::$_instance
property. - Removed the deprecated
LLMS_Certificates::$_instance
property. - Removed the deprecated
LLMS_Emails::$_instance
property. - Removed the deprecated
LLMS_Engagements::$_instance
property. - Removed the deprecated
LLMS_Events::$_instance
property. - Removed the deprecated
LLMS_Grades::$_instance
property. - Removed the deprecated
LLMS_Integrations::$_instance
property. - Removed the deprecated
LLMS_Payment_Gateways::$_instance
property. - Removed the deprecated
LLMS_Processors::$_instance
property. - Removed the deprecated
LLMS_Sessions::$_instance
property.
Version 5.7.0
v5.7.0 - 2022-01-11
Updates and Enhancements
- Informed developers about the deprecated
LLMS_Section::get_next_available_lesson_order()
method. - Informed developers about the deprecated
LLMS_Section::get_order()
method. - Informed developers about the deprecated
LLMS_Section::get_parent_course()
method. - Informed developers about the deprecated
LLMS_Section::set_parent_course()
method.
Deprecations
- Deprecated
LLMS_Frontend_Assets::enqueue_inline_pw_script()
with no replacement. - Deprecated the
LLMS_Lesson::get_order()
method in favor of theLLMS_Lesson::get( 'order' )
method. - Deprecated the
LLMS_Lesson::get_parent_course()
method in favor of theLLMS_Lesson::get( 'parent_course' )
method. - Deprecated the
LLMS_Lesson::set_parent_course()
method in favor of theLLMS_Lesson::set( 'parent_course', $course_id )
method. - Deprecated the
LLMS_AJAX_Handler::add_lesson_to_course()
method with no replacement. - Deprecated the
LLMS_AJAX_Handler::create_lesson()
method with no replacement. - Deprecated the
LLMS_AJAX_Handler::create_section()
method with no replacement. - Deprecated the
LLMS_Lesson_Handler::assign_to_course()
method with no replacement. - Deprecated the
LLMS_Post_Handler::create_section()
method with no replacement.
Updated Templates
Version 6.0.0-alpha.2
v6.0.0-alpha.2 - 2022-01-04
New Features
- Added certificate global options for the default size of new certificates and certificate templates.
Updates and enhancements
- The site options
lifterlms_certificate_bg_img_width
,
lifterlms_certificate_bg_img_height
, and
lifterlms_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 from versions earlier than 6.x, an site option,
llms_has_legacy_certificates
is added when at least one certificate is found. This option will display the settings so they can continue to be used for legacy certificates. - After migrating all certificates on a site, the settings will still display. In order to remove them from the screen a developer can either delete the option
llms_has_legacy_certificates
or returnfalse
from the filterllms_has_legacy_certificates
.
- Restore certificate save hooks after executing callback updates to facilitate scenarios where more than one certificate is updated in a single request.
Bug Fixes
- Only register the Certificate Title block for use on certificate post types.
Updated Templates
Version 6.0.0-alpha.1
v6.0.0-alpha.1 - 2021-12-28
This version is an unstable pre-release! We strongly advise against installing this in a production environment.
- Initial pre-release of version 6.0.0.
- The full changelog will be compiled with the next pre-release.
Version 5.6.0
v5.6.0 - 2021-12-07
New Features
- Added an option to prevent users (by role) from copying site content and saving local copies of images.
- Added new site setting to disallow concurrent user sessions for specified user roles.
Updates and Enhancements
- Updates LifterLMS REST to v1.0.0-beta.21.
Developer Notes
- Database migration functions can now be namespaced, eliminating the need to prefix update function names with a version number.
Version 5.5.0
v5.5.0 - 2021-11-05
New Features
- Includes the LLMS-CLI beta, a set of WP-CLI commands for LifterLMS and LifterLMS add-ons, as part of the core plugin:
- To get started, run
wp llms --help
in your terminal or read the online command documentation. - Please note that the LLMS-CLI is included as a public beta feature. The command API is in a pre-release state and, as such, is subject to change without warning.
- If you encounter any issues or wish to provide feedback on the LLMS-CLI please get in touch at https://github.com/gocodebox/lifterlms-cli.
- To get started, run
Bug Fixes
- Fix AJAX post search when using search queries containing quotes.
Deprecations
- The
lifterlms_register_post_type_llms_engagement
is deprecated in favor oflifterlms_register_post_type_engagement
. - The
lifterlms_register_post_type_llms_achievement
is deprecated in favor oflifterlms_register_post_type_achievement
. - The
lifterlms_register_post_type_llms_certificate
is deprecated in favor oflifterlms_register_post_type_certificate
. - The
lifterlms_register_post_type_llms_my_certificate
is deprecated in favor oflifterlms_register_post_type_my_certificate
. - The
lifterlms_register_post_type_llms_email
is deprecated in favor oflifterlms_register_post_type_email
. - The
lifterlms_register_post_type_llms_coupon
is deprecated in favor oflifterlms_register_post_type_coupon
. - The
lifterlms_register_post_type_llms_voucher
is deprecated in favor oflifterlms_register_post_type_voucher
.
Developer Notes
- The
llms-addons
style asset no longer ships an unminified version. - The
llms-admin-add-ons
style asset no longer ships an unminified version and the filename of the distributed file has changed. - All the LifterLMS post types are now registered using the static method
LLMS_Post_Types::register_post_type()
. - Upgraded woocommerce/action-scheduler to v3.4.0.