=== 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.33.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 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 + [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 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? 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 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.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) = 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. ##### Template Updates + [templates/myaccount/dashboard-section.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/dashboard-section.php) = 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. [View the full changelog](https://github.com/gocodebox/lifterlms/blob/master/CHANGELOG.md#lifterlms-changelog)