The Official Blog for LifterLMS Contributors

  • LifterLMS Stripe Payment Gateway Version 5.5.0

    Updates and Enhancements
    • Upgrades the Stripe API version to 2022-08-01. These breaking changes do not affect this payment integration.
    • Raised the minimum supported WP version from 5.3 to 5.6.
    Read more: LifterLMS Stripe Payment Gateway Version 5.5.0
  • LifterLMS Groups Version 1.0.0-beta.21

    Updates and Enhancements
    • Added caching and automatic cache busting to group member counting queries.
    Read more: LifterLMS Groups Version 1.0.0-beta.21
  • LifterLMS PayPal Version 3.0.0-beta.1

    This prerelease version of LifterLMS PayPal will only function in Test Mode with PayPal Sandbox API Credentials.

    • PayPal Connect Onboarding is now powered by the lifterlms.com/wp-json/llms-ppc/v1/connect endpoint.
    • Fixed an i18n issue encountered due to use of incorrect decimal separators when passing an amount to the PayPal API.
    • On checkout, existing checkout errors are cleared when attempting to checkout again.
    • On PayPal account disconnect, existing access tokens are dropped from the database.
    • Raised the minimum required LifterLMS core version to 7.0.
    • Switched from using the WP Core scheduling APIs to the Action Scheduler API for various background tasks and processes.
    Read more: LifterLMS PayPal Version 3.0.0-beta.1
  • LifterLMS Assignments Version 2.0.1

    Bug Fixes
    • Fixed an issue with emojis in essays by not running autosave on completed essays.
    • Fixed issue causing escape characters to be added when saving essay assignment submissions.
    Read more: LifterLMS Assignments Version 2.0.1
  • LifterLMS Version 7.0.0

    New Features
    • Added handling for admin settings options that store their option values in a nested array.
    • Added new AJAX checkout and payment source switching endpoints for payment gateways to utilize instead of the preexisting synchronous form submission methods.
    • On purchase completed retrieve the redirection URL from the INPUTPOST ‘redirect’ variable, if no ‘redirect’ variable is passed via INPUTGET. The INPUTPOST ‘redirect’ variable comes from the new checkout form’s hidden field ‘redirect’ populated with LLMSAccessPlan::getredirection_url(). #2229
    Updates and Enhancements
    • Full Site Editing: [BREAKING] The wrappers in the custom header and footer templates have been changed to the semantic HTML tags <header> and <footer> in favor of default <div> tags. #2281
    • When an order post is restored from the trash its post status will now be “llms-pending” in favor of the default “draft” status.
    Bug Fixes
    • Fixed unclosed checkout div wrapper on empty cart. #2277
    • Don’t attempt to lookup the default payment gateway from user meta data.
    • Fixed required fields duplication when the form is a child of a .wp-block-column element. #2134
    • Fixed an issue that prevented disabling the access plan’s option, Override Membership Redirects, once enabled. #2234
    • Disabled scroll-behavior: smooth on checkout screen to address form element validity checking issues on Chromium-based browsers. #2206
    Deprecations
    • Deprecated LLMS_Controller_Orders::switch_payment_source() in favor of LLMS_Controller_Checkout::switch_payment_source().
    • Deprecated the lifterlms_update_option_{$type} action in favor of the llms_update_option_{$type} filter.
    • Method LLMS_Controller_Orders::confirm_pending_order() is deprecated in favor of LLMS_Controller_Checkout::confirm_pending_order().
    • Method LLMS_Controller_Orders::create_pending_order() is deprecated in favor of LLMS_Controller_Checkout::create_pending_order().
    • Method LLMS_Controller_Orders::switch_payment_source() is deprecated in favor of LLMS_Controller_Checkout::switch_payment_source().
    • Passing jQuery selections into the window.LLMS.Spinner functions is deprecated. Use JS Elements or selection strings parseable by document.querySelector() instead.
    • Deprecated hook llms_{$method}_title in favor of llms_{$method}_refund_title.
    Developer Notes
    • Added admin settings helper function, llms_get_dashicon_link(), intended to enable the addition of external resource helper links to settings field descriptions.
    • The LLMS_Student object can be instantiated as an empty object and bypass current user autoloading. In the future this may affect integrations using the lifterlms_new_pending_order action hook which will receive an “empty” student object during order setup by gateways utilizing new AJAX-powered checkout endpoints.
    • Added a filter, llms_gateway_{$this->id}_logging_enabled, which will allow force enabling/disabling of gateway logging functions.
    • Improved payment gateway secure string logging by adding a method, add_secure_string() allowing developers to add secure strings during runtime without the necessity of registering the strings using filters.
    • Introduces new function llms_is_option_secure() for determining if an “secured” option is defined in a “secure” manner.
    • Implemented new gateway feature: modify_recurring_payments. #2176
    • Added two new parameters to LLMSAccessPlan::getredirectionurl() – $encode to optionally get a raw (not encoded) URL. – $querystring_only to optionally get only the redirect URL if set via NPUT_GET variable.
    • Added new parameter $querystring_only to the filter hook llms_plan_get_checkout_redirection.
    • Admin settings fields now display after_html for additional field types which support desc.
    • The CSS for .llms-spinning and .llms-spinner elements is no longer loaded as part of the lifterlms.css and admin.css files, instead it is loaded dynamically when window.LLMS.Spinner functions are called. In some cases CSS overrides to these elements which relied on CSS rule load order may no longer successfully override the default CSS rules. These overrides may need to be updated to have more specific selectors in order to ensure the overrides are retained.
    • The Javascript object, window.LLMS.Spinner, has been converted to a module accessible from the same variable.
    • The window.LLMS.Spinner methods now accept JS Elements and selector strings parseable by document.querySelector() in addition to jQuery selections.
    • Added new filter llms_transaction_can_be_refunded enabling custom refund restrictions to be applied to a transaction.
    Updated Templates
    Read more: LifterLMS Version 7.0.0
  • LifterLMS Version 6.11.0

    Updates and Enhancements
    • Since version 6.0.0, the Certificate Title Block provided the option to use four Google-hosted fonts. These fonts will now be served from the site’s server in favor of serving them from the Google Fonts CDN. For more information about this change, please refer to https://make.wordpress.org/themes/2022/06/18/complying-with-gdpr-when-using-google-fonts/. If you wish to continue loading fonts from Google’s CDN, add the following code to your functions.php file: add_filter( 'llms_use_google_webfonts', '__return_true' );. #2189
    • Upgraded included library, @woocommerce/action-scheduler, to version 3.5.2.
    Bug Fixes
    • Fixed a division by zero error encountered on quiz reporting screens for quizzes with 0 total available points. #2270
    Read more: LifterLMS Version 6.11.0