- 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.
- 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
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.