=== LifterLMS === Contributors: thomasplevy, chrisbadgett, saurabhshukla, lifterlms, codeboxllc Donate link: https://lifterlms.com Tags: learning management system, LMS, membership, elearning, online courses, quizzes, sell courses, badges, gamification, learning, Lifter, LifterLMS Requires at least: 4.8 Requires PHP: 7.2 Tested up to: 4.9.9 Stable tag: 3.24.2 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html LifterLMS, the #1 WordPress LMS solution, makes it easy to create, sell, and protect engaging online courses. == Description == LifterLMS is a powerful WordPress LMS plugin that makes it easy to create, sell, and protect engaging online courses. The mission of LifterLMS is to democratize education in the digital classroom. https://www.youtube.com/watch?v=LugJPS7bhxI # **Extend and Enhance LifterLMS with Add-ons** #### **Advanced** _Courses + Community + Coaching = Engagement_ + [LifterLMS Advanced Quizzes][aq] + [LifterLMS Assignments][ass] + [LifterLMS Private Areas][pa] + [LifterLMS Social Learning][sl] #### **Integrations** _Integrate with the third-party tools you know and love_ + [LifterLMS Stripe][stripe] + [LifterLMS PayPal][pp] + [LifterLMS Authorize.Net][anet] + [LifterLMS WooCommerce][wc] + [LifterLMS ConvertKit][ck] + [LifterLMS MailChimp][mc] #### **Design Tools** _Make your learning platform beautiful_ + [LifterLMS Pro][pro] + [LifterLMS LaunchPad Theme][lp] #### **Support** _Our world-class support has your back_ + [LifterLMS Pro][pro] + [LifterLMS Office Hours][oh] #### **Save Big with a Bundle** _Save money while unlocking the full potential of your learning platform_ + [Infinity Bundle][infinity] + [Universe Bundle][universe] # **Give LifterLMS a Try** _Try LifterLMS and the premium add-ons before investing any time_ + [Try LifterLMS for $1][try] + [Take a Free Course][demo] # **[LifterLMS Features][features]** _With LifterLMS and LifterLMS Add-ons you can..._ #### **Create Courses** + Multimedia lessons + Quizzes + Course builder + Drip Content + Pre-requisites + Course tracks + Assignments (coming soon) + Quiz time limits + Student dashboard + Multi-instructor + Lesson downloads + Course import & export + Discussion areas + Instructional design + Forum integrations + Graphics pack + Course reviews #### **Build an Education-Based Business** + Credit card payments + One-time payments + Recurring payments + Payment plans + Unlimited pricing models + PayPal + Subscriptions + Checkout + Free courses + Course bundles + Private coaching upsells + Coupons + Bulk sales + Affiliate ready + Native sales pages + Offline sales + Customizable enrollment + Country and currency + E-commerce dashboard + Credit card management + Subscription switching + Payment switching #### **Engage Your Students** + Achievement bages + Certificates + Peronalized email + Social learning + Private coaching + Text messaging #### **Offer Memberships** + Sitewide membership + Course bundles + Traditional memberships + Automatic course enrollment + Bulk course enrollment + Content restrictions + Members-only payment plans + Private group discussions + Members-only forums #### **Integrate with the Tools You Need** + Payment gateways + Email marketing + Forums + Mobile friendly + Use any theme + Built for compatibility + CRMs + E-learning authoring tools + Tin Can API (xAPI) #### **Secure and Protect Your Content** + Course protection + User account management and registration + Members-only content + Restricted access + Password management + Self-hosted #### **Own and Manage Your Platform** + Detailed reporting + Gradebook + Email notifications + Bulk enrollments + Student management + Access management + Web design management + Branding & Typography + LMS Roles + Security + Require terms + Scaleable + Layout + Testing tools #### **Get Support** + Technical support + [Live office hours][oh] + Free training courses + Setup wizard + Detailed documentation + Dynamic resources + Demo course + System analyzer + User community + Developer ecosystem #### **Further Reading** + The [LifterLMS Official Homepage][home] + The [LifterLMS Knowledgebase][docs] + The [LifterLMS Blog][blog] + The [LifterLMS Podcast][podcast] # **Join Our Growing Community** When you download LifterLMS, you join a thriving community of education entrepreneurs, developers, and WordPress enthusiasts. We’re one of the fastest growing open source eLearning communities online, and you are welcome here. If you’re interested in contributing to LifterLMS, head over to the [LifterLMS GitHub Repository][git] to find out how you can pitch in. Want to add a new language to LifterLMS? Swell! You can contribute at [translate.wordpress.org][translate]. Also I'd like to invite you to the [LifterLMS VIP Facebook group][facebook] so you can check out what other LifterLMS users are up to and ask questions to the community. [home]: https://lifterlms.com/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [docs]: https://lifterlms.com/docs/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [blog]: http://blog.lifterlms.com/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [podcast]: http://podcast.lifterlms.com/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [git]: https://github.com/gocodebox/lifterlms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [demo]: https://demo.lifterlms.com/course/how-to-build-a-learning-management-system-with-lifterlms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [translate]: https://translate.lifterlms.com/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [facebook]: https://www.facebook.com/groups/lifterlmsvip/ [anet]: https://lifterlms.com/product/authorize-net/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [aq]: https://lifterlms.com/product/advanced-quizzes//?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [ass]: https://lifterlms.com/product/lifterlms-assignments//?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [dfy]: https://lifterlms.com/dfy/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [ck]: https://lifterlms.com/product/lifterlms-convertkit/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [infinity]: https://lifterlms.com/product/infinity-bundle/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [lp]: https://lifterlms.com/product/launchpad/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [mc]: https://lifterlms.com/product/mailchimp-extension/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [oh]: https://lifterlms.com/product/office-hours/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [pa]: https://lifterlms.com/product/private-areas/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [pp]: https://lifterlms.com/product/paypal-extension/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [pro]: https://lifterlms.com/product/lifterlms-pro/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [sl]: https://lifterlms.com/product/social-learning/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [stripe]: https://lifterlms.com/product/stripe-extension/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [try]: https://lifterlms.com/product/try/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [universe]: https://lifterlms.com/product/universe-bundle/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [wc]: https://lifterlms.com/product/woocommerce-extension/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [features]: https://lifterlms.com/features/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [feature-lms]: https://lifterlms.com/features/lms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [feature-ecomm]: https://lifterlms.com/features/e-commerce/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [feature-membership]: https://lifterlms.com/features/membership/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale [feature-engagement]: https://lifterlms.com/features/engagement/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale == Installation == #### Minimum System Requirements LifterLMS Requires + PHP 5.6 or later + MySQL 5.6 or later + WordPress 4.0 or later Visit our [full system requirements](https://lifterlms.com/docs/minimum-system-requirements-lifterlms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale) for additional information. #### Automatic Installation This is the simplest way to install LifterLMS as it utilizes WordPress to handle file transfers and you never need to leave the web browser or admin panel. 1. Log in to your WordPress dashboard. 2. Navigate to Plugins -> Add New 3. In the search field type "LifterLMS" and click "Search Plugins" 4. Once you've located LifterLMS click "Install Now" 5. Once installation is complete, click "Activate" #### Manual Installation To manually install LifterLMS you'll need to download the zip file using the "Download" link on this screen. You'll then need to use FTP to manually upload the files to the proper directory on your webserver. Please see this [WordPress Codex document](https://codex.wordpress.org/Managing_Plugins#Manual_Plugin_Installation) for full instruction on Manual Plugin Installation. #### Setup Wizard After installing LifterLMS for the first time you will be redirected to the Setup Wizard. This wizard will walk quickly configure LifterLMS so you can get to course creating as quickly as possible. At the conclusion you'll have the option to import a sample course. You can return to the setup wizard at any time by following [these steps](https://lifterlms.com/docs/rerun-lifterlms-setup-wizard/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). == Frequently Asked Questions == #### Are there any troubleshooting steps you'd suggest I try that might resolve my issue before I post a new thread? First, make sure that you're running the latest version of LifterLMS. And if you've got any other LifterLMS extensions or themes, make sure those are running the most current version as well. The most common issues we see are either plugin conflicts, theme conflicts, or outdated servers. You can test if a plugin or theme is conflicting by manually deactivating other plugins until just LifterLMS is running on your site. If the issue persists from there, revert to the default Twenty Fifteen theme. If the issue is resolved after deactivating a specific plugin or your theme, you'll know that is the source of the conflict. If it is a hosting issue, contact your web host and make sure they’re running the most current version of PHP. Also be sure to check out the official LifterLMS [Knowledge Base](https://lifterlms.com/docs/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). #### I'm still stuck. Where do I go to file a bug or ask a question? Users of the free LifterLMS should post their questions in the plugin's WordPress.org forum. If you find you're not getting support in as timely a fashion as you wish, you might want to consider purchasing a [LifterLMS Pro license](https://lifterlms.com/product/lifterlms-pro/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). If you're already a LifterLMS Pro user or you have purchased one of the LifterLMS themes or extensions, you're entitled to log into your account and contact the support team directly on the [LifterLMS website](https://lifterlms.com/my-account/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). We can provide a deeper level of support here and address your needs on a daily basis during the work week. Generally, except in times of increased support loads, we reply to all comments within 12 business hours. #### LifterLMS is awesome! Can you set it all up for me? Yes. You can get an instant quote for the team at LifterLMS to set everything up for you through our signature Done For You service. Get an instant quote through our automated quote generation tool on the [LifterLMS website services page](https://lifterlms.com/dfy/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). #### I'm interested in LifterLMS Pro, another LifterLMS extension, or a LifterLMS theme, but there are a few questions I've got before making the purchase. Can you help me get those addressed? Absolutely. If you're not finding your questions answered on the product pages, you can ask your presales questions through this [contact form](https://lifterlms.com/contact/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). You can also connect live with a member of our team [here](https://lifterlms.com/contact/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). #### What add-ons are available for LifterLMS, and where can I read more about them? You can find a full list of officlai LifterLMS Add-ons [here](https://lifterlms.com/store/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale) #### I have a feature idea. What's the best way to tell you about it? We care about your feature ideas and what you have to say. You can [request a feature](https://lifterlms.com/contact/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale), [vote on existing feature requests](?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale), and checkout the [product roadmap](https://lifterlms.com/roadmap/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). #### I still have questions. Where can I find answers? Be sure you’ve taken the free tutorial training video course: [How to Create an Online Course with LifterLMS](http://demo.lifterlms.com/course/how-to-build-a-learning-management-system-with-lifterlms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). == Screenshots == 1. LifterLMS Courses 2. LifterLMS Pricing Tables 3. LifterLMS Checkout 4. LifterLMS Lessons 5. LifterLMS Achievement Earned 6. LifterLMS Achievement Badges 7. LifterLMS Quiz Results 8. LifterLMS Student Dashboard 9. LifterLMS Certificates 10. LifterLMS Sales Reporting 11. LifterLMS Student Reporting 12. LifterLMS Enrollment Reporting 13. LifterLMS Sidebar Widgets 14. LifterLMS Subscription Management 15. LifterLMS Settings 16. LifterLMS Course Builder 17. LifterLMS Lesson Settings 18. LifterLMS Engagements 19. LifterLMS Email Engagements 20. LifterLMS Course Access Plans 21. LifterLMS Update Upcoming Order Details 22. LifterLMS Lock Down Non LMS Content with Memberships 23. LifterLMS Membership Course Bundles and Auto Enrollment 24. LifterLMS Business to Business Bulk Enrollment Activations with Vouchers == Changelog == = v3.24.2 - 2018-10-30 = ------------------------ + Fix issue causing newline characters to be malformed on course builder description fields, resulting in `n` characters being output in strange places. = v3.24.1 - 2018-10-29 = ------------------------ ##### Updates + The shortcode `[lifterlms_hide_content]` now accepts multiple IDs and can specify whether the user must belong to either *all* or *any one* of the specified memberships. Thanks [@yojance](https://github.com/yojance)! + The action `llms_voucher_used`, called when a voucher code is used, will now pass the voucher code as a 3rd parameter. Thanks [@yojance](https://github.com/yojance)! ##### Bug Fixes + Fixed a typo in engagement drop creation dropdown. Thanks [README1ST](https://github.com/README1ST)! + Fixed issue causing backslash characters (`\`) to be removed from course elements (sections, lessons, quizzes, and assignments) constructed in the course builder. + Fixed an issue in the 3.16.0 database migration script that would cause migrations to get stuck as a result of malformed data saved in an invalid format. + Added processing handlers to payment confirmation form. Fixes an issue which would allow multiple payment confirmation requests to be made (if the form was submitted multiple times before the page reloaded) resulting in duplicate charges. ##### Templates Changed + templates/checkout/form-confirm-payment.php = v3.24.0 - 2018-10-23 = ------------------------ ##### "My Grades" Student Dashboard Endpoint + A new student dashboard endpoint, "My Grades", has been added + The main screen displays a paginated and sortable list of all courses a student is enrolled in and outputs their progress and grade in the courses + Students can drill into individual reporting screens for each course where specific details for each course are available for review ##### Grading Enhancements + Each lesson can now be assigned an individual "points" value + When a course is graded the points assigned to each lesson will be used to calculate the value of the lesson's grade within the overall course grade + Lessons can also be assigned a value of "0" to allow a lesson to not count towards the overall grade of the course. + Email notifications are now sent to a student when an instructor reviews, grades, or leaves remarks on a quiz attempt. ##### Test Email Notifications + An interface and API for sending test email notifications has been added, the following notifications can now be tested: + Purchase Receipt + Quizzes: Failed (Thanks [@philwp](https://github.com/philwp)!) + Quizzes: Graded + Quizzes: Passed (Thanks [@philwp](https://github.com/philwp)!) ##### Updates and Enhancements + Quiz Passed & Quiz Failed notifications have new names on the admin panel ("Quizzes: Quiz Passed" & "Quizzes: Quiz Failed") + The default content for Quiz Passed and Quiz Failed notifications have been enhanced. If you've modified these you can delete your modified content to have your notifications "restored" to the improved defaults. + Change the page title of the Student Dashboard page installed via the Setup Wizard to be "Dashboard" instead of "My Courses." Thanks [@philwp](https://github.com/philwp)! + In the course builder when a lesson is duplicated, the attached quiz will be duplicated as well + Minor increase to performance in the `LLMS_Course->get_lessons()` method + Added `student_id` as a parameter passed to the `llms_student_get_progress` filter + Updated all access plan templates added in 3.23.0 to ensure `ABSPATH` is defined to prevent direct template access + Remove use of deprecated `LLMS_Lesson->get_children_lessons()` in the `LLMS_Course` and `LLMS_Lesson` models as well as in the `course/syllabus.php` template + Refactored the `LLMS_Section->get_percent_complete()` method to utilize methods from the `LLMS_Student` model + Added the ability for admin table classes to define `` element CSS classes + Admin settings pages with no settings to save (like the Notifications list) no longer display a "Save" button + Added actions when creating, updating, and deleting records managed by `LLMS_Abstract_Database_Store` classes + Updated system report to include URLs to settings with URLs, adds a small speed boost to support request turn around time. ##### Please Rate & Review LifterLMS on WordPress.org + Added a WordPress.org review request link to the footer of LifterLMS admin pages. + Added a WordPress.org review request notice which displays a week after installation if the site has 50+ active students. ##### Bug fixes + Fixed issue causing HTML entity codes to display in email subject lines. Thanks [@philwp](https://github.com/philwp)! + Fixed issue causing post cleanup functions to run queries against unsupported post types. + Fixed typos in a handful of i18n functions so that the proper textdomain is now being used + Removed `get_option()` call to unused option `lifterlms_logout_endpoint` which ran on WordPress initialization unnecessarily. + Removed 3.21.0 fixes for iOS touch issues that are now causing iOS touch issues on quizzes. + When an order is deleted, all order transactions will also be deleted. This does not happen until the order is deleted (transactions will remain while the order is in the trash) + Fixed an issue causing duplicated quizzes to initially show images for question images & image choices (reorder pictures & picture choice) but the image data would not be properly saved so when returning to the builder or viewing a quiz on the frontend the images would be lost ##### Deprecated Functions & Methods + Deprecated `LLMS_Section->get_children_lessons()`, use `LLMS_Section->get_lessons( 'posts' )` instead ##### Template Updates + [course/syllabus.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/syllabus.php) + [product/access-plan-button.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-button.php) + [product/access-plan-description.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-description.php) + [product/access-plan-feature.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-feature.php) + [product/access-plan-pricing.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-pricing.php) + [product/access-plan-restrictions.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-restrictions.php) + [product/access-plan-title.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-title.php) + [product/access-plan-trial.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-trial.php) + [product/free-enroll-form.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/free-enroll-form.php) = v3.23.0 - 2018-08-27 = ------------------------ ##### Access Plan & Pricing Table Template Improvements + The pricing table template has been split into multiple templates which are now rendered via action hooks. No visual changes have been made but if you've customized the template using a template override you'll want to review the template changes before updating! + New action hooks are available to modify the rendering of access plans in course / membership pricing tables. + `llms_access_plan`: Main hook for outputting an entire access plan within the pricing table + `llms_before_access_plan`: Called before main content of access plan. Outputs the "Featured" area of plans + `llms_acces_plan_content`: Main access plan content. Outputs title, pricing info, restrictions, and description + `llms_acces_plan_footer`: Called after main content. Outputs trial info and the checkout / enrollment button + Added filters to the returns of many of the functions in the `LLMS_Acces_Plan` model. + Minor improvements made to `LLMS_Access_Plan` model ##### Updates and Enhancements + Improved handling of empty blank / empty data when adding instructors to courses and memberships + Added filters to the "Sales Page Content" type options & functions for courses and memberships to allow 3rd parties to define their own type of sales page functionality + Added filters to the saving of access plan data + Improved the HTML and added CSS classes to the access plan admin panel html view ##### Bug Fixes + Fixes issue causing the "Preview Changes" button on courses to lock the "Update" publishing button which prevents changes from being properly saved.gi + Fixed issue causing PHP errors when viewing courses / memberships on the admin panel when an instructor user was deleted + Fixed issue causing PHP notices when viewing course / membership post lists on the admin panel when an instructor user was deleted + Fixed issue causing PHP warnings to be generated when viewing the user add / edit screen on the admin panel + Fixed an issue which would cause access plans to never be available to users. *This bug didn't affect any existing installations except if you wrote custom code that called the `LLMS_Access_Plan::is_available_to_user()` method.* ##### Template Updates + [templates/admin/post-types/product-access-plan.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/product-access-plan.php) + [templates/product/pricing-table.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/pricing-table.php) = v3.22.2 - 2018-08-13 = ------------------------ + Fixed issue causing banners on general settings screen to cause a fatal error when api connection errors occurred + Improved CSS on setup wizard = v3.22.1 - 2018-08-06 = ------------------------ + Fix issue causing themes to appear as requiring updates when using the LifterLMS Helper = v3.22.0 - 2018-07-31 = ------------------------ + Frontend notifications are no longer powered by AJAX requests. This change will significantly reduce the number of requests made but will remove the ability for students to receive asynchronouos notifications. This means that notifications will only be displayed on page load as notification polling will no longer occur while a student is on a page (while reading the content a lesson, for example). + Course and membership catalogs items in navigation menus will now have expected CSS classes to identify current item and current item parents + The admin panel add-ons screen has been reworked to be powered by the lifterlms.com REST api + Some visual changes have been made to the add-ons screen + The colors on the voucher screen on the admin panel have been updated to match the rest of the interfaces in LifterLMS = v3.21.1 - 2018-07-24 = ------------------------ + Fixed issue causing visual issues on checkout summary when using coupons which apply discounts to a plan trial + Fixed issue causing `.mo` files stored in the `languages/lifterlms` safe directory from being loaded before files stored in the default location `languages/plugins` + Added methods to integration abstract to allow integration developers to automatically describe missing integration dependencies + Tested to WordPress 4.9.8 ##### Template Updates + [templates/checkout/form-summary.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-summary.php) = v3.21.0 - 2018-07-18 = ------------------------ ##### Updates and Enhancements + Added new actions before and after global login form HTML: `llms_before_person_login_form` & `llms_after_person_login_form` + Settings API can now create disabled fields + Added new actions to the checkout form: `lifterlms_pre_checkout_form` && `lifterlms_post_checkout_form` + Added CRUD functions for interacting with data located in the `wp_lifterlms_user_postmeta` table + Replaced various database queries for CRUD user postmeta data with new CRUD functions + Added new utility function to allow splicing data into associative arrays ##### Bug Fixes + If all user information fields are disabled, the "Student Information" are will now be hidden during checkout for logged in users instead of displaying an empty information box + Fixed plugin compatibility issue with Advanced Custom Fields + Fixed issue causing multiple choice quiz questions to require a double tap on some iOS devices + Fixed incorrectly named filter causing section titles to not display on student course reporting screens + We do not advocate using PHP 5.5 or lower but if you were using 5.5 or lower and encountered an error during bulk enrollment we've fixed that for. Please upgrade to 7.2 though. We all want faster more secure websites. ##### Template Updates + [templates/checkout/form-checkout.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-checkout.php) + [templates/global/form-login.php](https://github.com/gocodebox/lifterlms/blob/master/templates/global/form-login.php) = v3.20.0 - 2018-07-12 = ------------------------ + Updated user interfaces on admin panel for courses and memberships with relation to "Enrolled" and "Non-Enrolled" student descriptions + "Enrolled Student Description" is now the default WordPress editor + "Non-Enrolled Student Description" is now the "Sales Page" + Additional options for sales pages (the content displayed to visitors and non-enrolled students) have been added: + Do nothing (show course description) + Show custom content (use a WYSIWYG editor to define content) + Redirect to a WordPress page (use custom templates and enhance page builder compatibility and capabilities) + Redirect to a custom URL (use a sales page hosted on another domain!) + Tested to WordPress 4.9. [View the full changelog](https://github.com/gocodebox/lifterlms/blob/master/CHANGELOG.md#lifterlms-changelog)