=== 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.1 Stable tag: 3.30.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=jDVvkipF_pg # **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.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. = v3.30.1 - 2019-04-04 = ------------------------ ##### Updates + Added handler to automatically resume pending (incomplete or abandoned) orders. + Classes extending the `LLMS_Abstract_API_Handler` can now prevent a request body from being sent. + Added dynamic filter `'llms_' . $action . '_more'` to allow customization of the "More" button text and url for student dashboard sections. Thanks @[pondermatic](https://github.com/pondermatic). + Remove unused CSS code on the admin panel. ##### Bug Fixes + Fixed a bug preventing course imports as a result of action priority ordering issues. + Function `llms_get_order_by_key()` correctly returns `null` instead of false when no order is found and will return an `int` instead of a numeric string when an order is found. + Changed the method used to sort question choices to accommodate numeric choice markers. This fixes an issue in the Advanced Quizzes add-on causing reorder questions with 10+ choices to sort display in the incorrect order. + Increased the specificity of LifterLMS element tooltip hovers. Resolves a conflict causing issues on the WooCommerce tax rate management screen. + Fixed an issue causing certain fields in the Customizer from displaying a blue background as a result of very unspecific CSS rules, thanks [@Swapnildhanrale](https://github.com/Swapnildhanrale)! + Fixed builder deep links to quizzes freezing due to dependencies not being available during initialization. + Fixed builder issue causing duplicate copies of questions to be added when adding existing questions multiple times. = v3.30.0 - 2019-03-21 = ------------------------ ##### Updates + **Create custom thank you pages with new access plan checkout redirect options.** + Added the ability to sort items on the membership auto enrollment table (drag and drop to sort and reorder). + Improved the interface and interactions with the membership auto enrollment table settings. ##### LifterLMS Blocks + Updated LifterLMS Blocks to 1.3.8. + Fixed an issue causing some installations to be unable to use certain blocks due to jQuery dependencies being declared improperly. ##### Bug Fixes + Fixed issue preventing courses with the same title from properly displayed on the membership automatic enrollment courses table on the admin panel. + Fixed an issue preventing builder custom fields from being able to specify a custom sanitization callback. + Fixed an issue preventing builder custom fields from being able to properly save and render multi-select data. ##### Template Updates + [templates/product/access-plan-restrictions.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-restrictions.php) + [templates/product/free-enroll-form.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/free-enroll-form.php) = v3.29.4 - 2019-03-08 = ------------------------ + Fixed an issue preventing users with email addresses containing an apostrophe from being able to login. = v3.29.3 - 2019-03-01 = ------------------------ ##### Bug Fixes + Removed attempts to validate & save access plan data when the Classic Editor "post" form is submitted. + Fix issue causing 1-click free-enrollment for logged in users to refresh the screen without actually performing an enrollment. ##### Template Updates + [product/free-enroll-form.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/free-enroll-form.php) = v3.29.2 - 2019-02-28 = ------------------------ + Fix issue causing blank "period" values on access plans from being updated. + Fix an issue preventing paid access plans from being switched to "Free". = v3.29.1 - 2019-02-27 = ------------------------ + Automatically reorder access plans when a plan is deleted. + Skip (don't create) empty plans passed to the access plan save method as a result of deleted access plans. = v3.29.0 - 2019-02-27 = ------------------------ ##### Improved Access Plan Management + Added a set of methods for creating access plans programmatically. + Updated the Access Plan metabox on courses and lessons with improved data validation. + When using the block editor, the "Pricing Table" block will automatically update when access plan changes are saved to the database (from LifterLMS Blocks 1.3.5). + Access plans are now created and updated via AJAX requests, resolves a 5.0 editor issue causing duplicated access plans to be created. ##### Student Management Improvements + Added the ability for instructors and admins to mark lessons complete and incomplete for students via the student course reporting table. ##### Admin Panel Settings and Reporting Design Changes + Replaced LifterLMS logos and icons on the admin panel with our new logo LifterLMS Logo and Icons. + Revamped the design and layout of settings and reporting screens. ##### Checkout Improvements + Updated checkout javascript to expose an error addition functions + Abstracted the checkout form submission functionality into a callable function not directly tied to `$_POST` data + Removed display order field from payment gateway settings in favor of using the gateway table sortable list ##### Other Updates + Removed code related to an incompatibility between Yoast SEO Premium and LifterLMS resulting from former access plan save methods. + Reduced application logic in the `course/complete-lesson-link.php` template file by refactoring button display filters into functions. + Added function for checking if request is a REST request + Updated LifterLMS Blocks to version 1.3.7 ##### Bug Fixes + Fixed an issue preventing "Pricing Table" blocks from displaying on the admin panel when the current user was enrolled in the course or no payment gateways were enabled on the site. + Fixed the checkout nonce to have a unique ID & name + Fixed an issue with deleted quizzes causing quiz notification's to throw fatal errors. + Fixed an issue preventing notification timestamps from displaying on the notifications dashboard page. + Fix an issue causing `GET` requests with no query string variables from causing issues via incorrect JSON encoding via the API Handler abstract. + Fix an issue causing access plan sale end dates from using the default WordPress date format settings. + `LLMS_Lesson::has_quiz()` will now properly return a boolean instead of the ID of the associated quiz (or 0 when none found) ##### Template Updates + [checkout/form-checkout.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-checkout.php) + [course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php) + [product/access-plan-pricing.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/access-plan-pricing.php) + [notifications/basic.php](https://github.com/gocodebox/lifterlms/blob/master/templates/notifications/basic.php) ##### Templates Removed Admin panel templates replaced with view files which cannot be overridden from a theme or custom plugin. + `admin/post-types/product-access-plan.php` + `admin/post-types/product.php` = v3.28.3 - 2019-02-14 = ------------------------ + ❤❤❤ Happy Valentines Day or whatever ❤❤❤ + Tested to WordPress 5.1 + Fixed an issue causing JSON data saved by 3rd party plugins in course or lesson postmeta fields to be not duplicate properly during course duplications and imports. = v3.28.2 - 2019-02-11 = ------------------------ ##### Updates + Updated default country list to remove non-existant countries and resolve capitilization issues, thanks [nrherron92](https://github.com/nrherron92)! ##### Bug fixes + Fixed an issue causing the email notification content getter to use the same filter as popover notifications. + Fixed an issue preventing default blog date & time settings from being used when displaying an access plan's access expiration date on course and membership pricing tables. + Fixed an issue causing 404s on paginated dashboard endpoints when the permalink structure is set to anything other than `%postname%`. ##### Deprecations + `LLMS_Query->set_dashboard_pagination()` [View the full changelog](https://github.com/gocodebox/lifterlms/blob/master/CHANGELOG.md#lifterlms-changelog)