=== LifterLMS === Contributors: thomasplevy, chrisbadgett, kathy11, 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: 5.6 Tested up to: 4.9.6 Stable tag: 3.18.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.18.2 - 2018-05-24 = ------------------------ + Improved integrations settings screen to allow each integration to have it's own settings tab (page) with only its own settings + Allow programmatic access to notification content when notification views are accessed via filters + Fixed issue causind subscription cancellation notifications to be sent to admins when new orders were created + Fixed warning message displayed prior to membership bulk enrollment + Fixed multibyte character encoding issue encountered during certificate exports = v3.18.1 - 2018-05-18 = ------------------------ + Attached `llms_privacy_policy_form_field()` and `llms_agree_to_terms_form_field()` to an action hook `llms_registration_privacy` + Define minimum WordPress version requirement as 4.8. ##### Template Updates + [templates/checkout/form-checkout.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-checkout.php) + [templates/global/form-registration.php](https://github.com/gocodebox/lifterlms/blob/master/templates/global/form-registration.php) = v3.18.0 - 2018-05-16 = ------------------------ ##### Privacy & GDPR Compliance Tools + Added privacy policy notice on checkout, enrollment, and registration that integrates with the WP Core 4.9.6 Privacy Policy Page setting + Added settings to allow customization of the privacy policy and terms & conditions notices during checkout, enrollment, and registration + Added suggested Privacy Policy language outlining information gathered by a default LifterLMS site + During a WordPress Personal Data Export request the following LifterLMS information will be added to the export + All personal information gathered from registration, checkout, and enrollment forms + Course and membership enrollments, progress, and grades + Earned achievements and certificates + All order data + During a WordPress Personal Data Erasure request the following LifterLMS information will be erased + All personal information gathered from registration, checkout, and enrollment forms + Earned achievements and certificates + All notifications for or about the user + If the "Remove Order Data" setting is enabled, the order will be anonymized by removing student personal information from the order and, if the order is a recurring order, it will be cancelled. + If the "Remove Student LMS Data" setting is enabled, all student data related to course and membership activity will be removed + All of the above relies on features available in WordPress core 4.9.6 ##### Updates and Enhancements + Tested up to WordPress 4.9.6 + Improved pricing table UX for members-only access plans. An access plan button for a plan belonging to only one membership will click directly to the membership as opposed to opening a popover. Plan's with access via multiple memberships will continue to open a popover listing all availability options. + Added a "My Certificates" tab to the Student Dashboard + Certificates can be downloaded as HTML files (available when viewing a certificate or from the certificate reporting screen on the admin panel) + Admins can now delete certificates and achievements from reporting screens on the admin panel + Added additional information to certificate and achievement reporting tables + Expanded widths of admin settings page setting names to be a bit wider and more readable + Now conditionally hiding some settings when they are no longer relevant + Added daily cron automatically remove files from the `LLMS_TMP_DIR` which are more that 24 hours old + Removed unused template `content-llms_membership.php` + Added initialization actions for use by integration classes ##### Bug Fixes + Fixed issue causing coupon reports to always display "1" regardless of actual number of coupons used + Fixid issue causing new posts created via the Course Builder to always be created for user_id #1 + Fixed issue causing "My Achievements" to display twice on the My Achievements student dashboard tab + Fixed issue preventing lessons from being completed when a quiz in draft mode was attached to the lesson + Fixed issue causing minified RTL stylesheets to 404 ##### Template Updates + [templates/admin/post-types/order-details.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/order-details.php) + [templates/checkout/form-checkout.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-checkout.php) + [templates/content-certificate.php](https://github.com/gocodebox/lifterlms/blob/master/templates/content-certificate.php) + [templates/global/form-registration.php](https://github.com/gocodebox/lifterlms/blob/master/templates/global/form-registration.php) + [templates/myaccount/dashboard-section.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/dashboard-section.php) = v3.17.8 - 2018-05-04 = ------------------------ ##### Updates and Enchancements + Added admin email notification when student cancels a subscription + Quiz results will now display the question's description when reviewing results as a student and on the admin panel during grading + Add action hook fired when a student cancels a subscription (`llms_subscription_cancelled_by_student`) + Reduce unnecessary DB queries for integrations by checking for dependencies and then calling querying the options table to see if the integration has been enabled. + Updated the notifications settings table to be more friendly to the human eye ##### Bug Fixes + Fix admin scripts enqueue order. Fixes issue preventing manual student enrollment selection from functioning properly in certain scenarios. + Shift + Enter when in a question choice field now adds a return as expected instead of exiting the field + When pasting into question choice fields HTML from RTF documents will be automatically stripped + Ensure certificates print with a white brackground regardless of theme CSS + Fix issue causing themes with `overflow:hidden` on divs from cutting certificate background images + Upon export completion unlock tables regardless of mail success / failure + Resolve issue causing incorrect number of access plans to be returned on systems that have custom defaults set for `WP_Query` `post_per_page` parameter + Fix error occurring when all 3rd party integrations are disabled by filter, credit to [@Mte90](https://github.com/Mte90)! + Ensure `LLMS()->integrations()->integrations()` returns all integrations regardless of availability. + Updated `LLMS_Abstract_Options_Data` to have an option set method ##### Template Updates + [templates/quiz/results-attempt-questions-list.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results-attempt-questions-list.php) = v3.17.7 - 2018-04-27 = ------------------------ + Fix issue preventing assignments passing grade requirement from saving properly + Fix issue preventing builder toggle switches from properly saving some switch field data + Fix with "Launch Builder" button causing it to extend outside the bounds of its container + Fix issue with builder radio select fields during view rerenders + Course Outline shortcode (and widget) now retrieve parent course of the current page more consistently with other shortcodes + Added ability to filter which custom post types which can be children of a course (allows course shortcodes & widgets to be used in assignment sidebars of custom content areas) = v3.17.6 - 2018-04-26 = ------------------------ + Updated language on recurring orders with no expiration settings. Orders no longer say "Lifetime Access" and instead output no expiration information + Quiz editor on builder updated to be consistent visually and functionally to the lesson settings editor + Improved the builder field API to allow for radio element fields + Fix issue causing JS error on admin settings pages + Updated CSS for Certificates to be more generally compatible with theme styles when printed + Allow system print settings to control print layout for certificates by removing explicit landscape declarations + Now passing additional data to filters used to create custom columns on reporting screens + Remove unused JS files & Chosen JS library + Added filter to allow opting into alternate student dashboard order layout. Use `add_filter( 'llms_sd_stacked_order_layout', '__return_true' )` to stack the payment update sidebar below the main order information. This is disabled by default. + Achievement and Certificate basic notifications now auto-dismiss after 10 seconds like all other basic notifications + Deprecated Filter `llms_get_quiz_theme_settings` and added backwards compatible methods to transition themes using this filter to the new custom field api. For more information see new methods at https://lifterlms.com/docs/course-builder-custom-fields-for-developers/ + Increased default z-index on notifications to prevent notifications from being hidden behind floating / static navigation menus ##### Template Updates + [templates/myaccount/my-orders.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-orders.php) + [templates/myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order.php) = v3.17.5 - 2018-04-23 = ------------------------ ##### Admin Settings Interface Improvements + Improved admin settings page interface to allow for section navigation + Updated checkout setting pages to utilize a separate section (page) for each available payment gateway + Added a table of payment gateways to see at a glance which gateways are enabled and allows drag and drop reordering of gateway display order + Moved dashboard endpoints to a separate section on the accounts settings area + Updated CSS on settings page to have more regular spacing between subtitles and settings fields + Added a "View" button next to any admin setting post/page selection field to allow quick viewing of the selected post + Purchase page setting field is now ajax powered like all other page selection settings + Renamed dashboard settings section titles to be more consistent with language in other areas of LifterLMS + All dashboard endpoints now automatically sanitized to be URL safe ##### Updates and Enhancements + Dashboard endpoints can now be deregistered by setting the endpoint slug to be blank on account settings ##### Bug Fixes + Fix issue causing 404s for various script files when SCRIPT_DEBUG is enabled + Fix issue with audio & video embeds to prexvent fallback to default post attachments + Fix issue causing student selection boxes to malfunction due to missing dependencies when loaded over slow connections ##### Template Updates + [templates/myaccount/navigation.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/navigation.php) = v3.17.4 - 2018-04-17 = ------------------------ + Added core RTL language support + Fixed fatal error on student management tables resulting from deleted admin users who manually enrolled students + Added filter to allow 3rd parties to disable achievement dupchecking (`llms_achievement_has_user_earned`) + Added {student_id} merge code which can be utilized on certificates + Added merge code insert button to certificates editor + Added filter to allow 3rd parties to disable certificate dupchecking (`llms_certificate_has_user_earned`) + Added filter to allow 3rd parties to add custom merge codes to certificates (`llms_certificate_merge_codes`) + Fix restriction check issue for lessons with drip or prerequisites on course outline widget / shortcode + Bumped WP tested to version to 4.9.5 ##### Template Updates + [templates/course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php) + [templates/course/outline-list-small.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/outline-list-small.php) = v3.17.3 - 2018-04-11 = ------------------------ + Course and Membership instructor metabox search field now correcty states "Select an Instructor" instead of previous "Select a Student" + Added missing translation for "Select a Student" on admin panel student selection search fields + Fix issue causing reporting export CSVs to throw a SYLK interpretation error when opened in Excel + Fix issue causing drafted courses and memberships to be published when the "Update" button is clicked to save changes + Remove use of PHP 7.2 deprecated `create_function` + Fix errors resulting from quiz questions which have been deleted + Fix issue causing current date / time to display as the End Date for incomplete quiz attempts on quiz reporting screens ##### Template Updates + [templates/admin/reporting/tabs/quizzes/attempt.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/quizzes/attempt.php) + [templates/quiz/results-attempt-questions-list.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results-attempt-questions-list.php) = v3.17.2 - 2018-04-09 = ------------------------ + Fixed issue preventing lesson video and audio embeds from being *removed* when using the course builder settings editor + Fixed issue causing question images to lose the image source + Updated student management table for courses and memberships to show the name (and a link to the user profile) of the site user who manually enrolled the student. + Add "All Time" reporting to various reporting filters + Added API for builder fields to enable multiple select fields + Fix memory leak related to assignments rendering on course builder + Fix issue causing course progress and enrollment checks to incorrectly display progress data cached for other users + Lesson progression actions (Mark Complete & Take Quiz buttons) will now always display to users with edit capabilities regardless of enrollment status ##### Template Updates + [templates/course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php) + [templates/course/outline-list-small.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/outline-list-small.php) [View the full changelog](https://github.com/gocodebox/lifterlms/blob/master/CHANGELOG.md#lifterlms-changelog)