=== 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: 5.2.2 Stable tag: 3.34.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 and training based membership websites. LifterLMS works with any well-coded WordPress theme and all the popular WordPress page builders (like Elementor, Beaver Builder, Divi, etc.). As an engaged WordPress community member, LifterLMS actively encourages and helps other great plugins integrate with LifterLMS like Affiliate WP, Monster Insights, WP Fusion, the most popular form plugins, GamiPress, Astra Pro, the Course Scheduler, and many more. LifterLMS strikes a beautiful balance in being an all-in-one solution while also integrating with other best of breed technologies relevant to course creators and membership site owners. LifterLMS is also known for having a thriving well supported user community through, active listening, social engagement and robust documentation. LifterLMS encourages you to get to know us by signing up for a $1 temporary _30 Day_ website on our servers with the core LifterLMS plugin AND all the premium add-ons intalled. This demo allows you to test drive all the add-ons before you invest. You can even add your other favorite plugins & themes. Are you ready to [Try LifterLMS for $1][try]? https://www.youtube.com/watch?v=jDVvkipF_pg # **Extend and Enhance LifterLMS with Add-ons** #### **Advanced** _Increase your training program's value with these engagement add-ons_ + [LifterLMS Advanced Quizzes][aq] + [LifterLMS Assignments][ass] + [LifterLMS Private Areas][pa] + [LifterLMS Social Learning][sl] + [LifterLMS Advanced Video][av] (Scheduled to Release: 10/15/19) + LifterLMS Custom Fields (Scheduled to Release: 10/15/19) + LifterLMS Groups (Scheduled to Release: 12/11/19) #### **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 Powerpack][pro] + [LifterLMS LaunchPad Theme][lp] #### **Support** _Our world-class support has your back_ + [LifterLMS Powerpack][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** _There are many ways to take LifterLMS for a test drive_ + Go ahead and install the free core LifterLMS plugin right now + Get a temporary _30 Day_ website on our servers with the core LifterLMS plugin AND all the premium add-ons intalled. This "proof of concept website" allows you to test drive all the add-ons before you invest. This proof of concept website allows you to test everything out, add your other favorite plugins & themes, but is not something you get to keep after the 30 days are over. [Try LifterLMS for $1][try] + Another way to test LifterLMS out is to see what the student experience is like. Take a **free** course on how to build a LifterLMS website in 20 minutes LifterLMS while using LifterLMS. [Take a Free Course][demo] # **[LifterLMS Features][features]** _With LifterLMS and LifterLMS Add-ons you can..._ #### **Make Money Building 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 #### **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 #### **Engage Your Students** + Achievement badges + Certificates + Personalized 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 + 30 Days of live weekly onboading calls called Liftoff Sessions + [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. We also have an engaged [LifterLMS Slack community][slack] with live developer office hours if you would like to connect in Slack. **The mission of LifterLMS is to democratize education in the digital classroom. Our vision is to lift up others through education.** [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/ [slack]: https://join.slack.com/t/lifterlms/shared_invite/enQtMzk3ODczNjc4Mjc3LTBlMmEzMWYyOTIwMDU3NDc2MmRhNGIxNGE0Nzc1OWIxZjg1OGVhM2E5YTkwYzZmMmM1ZTU4MDQxYjVlZDYyZTE [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 [av]: https://lifterlms.com/product/advanced-video/?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 7.2 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? LifterLMS offers technical support, but we do not offer custom website development. However, we do recommend third party LifterLMS Experts who can help with web design, web development, instructional design or marketing for a fee. Click here to visit the [LifterLMS Experts page](https://lifterlms.com/experts/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). #### I'm interested in LifterLMS add-ons, 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 official 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.34.2 - 2019-08-21 = ------------------------ ##### LifterLMS REST API v1.0.0-beta.4 + Load authentication handlers as early as possible. Fixes conflicts with numerous plugins which load user information earlier than expected by the WordPress core. + Harden permissions associated with viewing student enrollment information. + Returns a 400 Bad Request when invalid dates are supplied. + Student Enrollment objects return student and post id's as integers instead of strings. + Fixed references to an undefined function. = v3.34.1 - 2019-08-19 = ------------------------ + Update LifterLMS REST to v1.0.0-beta.3 ##### Interface and Experience improvements during API Key creation + Better expose that API Keys are never shown again after the initial creation. + Allow downloading of API Credentials as a `.txt` file. + Add `required` properties to required fields. ##### Updates + Added the ability to CRUD webhooks via the REST API. + Conditionally throw `_doing_it_wrong` on server controller stubs. + Improve performance by returning early when errors are encountered for various methods. + Utilizes a new custom property `show_in_llms_rest` to determine if taxonomies should be displayed in the LifterLMS REST API. + On the webhooks table the "Delivery URL" is trimmed to 40 characters to improve table readability. ##### Bug fixes + Fixed a formatting error when creating webhooks with the default auto-generated webhook name. + On the webhooks table a translatable string is output for the status instead of the database value. + Fix an issue causing the "Last" page pagination link to display for lists with 0 possible results. + Don't output the "Last" page pagination link on the last page. = v3.34.0 - 2019-08-15 = ------------------------ ##### LifterLMS REST API v1.0.0-beta.1 + A robust REST API is now included in the LifterLMS core. + Create API Keys to consume and manage LifterLMS resources and students from external applications. + Create webhooks to pass LifterLMS resource data to external applications (like Zapier!). + The full API specification can be found at [https://gocodebox.github.io/lifterlms-rest/](https://gocodebox.github.io/lifterlms-rest/). ##### Student management capabilities + Explicit capabilities have been added to determine which users can create, view, update, and delete students. + Admins and LMS Managers have all student management capabilities. + Instructors and instructors assistants are granted limited view capabilities allowing them to only view students enrolled in their own courses/memberships. + Added the `list_users` capability to the "Instructor" role, allowing instructor's to better view and manage their assistant instructors. + The new capabilities are: `create_students`, `view_students`, `view_others_students`, `edit_students`, `edit_others_students`, `delete_students`, & `delete_others_students`. ##### Updates + Added new actions to help differentiate enrollment creation and update events. + Added methods and logic for managing user management of other users. + Added a filter `llms_table_get_table_classes` to LifterLMS admin tables which allows customization of the CSS classes applied to the `` elements. Thanks [@pondermatic](https://github.com/pondermatic)! + Added a filter `llms_install_get_schema` to the database schema to allow 3rd parties to run table installations alongside the core. + Added the ability to pull "raw" (unfiltered) data from the database via classes extending the `LLMS_Post_Model` abstract. + Added a `bulk_set()` method to the `LLMS_Post_Model` abstract allowing the updating of multiple properties in one command. + Added `comment_status`, `ping_status`, `date_gmt`, `modified_gmt`, `menu_order`, `post_password` as gettable\settable post properties via the `LLMS_Post_Model` abstract. + Links on reporting tables are now the proper color. + The `editable_roles` filter which determines which roles can manage which other roles is now always loaded (instead of being loaded only on the admin panel). + Updated LifterLMS Blocks to 1.5.2 ##### Bug Fixes + Fixed an issue preventing the `user_url` property from being retrieved by the `get()` method of the `LLMS_Abstract_User_Data` class. + Fixed an issue causing the `LLMS_Instructors::get_assistants()` method to return assistants for the currently logged in user instead of the instructor of the instantiated object. + Fixed an issue which would allow LMS Managers to edit and delete site administrators. ##### Deprecations **The following functions and methods have been marked as deprecated and will be removed from LifterLMS with the next major release.** + LLMS_Course::get_children_sections() use LLMS_Course::get_sections( 'posts' )" instead + LLMS_Course::get_children_lessons() use LLMS_Course::get_lessons( 'posts' )" instead + LLMS_Course::get_author() + LLMS_Course::get_author_id() use LLMS_Course::get( "author" ) instead + LLMS_Course::get_author_name() + LLMS_Course::get_sku() use LLMS_Course::get( "sku" ) instead + LLMS_Course::get_id() use LLMS_Course::get( "id" ) instead + LLMS_Course::get_title() use get_the_title() instead + LLMS_Course::get_permalink() use get_permalink() instead + LLMS_Course::get_user_postmeta_data() + LLMS_Course::get_user_postmetas_by_key() + LLMS_Course::get_checkout_url() + LLMS_Course::get_start_date() use LLMS_Course::get_date( "start_date" ) instead + LLMS_Course::get_end_date() use LLMS_Course::get_date( "end_date" ) instead + LLMS_Course::get_next_uncompleted_lesson() + LLMS_Course::get_lesson_ids() use LLMS_Course::get_lessons( "ids" ) instead + LLMS_Course::get_syllabus_sections() use LLMS_Course::get_sections() instead + LLMS_Course::get_short_description() use LLMS_Course::get( "excerpt" ) instead + LLMS_Course::get_syllabus() use LLMS_Course::get_sections() instead + LLMS_Course::get_user_enroll_date() + LLMS_Course::get_user_post_data() + LLMS_Course::check_enrollment() + LLMS_Course::is_user_enrolled() use llms_is_user_enrolled() instead + LLMS_Course::get_student_progress() use LLMS_Student::get_progress() instead + LLMS_Course::get_membership_link() = v3.33.2 - 2019-06-26 = ------------------------ + It is now possible to send test copies of the "Student Welcome" email to yourself. + Improved information logged when an error is encountered during an email send. + Add backwards compatibility for legacy add-on integrations priority loading method. + Fixed undefined index notice when viewing log files on the admin status screen. = v3.33.1 - 2019-06-25 = ------------------------ ##### Updates + Added method to retrieve the load priority of integrations. + The capabilities used to determine if uses can clone and export courses now check `edit_course` instead of `edit_post`. ##### Bug Fixes + Fixed an issue which would cause the "Net Sales" line to sometimes display as a bar on the sales revenue reporting chart. + Fixed an issue causing a PHP notice to be logged when viewing the sales reporting screen. + Fixed an issue causing backslashes to be added before quotation marks in access plan descriptions. + Integration classes are now loaded in the order defined by the integration class. + Fixed an issue causing a PHP error when viewing the admin logs screen when no logs exist. = v3.33.0 - 2019-05-21 = ------------------------ ##### Updates + Added the ability for site administrators to delete (completely remove) enrollment records from the database. + Catalogs sorted by Order (`menu_order`) now have an additional sort (by post title) to improve ordering consistency for items with the same order, thanks [@pondermatic](https://github.com/pondermatic)! + Hooks in the dashboard order review template now pass the `LLMS_Order`. ##### LifterLMS Blocks + Updated to version 1.5.1 + All blocks are now registered only for post types where they can actually be used. + Only register block visibility settings on static blocks. Fixes an issue causing core (or 3rd party) dynamic blocks from being managed within the block editor. ##### Bug Fixes + If an enrolled student accesses checkout for a course/membership they're already enrolled in they will be shown a message stating as much. + Removed a redundant check for the existence of an order on the dashboard order review template. + When an order is deleted, student enrollment records for that order will be removed. This fixes an issue causing admins to not be able to manage the enrollment status of a student enrolled via a deleted order. + Fix issue causing errors when using the `[lifterlms_lesson_mark_complete]` shortcode on course post types. + Fixed an issue causing quiz questions to generate publicly accessible permalinks which could be indexed by search engines. ##### Templates Changed + [course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php) + [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/master/templates/templates/myaccount/view-order.php) = v3.32.0 - 2019-05-13 = ------------------------ ##### Updates + Added Membership reporting + Added the ability to restrict coupons to courses and memberships which are in draft or scheduled status. + When recurring payments are disabled, output a "Staging" bubble on the "Orders" menu item. + Recurring recharges now add order notes and trigger actions when gateway or recurring payment status errors are encountered. + When managing recurring payment status through the warning notice, stay on the same page and clear nonces instead of redirecting to the LifterLMS Settings screen. + Updated the Action Scheduler library to the latest version (2.2.5) + Exposed the Action Scheduler's scheduled actions interface as a tab on the LifterLMS Status page. ##### LifterLMS Blocks + Updated to version 1.4.1. + Fixed issue causing asset paths to have invalid double slashes. + Fixed issue causing frontend css assets to look for an unresolvable dependency. ##### Bug Fixes + Fixed an issue allowing instructors to view a list of students from courses and memberships they don't have access to. + WooCommerce compatibility filters added in 3.31.0 are now scheduled at `init` instead of `plugins_loaded`, resolves conflicts with several WooCommerce add-ons which utilize core WC functions before LifterLMS functions are loaded. = v3.31.0 - 2019-05-06 = ------------------------ ##### Updates + Tested to WordPress 5.2 + Adds explicit support for the twentynineteen default theme. + The main students reporting table can now be filtered to show only students enrolled in a specific course or membership. + Resolve conflict with WooCommerce (3.6 and later) resulting in 404s on the dashboard endpoints "lost password", "order history", and "edit account". + Adds a dynamic filter (`llms_notification_view{$trigger_id}_basic_options`) to basic (pop-over) notifications to allow configuration of their settings. + The filter `llms_plan_get_checkout_url` now passes a 3rd parameter: `$check_availability` + Improves `LLMS_Course_Data` and `LLMS_Quiz_Data` classes by adding shared functionality to a shared abstract, `LLMS_Abstract_Post_Data` + Changed access on class methods in `LLMS_Shortcode_Courses` from private to protected, thanks [@andrewvaughan](https://github.com/andrewvaughan)! ##### Bug fixes + Treats `post_excerpt` data as HTML instead of plain text. Fixes an issue resulting in HTML tags being stripped from lesson excerpts when duplicating a lesson in the course builder or importing lessons via the course importer. + Fix an issue allowing access plan sales prices to be set as negative values. ##### LifterLMS Blocks + Updated to LifterLMS Blocks 1.4.0. + Adds an "unmigration" utility to LifterLMS -> Status -> Tools & Utilities which can be used to remove LifterLMS blocks from courses and lessons which were migrated to the block editor structure. + This tool is only available when the Classic Editor plugin is installed and enabled and it will remove blocks from ALL courses and lessons regardless of whether or not the block editor is being utilized on that post. ##### Deprecations + `LLMS_Query::add_query_vars()` use `LLMS_Query::set_query_vars()` instead. = v3.30.3 - 2019-04-22 = ------------------------ ##### Updates + Fixed typos and spelling errors in various strings. + Corrected a typo in the `content-disposition` header used when exporting voucher CSVs, thanks [@pondermatic](https://github.com/pondermatic)! + Improved the quiz attempt grading experience by automatically focusing the remarks field and only toggling the first answer if it's not visible, thanks [@eri-trabiccolo](https://github.com/eri-trabiccolo)! + Removed commented out code on the Student Dashboard Notifications Tab template, thanks [@tnorthcutt](https://github.com/tnorthcutt)! ##### Bug Fixes + Renamed "descrpition" key to "description" found in the return of `LLMS_Instructor()->toArray()`. + Fixed an issue causing slashes to be stripped from course content when cloning a course. + Fixed an issue causing JS warnings to be thrown in the Javascript console on Course and Membership edit pages on the admin panel due to variables being defined too late, thanks [@eri-trabiccolo](https://github.com/eri-trabiccolo)! + Fixed an undefined variable notice encountered when filtering quiz attempts on the quiz attempts reporting screen, thanks [@eri-trabiccolo](https://github.com/eri-trabiccolo)! + Fixed an issue causing slashes to appear before quotation marks when saving remarks on a quiz attempt, thanks [@eri-trabiccolo](https://github.com/eri-trabiccolo)! + [@pondermatic](https://github.com/pondermatic) fixed typos and misspellings in comment and docs in over 200 files and while that doesn't concern most users it's worthy of a mention. ##### Deprecations The following unused classes have been marked as deprecated and will be removed from LifterLMS in the next major release. + `LLMS\Users\User` + `LLMS_Analytics_Page` + `LLMS_Course_Basic` + `LLMS_Lesson_Basic` + `LLMS_Quiz_Legacy` ##### Template Updates + [templates/myaccount/my-notifications.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-notifications.php) = v3.30.2 - 2019-04-09 = ------------------------ + Added new filter to allow 3rd parties to determine if a `LLMS_Post_Model` field should be added to the `custom` array when converting the post to an array. + Added hooks and filters to the `LLMS_Generator` class to allow 3rd parties to easily generate content during course clone and import operations. + Fixed an issue causing all available courses to display when the [lifterlms_courses] shortcode is used with the "mine" parameter and the current user viewing the shortcode is not enrolled in any courses. + Fixed a PHP undefined variable warning present on the payment confirmation screen. ##### Template Updates + [templates/checkout/form-confirm-payment.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-confirm-payment.php) [View the full changelog](https://github.com/gocodebox/lifterlms/blob/master/CHANGELOG.md#lifterlms-changelog)