Added logic to prevent the permanent deletion of courses or memberships with active subscriptions.
When a subscription attempts to charge a recurring payment against a deleted course or membership the transaction will be cancelled and the order marked as failed.
Improved logic used to determine when a limited length subscription has completed its payment schedule.
Improved accessibility of various icon buttons on the admin orders view/edit screen.
Improved display of quiz attempts containing questions which have been deleted from the database.
POT files from included library plugins (like LifterLMS REST) are now excluded from LifterLMS distributions.
Development updates
Introduced LLMS_Trait_Singleton to replace redundant singleton pattern definitions across classes in the codebase.
Moveed the loading of the autoloader to the main lifterlms.php file.
Updated the LLMS_Payment_Gateway abstract class to utilize LLMS_Abstract_Options_Data for accessing gateway options.
Audio and video embed methods shared by LLMS_Course and LLMS_Membership have been relocated to LLMS_Trait_Audio_Video_Embed.
Sales page methods shared by LLMS_Course and LLMS_Membership have been relocated to LLMS_Trait_Sales_Page.
Bug Fixes
Fixed a visual issue encountered on the payment confirmation screen on small screens / mobile devices.
Fix untranslatable time period strings (day, week, month, and year) found on the admin orders view/edit screen.
Fixed an error encountered when attempting to grade a quiz attempt containing deleted questions.
Deprecations
Removed usage and references to the LLMS_Order post meta property date_billing_end. To determine if a subscription has ended, use LLMS_Order::get_remaining_payments() instead.
A new notification, the “Upcoming Payment Reminder” notification has been added. This notification sends a reminder to students a configurable number of days before a payment is do for a recurring subscription.
When upgrading to version 5.2.0, this notification will be automatically disabled, visit LifterLMS -> Settings -> Notifications and select the new notification to enable it after upgrading.
Props to @niluzok for doing the initial work required to build this notification!
Updates
Reworked the database upgrader script to allow for minor upgrades which don’t require significant data migration to upgrade silently without requiring user consent to initiate.
Improved internal methods used to generate tables in the body of email notifications.
Bug Fixes
Student registration date is now displayed in the site’s timezone in favor of UTC time.
Properly pass options template_path and default_path to the template handler when creating an admin notice using a template.
Removed translation (and incorrect text domain) from a logging function encountered when a recurring payment errors as a result of the payment gateway having been deactivated.
Deprecations
LLMS_Install::db_updates() is deprecated, use `LLMS_DB_Upgrader::enqueue_updates() instead.
LLMS_Install::update_notice() is deprecated with no replacement.
Template admin/notices/db-update.php is deprecated in favor of includes/admin/views/db-update.php.
Template admin/notices/db-updating.php is deprecated with no replacement.