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.