The Official Blog for LifterLMS Contributors

  • LifterLMS Custom Fields Version 2.0.0

    This major release raises the minimum required LifterLMS version to 5.0 and the minimum required WordPress version to 5.7!

    • Adds support for LifterLMS 5.0
    • Add custom fields to any user information form
    • Add custom checkout forms by course/membership or access plan
    • Automatically display custom fields on admin account edit screen and LifterLMS user reporting screen
    Read more: LifterLMS Custom Fields Version 2.0.0
  • LifterLMS Version 5.0.1

    Updates
    • Update to LifterLMS Blocks v2.1.0.
    • Added a new filter to allow programmatically alter required field validation results.
    Bugfixes
    • Fixed an issue causing preventing form layout options from working when passed into shortcodes.
    • Fixed an issue preventing custom radio, select, and dropdown fields from working during checkout.
    • Fixed an accessibility issue encountered during password strength validation.
    Read more: LifterLMS Version 5.0.1
  • LifterLMS Blocks Version 2.1.0

    Updates
    • Adjusted priority of block editor JS assets to load at priority 5 instead of 999. Resolves plugin conflicts encountered when using block-level visibility on blocks registered after visibility filters are applied.
    • Removed usage of react-sortable-hoc and replaced with dndkit for drag and drop UX within the editor.
    • Refactored the instructors sidebar (on courses and memberships) as well as the option shorting (for fields with options) to utilize dndkit.
    Bugfixes
    • Fixed an issue encountered on password confirmation fields when adjusting the minimum password length option on the user password block.
    Read more: LifterLMS Blocks Version 2.1.0
  • LifterLMS WooCommerce Version 2.2.0

    • Improved compatibility with LifterLMS engagements now also triggered on WooCommerce order completed.
    • Added compatibility with LifterLMS > 5.0.
    Read more: LifterLMS WooCommerce Version 2.2.0
  • LifterLMS Version 5.0.0

    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 [llms-user] shortcode
    • Allows merging most user information field data into any post or page, email, or notification (as well as widgets and more).
    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”.
    • Removed email lookup logic since wp_authenticate() supports email addresses as user_login since WP 4.5.
    • Custom user fields added via filters are now displayed on the admin panel at priority 11 instead of 10.
    • Added shortcode processing in LifterLMS-generated emails.
    • If a symbol cannot be found for the supplied currency code, return the code instead of an empty string.
    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.
    • Fixed duplicate references to the llms-select2 script.
    Development changes
    • Added before and after actions hooks for admin tools.
    • 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.
    • Stop loading removed processor “tabletocsv”.
    Library & Vendor Updates
    • Updates LifterLMS Blocks to version 2.0.1.
    • Updates woocommerce/actions-scheduler to version 3.2.1.
    • Load core libraries from new location and load WP Background Processing lib.
    • The vendor script dependency topModal.js has been removed.
    Templates Updated
    • templates/checkout/form-checkout.php
    • templates/checkout/form-confirm-payment.php
    • templates/checkout/form-gateways.php
    • templates/global/form-login.php
    • templates/global/form-registration.php
    • templates/myaccount/form-edit-account.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.
    • Filter: lifterlms_get_user_custom_fields is deprecated with no replacement.
    • 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.
    • Previously deprecated class method LLMS_Quiz::get_lessons() has been removed.
    • Previously deprecated class method LLMS_Controller_Quizzes::take_quiz() has been removed.
    • Previously deprecated class LLMS_Processor_Table_To_Csv has been removed.
    Read more: LifterLMS Version 5.0.0
  • LifterLMS Blocks Version 2.0.1

    • Use non-unique error notice IDs for reusable multiple error notice.
    Read more: LifterLMS Blocks Version 2.0.1