The Official Blog for LifterLMS Contributors

  • LifterLMS Authorize.Net Version 1.1.0

    • The minimum required LifterLMS core version has been raised to version 4.9.0. Please ensure the LifterLMS core is upgraded in order to continue using this payment gateway.
    Updates
    • Use llms() in favor of deprecated LLMS().
    • Added the ability to store API credentials as constants (in your wp-config.php file) or as environment variables. See our updated Getting Started Guide for more information.
    • Creation requests for a customer profile which already will now silently use the existing profile in favor of returning an error.
    Bug Fixes
    • Retrieve $_POST data via llms_filter_input().
    • Ensure the profile is saved even when a duplicate is encountered.
    Changes to private class members

    The following changes have been made to private members of various classes. These changes do not constitute a breaking change but are noted for the sake of posterity:

    • Removed private class method LifterLMS_Authorize_Dot_Net::define_constants().
    • Private class property LifterLMS_Authorize_Dot_Net::$_instance changed to LifterLMS_Authorize_Dot_Net::$instance.
    • Private method LLMS_Authorize_Net_Charge::_get_transaction_request_data() renamed to remove the leading underscore prefix.
    • Private methods LLMS_Authorize_Net_Customer::_get_payment_profile_request_data() and LLMS_Authorize_Net_Customer::_get_profile_request_data() were renamed to remove the leading underscores prefix.
    Deprecations
    • Function LLMS_Auth_Net() is deprecated in favor of llms_gateway_auth_dot_net().
    • Filter llms_auth_net_customer_profile_description is deprecated with no replacement.
    • File includes/class-llms-gateway-authorize.net.php is deprecated in favor of includes/class-llms-payment-gateway-authorize.net.php.
    Read more: LifterLMS Authorize.Net Version 1.1.0
  • LifterLMS Version 4.12.0

    Updates
    • Automatic site clone detection checks have been adjusted to always run in favor of only running on the admin panel.
    • LifterLMS Site Features (like recurring payment status) can now be configured via constant values.
    • Added llms_load_admin_tools action to allow 3rd parties to easily hook into our admin tools system.
    • Made numerous performance improvements on the course data background processor.
    • Course data background processing will now be automatically throttled for courses with 500 students or more as opposed to the old value of 2,500 or more.
    Bug fixes
    • Fixed an incorrect HTML for attribute and added an id to the related input element on the student dashboard voucher redemption endpoint.
    • Fixed a pagination error encountered when using course or membership list shortcodes on the static front page.
    • Make sure is_lifterlms() exists before calling it in navigation menu-related classes.
    Deprecations
    • LLMS_Admin_Notices_Core::check_staging() is deprecated in favor of LLMS_Staging::notice().
    • Unused property LLMS_Course::$sections is replaced by LLMS_Course::get_sections().
    • Unused property LLMS_Course::$sku is deprecated with no replacement.
    • LLMS_Frontend_Forms is deprecated, functionality is available via LLMS_Controller_Account.
    • LLMS_Frontend_Forms::reset_password() is deprecated in favor of LLMS_Controller_Account::reset_password().
    Templates Updated
    • templates/myaccount/form-redeem-voucher.php
    Read more: LifterLMS Version 4.12.0
  • LifterLMS Version 4.11.0

    PHP 7.2 has reached its official end of life. LifterLMS aims to support only officially supported PHP versions and our goal is to drop support for PHP 7.2 by March of 2021 at which time minimum supported PHP version will be raised to 7.3. If you’re currently using PHP 7.2 please contact your host and request an upgrade to a supported PHP version as soon as possible!

    Updates
    • Adds the ability to use the Instructors blocks on the membership post type. Thanks @alaa-alshamy!
    • Updated LifterLMS Blocks to Version 1.11.1.
    Bug fixes
    • Fixed a PHP Notice encountered when trying to retrieve next lesson from an empty section.
    Templates updated
    • templates/course/author.php
    Read more: LifterLMS Version 4.11.0
  • LifterLMS Version 5.0.0-alpha.1

    User Information Form Builder
    • Customize all user information collection forms using the block editor for drag and drop and WYSIWYG form building.
    • Customize field labels, placeholders, descriptions and more with an easy point and click interface.
    • Determine if fields are required or optional with a simple toggle switch.
    • Update the form layout with the block editor. Reorder fields, add columns, and more with a simple drag and drop interface.
    • Remove unwanted fields with the click of a button.
    User Location Information Form Fields
    • During user account creation and updates the user location fields are now locale aware ensuring that the proper terminology is used and only locale-required fields are displayed for the selected locale.
    • The “Country” field has been updated to be automatically populated with a list of countries. View the full list in the file at languages/countries.php and the filter lifterlms_countries can be used to modify the default list at runtime.
    • The “State” field on user forms has been updated to be automatically populated with a list of states (provinces or regions) for the selected country. This list of states can be found in the file at languages/states.php and the filter lifterlms_states can be used to modify the default list at runtime.
    • Both “Country” and “State” fields are now searchable dropdowns elements.
    • The lists of countries and states will be automatically updated during future releases based on information provided by GeoNames APIs.
    Mergecodes everywhere via new [user] shortcode
    • TODO.
    Updates
    • Email and password confirmation fields may now be made optional.
    • “User Information Options” have been largely removed in favor of determining which fields are displayed via the forms UI
    • The former “User Information Options” settings area has been renamed to “User Privacy Options”.
    Bug Fixes
    • Changed the filter on return of LLMS_Person_Handler::get_password_reset_fields() from lifterlms_lost_password_fields to llms_password_reset_fields.
    Development changes
    • The filter lifterlms_before_user_${action} is now triggered by do_action_ref_array() instead of do_action() allowing modification of $posted_data and $fields via hooks.
    • A number of action and filter hooks have been moved to new locations within the codebase. They will continue to function as expected (with some minor exceptions).
    • Enqueue select2 on account and checkout pages for searchable dropdowns for country & state.
    Library & Vendor Updates
    • Load core libraries from new location and load WP Background Processing lib.
    • The vendor script dependency topModal.js has been removed.
    Templates Updated
    • templates/global/form-login.php
    • templates/global/form-registration.php
    • templates/product/free-enroll-form.php
    Deprecations

    The following have been deprecated and will be removed from LifterLMS in a major update following version 5.0.0.

    • Class Method: LLMS_Person_Handler::get_available_fields() is deprecated in favor of LLMS_Forms::get_form_fields().
    • Class Method: LLMS_Person_Handler::register() is deprecated, in favor of llms_register_user().
    • Class Method: LLMS_Person_Handler::sanitize_field() (private method) is deprecated with no replacement.
    • Class Method: LLMS_Person_Handler::update() is deprecated, in favor of llms_update_user().
    • Class Method: LLMS_Person_Handler::validate_fields() is deprecated with no replacement.
    • Class Method: LLMS_Person_Handler::voucher_toggle_script() is deprecated with no replacement.
    • Filter: llms_usernames_blacklist is deprecated, use llms_usernames_blocklist instead.
    • Function: llms_get_minimum_password_strength() is deprecated with no replacement.
    • Option: lifterlms_registration_generate_username is deprecated in favor of the new method LLMS_Forms::are_usernames_enabled().
    Removed Items
    • Private method LLMS_Processors::includes() has been removed.
    • Private methods LLMS_Person_Handler::fill_fields() and LLMS_Person_Handler::insert_data() were removed.
    Read more: LifterLMS Version 5.0.0-alpha.1
  • LifterLMS Blocks Version 1.12.0

    • Various form and field updates in preparation for LifterLMS 5.0.0.
    Read more: LifterLMS Blocks Version 1.12.0