LifterLMS Version 5.0.1

  • Update to LifterLMS Blocks v2.1.0.
  • Added a new filter to allow programmatically alter required field validation results.
  • 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.

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

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.

LifterLMS Version 5.0.0-rc.2

  • Remove password description merge codes from reusable block schema.
  • Explicitly define required field attributes on reusable block schema.
  • Requires WP 5.7 or later to edit forms & show an upgrade nudge when requirements are not met.
  • Add a link from the (now) legacy account settings area to help experienced users find the new form building area
  • Add a (subtle) custom fields add-on upgrade nudge when viewing the forms list on the admin panel
  • Update LifterLMS Blocks to 2.0.0-rc.2

LifterLMS Version 5.0.0-rc.1

  • Updates Action Scheduler library to version 3.2.0
  • Remove the {minstrength} and {minlength} merge codes from the User Password block description.
  • Don’t load removed files during OptimizePress compatibility.
  • Add a 5.0.0 DB upgrade routine and welcome notice
  • Add the LifterLMS Helper as an included library
  • Add WordPress 5.8 compatibility on the Widgets and Customizer screens.
  • Move form location definitions into a schema file
  • Require WordPress 5.7+ to manage forms via the block editor
  • Upgrades LifterLMS Blocks to 2.0.0-rc.1

LifterLMS Version 5.0.0-beta.2

  • Updates LifterLMS Blocks to 2.0.0-beta.6.
  • (Re-)introduces the user information shortcode as [llms-user].
  • Add Admins status tool to reinstall core forms & reusable blocks.
  • Fixed issue causing data from conditionally disabled fields (like state) from being cleared during form submission
  • Updated form post type labels and added missing labels
  • Removed the previously deprecated class LLMS_Frontend_Forms and it’s deprecated class methods reset_password() and voucher_check().
  • Removed the previously deprecated class LLMS_Frontend_Password and it’s deprecated class methods: retrieve_password(), check_password(), and reset_password().
  • Updated country and state localization lists.

LifterLMS Version 4.21.3

  • Increase 3rd party support for WP core hook lostpassword_post hook.
Bug fixes
  • Props to Hemant Patidar for discovering an issue preventing rate limiting in various security plugins from working on the LifterLMS password recovery form.
  • Fixed an issue encountered when updating LifterLMS premium add-ons via the LifterLMS Helper encountered when API errors are occur.
  • Updated the failure error code from ‘activation’ to ‘deactivation’ in the LLMS_Add_On class.
  • Updated the API connection error message returned when using the LLMS_Abstract_API_Handler class.
  • Class LLMS_Frontend_Password is deprecated, see deprecated methods and their replacments below:

  • LLMS_Frontend_Password::retrieve_password() is deprecated in favor of LLMS_Controller_Account::lost_password().

  • LLMS_Frontend_Password::check_password_reset_key() is deprecated in favor of check_password_reset_key().

  • LLMS_Frontend_Password::reset_password() is deprecated in favor of reset_password().

LifterLMS Version 5.0.0-beta.1

  • LifterLMS Blocks 2.0.0-beta.5
  • Added site-wide field name validation
  • Reworked the output of user information fields on the admin panel to share a handler and APIs with frontend fields.
  • Deprecated filter: lifterlms_get_user_custom_fields in favor of llms_admin_profile_fields
  • Improved previewing of form posts using WP Core block editor UI elements
  • Open Registration form can now always be previewed regardless of the open registration site setting

LifterLMS Version 4.21.2

Security Update

This releases fixes a security issue affecting LifterLMS versions 4.21.1 and earlier:

  • Added the view_grades capability which is used to determine whether or not a user has the ability to view another user’s grades on the website’s frontend.
Bug fixes
  • Fixed an issue causing PHP errors when attempting to access a quiz attempt that doesn’t exist.
  • Fixed a localization issue encountered when entering transaction amounts on the admin panel.

LifterLMS Version 5.0.0-alpha.5

  • Reorganized new files into subdirectories.
  • Added serverside password minimum length validation.
  • Fix duplicate password strength meter output.
  • Fix the user password field type from text to password
  • Fix the phone number field type from text to tel
  • Fix user state select field
  • Don’t autoload field values from specified datastore when a “value” is explicitly passed to the field.
  • Only load published reusable blocks on the frontend of the website
  • Improved the UX for editing a users account by automatically “hiding” password and email fields and only requiring them to be submitted when users explicit request an update via the field’s “change” toggle button.