The Official Blog for LifterLMS Contributors

  • Preparing for LifterLMS 6.0.0

    LifterLMS 6.0.0 is scheduled for release in mid to late February, 2022. In addition to various bug fixes and improvements, this major release focuses primarily on improving the creation and management of certificates.

    As a major release, some backwards incompatible changes have been made to the code base. These changes have been noted in the changelogs and compiled in the Breaking Changes section below.

    # Release Schedule

    The following is our target release schedule for version 6.0.0. The dates of these prerelease builds may be adjusted and additional versions may be added. The date of General Public Release may be delayed but will not be released early.

    Friday, February 11, 2022Alpha.4
    Tuesday, February 15, 2022 +4dBeta.1
    Monday, February 21, 2022 +6dBeta.2
    Friday, February 25, 2022 +4dRC.1
    Tuesday, March 1, 2022 +4dRC.2
    Monday, March 7, 2022 +6d6.0.0 General Public Release

    # Breaking Changes

    We strive, wherever possible, to remain backwards compatible. Doing so ensures that themes and integrations do not have to worry about their code bases being negatively impacted by changes in LifterLMS. However, this also results in a larger code base full of many unused and deprecated functions, classes, and files.

    All breaking changes were deprecated in previous versions of LifterLMS and have been recorded in the 6.0.0 alpha version changelogs. They are summarized here as well:

    • Removed the deprecated LLMS() function in favor of the llms() function.
    • Removed the deprecated LLMS_SendWP::do_remote_install() method in favor of the LLMS_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 the LLMS_Abstract_Database_Store::create() method.
    • Removed the deprecated llms__deleted action hook from the LLMS_Abstract_Database_Store::delete() method.
    • Removed the deprecated llms__updated action hook from the LLMS_Abstract_Database_Store::update() method.
    • Removed the deprecated llms_user_removed_from_membership_level action hook from the LLMS_Student::unenroll() method.
    • Removed the deprecated and misspelled $purchaseable global variable in the lifterlms_template_pricing_table() function.
    • Removed the deprecated and misspelled $purchaseable global variable in the templates/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 the LLMS_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 the llms_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.

    What Happens to 5.x?

    LifterLMS does not maintain multiple forks. We support and maintain a single stable release.

    Upon the public release of LifterLMS 6.0.0, all users are encouraged to update to this version. All future updates to LifterLMS will be updates to version 6.0.0.

    Contributing as a Beta Tester

    The prereleases are available publicly to anyone interested in helping the core team root out bugs and issues.

    Beta testing is not always fun or easy. The prereleases are considered generally stable but you should still use caution and expect to find some issues.

    If you find any issues, please let us know by filing a new bug report or submitting a support request.

    If you have general comments or feedback on the beta let us know in the comments below or post a reply in GitHub on our 6.0.0 general feedback issue.

    # How to Install a LifterLMS Pre-release

    There are three ways to install a prerelease version for evaluation and testing. Please do not install prereleases on production websites!

    1. You can subscribe to the beta release channel using the LifterLMS Helper and to start receiving automatic updates for beta releases through the WordPress admin panel.
    2. You can download the latest releases directly from the LifterLMS GitHub repository and install the zip file as a plugin on the WordPress admin panel.

    What Should a Beta Tester Look For?

    The changes in this release primarily revolve around designing and creating certificates.

    If you nave any 3rd-party integrations or themes installed on your site, you should check if developer has tested compatibility with LifterLMS 6.0.0 and, if they haven’t, ask them to do so as soon as possible to ensure there’s no issues when 6.0.0 is released to the stable channel.

    If you have any custom code on your site, make sure it continues to function as expected and doesn’t utilize and code removed in this major release.

    If you’ve added any CSS or custom code specific to the way certificates are viewed, you should see if it creates any issues with the changes to certificates.

    If you encounter any problems you should let your developer know and if you get stuck, file a new bug report or submit a support request and we’ll point you in the right direction.

    A Call to 3rd-Party Integration and Theme Developers

    If you maintain a LifterLMS theme, plugin, or integration we need your help!

    Please install the latest prerelease version and test your code against ours. If you find any issues along the way let us know by reporting an issue in GitHub.

    After testing your integration please let us know by commenting on our 6.0.0 feedback issue.

    A Call to LifterLMS Experts

    If you’re a member of the LifterLMS Experts program please collaborate with us during this beta period and help us ensure the transition to version 6.0.0 is as smooth as possible for your clients.

    We’d like you to, at the very least, install and test the beta in your own testing environment.

    As an expert we expect that you have a few LifterLMS clients, possibly with custom templates and feature plugins. If your clients (and contracts) allow, please test (or help your clients test) the beta in a safe testing or staging environment.

    If you encounter any issues or run tests and find that everything goes well, please let us know by posting in GitHub or by directly emailing your contact at LifterLMS.

    Read more: Preparing for LifterLMS 6.0.0
  • LifterLMS Version 6.0.0-alpha.4

    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.
    Read more: LifterLMS Version 6.0.0-alpha.4
  • LifterLMS Advanced Quizzes Version 2.0.0

    Updates and Enhancements
    • The minimum supported LifterLMS Core version has been raised to 4.9.0.
    • Use @wordpress/i18n functions in favor of LLMS.l10n for client-side translation of strings found in the quiz interface.
    Bug Fixes
    • Fixed word count validation issues found on long answer questions when using non Latin-scripts such as Chinese or Japanese.
    • Fixed an issue preventing themes and child-themes from overriding template files using default LifterLMS template override functionality.
    Breaking Changes
    • Removed Countable Javascript library in favor of words-count.
    • Removed the public class method LLMS_Assets::init().
    • Removed class LLMS_AQ_l10n.
    • Removed deprecated function LLMS_Advanced_Quizzes().
    • Sourcemaps for static assets (.js and .css) are no longer included in the distributed codebase.
    • Unminified static assets (.js and .css) are no longer included in the distributed codebase.
    Read more: LifterLMS Advanced Quizzes Version 2.0.0
  • LifterLMS Groups Version 1.0.0-beta.18

    New Features
    • Added WordPress Full Site Editing compatibility for LifterLMS Groups single group template.
    Updated Templates
    • templates/block-templates/single-llms_group.html
    • templates/content-single-llms_group.php
    • templates/single-llms_group.php
    Read more: LifterLMS Groups Version 1.0.0-beta.18
  • LifterLMS Blocks Version 2.3.1

    Updates and Enhancements
    • Resolved PHP 8.1 deprecation warnings.
    Read more: LifterLMS Blocks Version 2.3.1