Releases: gocodebox/lifterlms
Releases · gocodebox/lifterlms
Version 7.1.4
v7.1.4 - 2023-04-28
Bug Fixes
- Fixed an issue that prevented the correct saving of the course length when using the block editor. #2426
Developer Notes
- Fixed an issue running unit tests on PHP 7.4 and WordPress 6.2 expecting
render_block()
returning a string while we were applying a filter that returned the booleantrue
.
Version 7.1.3
v7.1.3 - 2023-04-25
Updates and Enhancements
- Wrapped some elements in HTML for better styling.
- In Course and Lesson settings, replaced outdated URLs to WordPress' documentation about the list of sites you can embed from.
- Updated few Italian province names. #2256
- Avoid use of inline styles in course reviews. #410
Bug Fixes
- Fixed "Unsaved Data" warning when adding vouchers. #2394
- Fixed "Course Length" and "Difficulty" fields visible in the Block Editor which is meant for Classic Editor. #2174
- Added missing
$post_id
parameter to thethe_title
filter hook when retrieving a form title. #2332 - Added missing Armed Forces options to the US States dropdown in the Billing information form. #2325
- Using
strpos()
instead ofstr_starts_with()
for compatibility. #2415
Developer Notes
- Added helper function
llms_get_floats_rounding_precision()
to return precision for rounding off floating values and filter hooklifterlms_floats_rounding_precision
to filter precision value in reporting. #2237 - Added
lifterlms_dashboard_memberships_not_enrolled_text
filter hook to allow altering the message displaying on the student dashboard when the current user is not enrolled in any memberships. #2396 - Added
lifterlms_dashboard_courses_not_enrolled_text
filter hook to allow altering the message displaying on the student dashboard when the current user is not enrolled in any courses. #2396
Updated Templates
Version 7.1.2
Version 7.1.1
v7.1.1 - 2023-03-13
Bug Fixes
- Fixed notice display on WooCommerce dashboard pages.
- Fixed View button URL when using WP in subdirectory.
- Fixed blank System Report's copy for Support.
Version 7.1.0
v7.1.0 - 2023-03-02
New Features
- Added lessons count column on the Courses post list table.
- Added a new Dashboard page under the LifterLMS menu in the admin, whicih includes recent activity widgets and links to useful resources.
- Added link to the course builder for each lesson on the Lessons post list table. Also added a link to either edit or add a quiz.
Updates and Enhancements
- Updates LifterLMS Helper to v3.5.0.
- Make the LifterLMS menu meta box initially available on Appearance -> Menus.
- Updates LifterLMS REST to v1.0.0-beta.26.
Bug Fixes
- Catch possible fatal when trying to display a "broken" basic notification and set its status to 'error' so that it'll be excluded from the next fetches.
- Catch possible fatal when sending notification emails and in that case remove from the queue the item that produced it.
- Fix cloned course retaining original course's ID in some restriction messages.
- Fixed possible admin notices duplication when activating/deactivating or installing add-ons from the page Add-ons & more.
- Avoided setting the
llms-tracking
cookie when there are no events to track. - Updated styles across the entire plugin.
- Updated Add-ons & more list to hide old (uncategorized) products.
Deprecations
- Deprecated methods
LLMS_Admin_Notices_Core::sidebar_support()
andLLMS_Admin_Notices_Core::clear_sidebar_notice()
. - Removed notice for theme sidebar support.
Developer Notes
- The function
llms_is_user_enrolled()
will always returnfalse
for non existing users. While, before, it could returntrue
if a now removed user was enrolled into a the given course or membership. - Added new
LLMS_Course::get_lessons_count()
method. It can be used in place ofcount( LLMS_Course::get_lessons() )
to improve performance. - Fixed compatibility with PHP 8.1 by using an empty string as menu parent page for the course builder submenu page in place of NULL.
- Avoid passing null values to
urlencode()
andurldecode()
that would produce PHP warnings on PHP 8.1+. - Added
$autoload
parameter to the functionllms_get_student
.
Performance Improvements
- Improve performance when querying notifications via the LLMS_Notifications_Query and there's no need to count the total notifications found, or for pagination information.
- Immediately return false when running
llms_is_user_enrolled()
on logged out or no longer existing users, avoiding running additional DB queries e.g. when displaying course or membership catalogs for visitors. - Skip counting the total transactions found when retrieving the last or the first transaction for an order.
Updated Templates
- templates/admin/reporting/nav-filters.php
- templates/admin/reporting/reporting.php
- templates/admin/reporting/tabs/courses/course.php
- templates/admin/reporting/tabs/memberships/membership.php
- templates/admin/reporting/tabs/quizzes/quiz.php
- templates/admin/reporting/tabs/students/student.php
- templates/admin/reporting/tabs/widgets.php
- templates/checkout/form-confirm-payment.php
Version 7.0.1
v7.0.1 - 2022-11-14
Bug Fixes
- Fixed a fatal error encountered on the payment confirmation screen when attempting to confirm a non-existent order. #2093
- Use
sanitize_file_name()
in favor ofsanitize_title()
for generating the file name of reporting table export files. #1540 - Resolved conflict encountered on post edit screens when using LifterLMS, Yoast SEO, and the Classic Editor plugin. #2298
Developer Notes
- A stub method,
get_title()
has been added to theLLMS_Abstract_Exportable_Admin_Table
abstract class. This method should be defined by any extending classes and will throw a_doing_it_wrong()
error when undefined. - Added new filter to allow customizing which user roles are affected by the
LLMS_Admin_Menus::instructor_menu_hack
function.
Version 7.0.0
v7.0.0 - 2022-10-04
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 INPUT_POST 'redirect' variable, if no 'redirect' variable is passed via INPUT_GET. The INPUT_POST 'redirect' variable comes from the new checkout form's hidden field 'redirect' populated with LLMS_Access_Plan::get_redirection_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 ofLLMS_Controller_Checkout::switch_payment_source()
. - Deprecated the
lifterlms_update_option_{$type}
action in favor of thellms_update_option_{$type}
filter. - Method
LLMS_Controller_Orders::confirm_pending_order()
is deprecated in favor ofLLMS_Controller_Checkout::confirm_pending_order()
. - Method
LLMS_Controller_Orders::create_pending_order()
is deprecated in favor ofLLMS_Controller_Checkout::create_pending_order()
. - Method
LLMS_Controller_Orders::switch_payment_source()
is deprecated in favor ofLLMS_Controller_Checkout::switch_payment_source()
. - Passing jQuery selections into the
window.LLMS.Spinner
functions is deprecated. Use JSElements
or selection strings parseable bydocument.querySelector()
instead. - Deprecated hook
llms_{$method}_title
in favor ofllms_{$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 thelifterlms_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 LLMS_Access_Plan::get_redirection_url() -
$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 hookllms_plan_get_checkout_redirection
. - Admin settings fields now display
after_html
for additional field types which supportdesc
. - The CSS for
.llms-spinning
and.llms-spinner
elements is no longer loaded as part of thelifterlms.css
andadmin.css
files, instead it is loaded dynamically whenwindow.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 bydocument.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
- templates/block-templates/archive-course.html
- templates/block-templates/archive-llms_membership.html
- templates/block-templates/single-no-access.html
- templates/block-templates/taxonomy-course_cat.html
- templates/block-templates/taxonomy-course_difficulty.html
- templates/block-templates/taxonomy-course_tag.html
- templates/block-templates/taxonomy-course_track.html
- templates/block-templates/taxonomy-membership_cat.html
- templates/block-templates/taxonomy-membership_tag.html
- templates/checkout/form-gateways.php
- templates/checkout/form-switch-source.php
- templates/myaccount/view-order-actions.php
Version 6.11.0
v6.11.0 - 2022-09-22
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
Version 7.0.0-rc.1
v7.0.0-rc.1 - 2022-09-14
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 INPUT_POST 'redirect' variable, if no 'redirect' variable is passed via INPUT_GET. The INPUT_POST 'redirect' variable comes from the new checkout form's hidden field 'redirect' populated with LLMS_Access_Plan::get_redirection_url(). #2229
Updates and Enhancements
- 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
- Don't attempt to lookup the default payment gateway from user meta data.
- 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 ofLLMS_Controller_Checkout::switch_payment_source()
. - Deprecated the
lifterlms_update_option_{$type}
action in favor of thellms_update_option_{$type}
filter. - Method
LLMS_Controller_Orders::confirm_pending_order()
is deprecated in favor ofLLMS_Controller_Checkout::confirm_pending_order()
. - Method
LLMS_Controller_Orders::create_pending_order()
is deprecated in favor ofLLMS_Controller_Checkout::create_pending_order()
. - Method
LLMS_Controller_Orders::switch_payment_source()
is deprecated in favor ofLLMS_Controller_Checkout::switch_payment_source()
. - Passing jQuery selections into the
window.LLMS.Spinner
functions is deprecated. Use JSElements
or selection strings parseable bydocument.querySelector()
instead. - Deprecated hook
llms_{$method}_title
in favor ofllms_{$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 thelifterlms_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 LLMS_Access_Plan::get_redirection_url() -
$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 hookllms_plan_get_checkout_redirection
. - Admin settings fields now display
after_html
for additional field types which supportdesc
. - The CSS for
.llms-spinning
and.llms-spinner
elements is no longer loaded as part of thelifterlms.css
andadmin.css
files, instead it is loaded dynamically whenwindow.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 bydocument.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
Version 6.10.2
v6.10.2 - 2022-09-14
Updates and Enhancements
- Updated
woocommerce/action-scheduler
to version 3.5.1.
Security Fixes
- Fixed a data sanitization issue related to achievement permalinks.