Sensei 1.9.1 bug fix release

Sensei 1.9.1 is now available. See our documentation for details of how to update.

This release fixes several bugs including:

  • Fixed a fatal error on certain hosts by providing a direct path to woocommerce hooks loading file.
  • Ensure that lessons display full content, not excerpt, for registered users.
  • Ensure that course description is visible on single course page.
  • Ensure preview lessons are visible when logged out.
  • Ensures boolean question type html shows both false and true option correctly.
  • Hide login message from users who are already logged in.

You can view the full changelog here.

As always, if you experience any issues with this release, please submit a support ticket and our ninjas will be happy to assist.

Sensei 1.9 Now Available

(Important: while we have thoroughly tested this release, it’s always possible that we missed something, so we strongly advise you to test the update yourself on a staging site before updating your live site.)

Sensei 1.9 is now available. See our documentation for details of how to update.

We have made a great effort to preserve backwards compatibility, however, there have been significant changes to templates, globals, and hooks, as well as the overall plugin structure, so it’s important to test thoroughly before updating. You can read more about the technical changes here.

Developers can also now refer to our Sensei Developer reference, which details all functionsand hooks in Sensei.

Other features in this release include language packs, new shortcodes, zero-grade questions, and improved lesson navigation.


If you use any of the following Sensei extensions, you should also update them to the latest version to ensure they work properly with Sensei 1.9:

  • Sensei Certificates (1.0.12)
  • Sensei Content Drip (1.0.4)
  • Sensei Course Participants (1.1.3)
  • Sensei Share Your Grade (1.0.3)

As always, if you experience any issues with this release, please submit a support ticket and our ninjas will be happy to assist.

Take the Sensei 2015 Survey

It’s time for our annual Sensei customer survey, which helps us learn more about your Sensei needs, and refine our product roadmap based on your responses.

If you’re a Sensei user and you have 5 – 10 minutes to spare, please help us out by completing the survey. We really appreciate your feedback.

Take the survey

1.9 Release Candidate

Sensei 1.9 is almost ready for the final release, but to be 100% sure we didn’t miss anything we wanted to give you the latest changes for a final round of testing.

If you have been testing our alpha and beta versions, we would like to thank you very much for all your efforts. Your input has helped us to catch critical bugs. We’re happy to say that all reported bugs have been fixed.

If you’ve already signed up for beta testing, you’ll shortly be receiving an email with instructions for testing Sensei 1.9 RC1

If you haven’t, you can sign up here.

If you would like to know what has changed please see the 1.9 developer post: What has changed .

Also a reminder that translators can now translate Sensei 1.9 strings on Transifex.

1.9 Developers take note

Most of the items in this post have been mentioned in the beta release post, but I would like to go into further detail. Version 1.0 comes with a lot of under the hood improvements which paves the way for an even stabler learning platform.

These changes may likely affect extensions or themes that you have written although we have tried our utmost to ensure backwards compatibility in all instances.

This post touches on the following issues:

Template Files

For 1.9 we have revamped all template files except for the email system templates. Every single file has been completely changed. With this complete change it is even easier to modify the templates or to add more functionality into them. The files themselves are more readable and include more context.


  • content-no-permissions.php – Moved into no-permissions.php with new hooks
  • content-single-course.php –  Moved into single-course.php
  • content-single-lesson.php – Moved into single-lesson.php
  • content-single-quiz.php – Moved into into single-quiz.php
  • content-single-message.php – Moved into single-message.php
  • course-results/ course-info.php – Move to function and added via a hook
  • single-course / course-meta.php – Move into a function that is now added via a hook
  • woocommerce / add-to-cart.php – Move into a function that is now added via a hook
  • single-quiz/  quiz-questions.php – Moved into single-quiz.php
  • learner-profile /  learner-info.php – Move into a function that is now added via a hook
  • single-lesson/  lesson-meta.php – Move into a function that is now added via a hook
  • taxonomy-course-category.php – Removed, the taxonomy archive now uses archive-course.php
  • taxonomy-lesson-tag.php – Removed, the taxonomy archive now uses archive-lesson.php


  • wrappers/*  – moved to  globals/* 
  • single-course/course-lessons.php – moved to single-course/lessons.php
  • single-course/course-modules.php – moved to single-modules.php/modules.php


  • content-course.php – used with the loop-course.php ( not used in single course )
  • content-lesson.php – used with the loop-lesson.php ( not used in single lesson )
  • content-message.php – used with the loop-message.php ( not used in single message )
  • teacher-archive.php – used as a base for the teacher archive with all their courses. Similar to the `author.php` template in WordPress core, but for teachers specifically.

Plugins structure

If you’ve been around the Sensei internals you will have noticed that classes were always `class-woothemes-sensei-name.php`. This has now been renamed  with class-sensei-name.php. The same has been applied within the class name for consistency sake.

All classes have been moved from the /classes/ directory to the /includes/ directory which is now the place where all php functionality will reside.

We also had an `inc` directory in the root folder which held external libraries and company wide scripts. This is now moved into includes/lib/.

Global Sensei Object

Going forward the recommended way to access Sensei from a plugin or theme will be to use Sensei(). Most of the functionality will also be using a static function approach. Deprecated in 2.1 $woothemes_sensei, It will still work but using it will throw errors.

Deprecated Hooks

Hooks have been removed and newer more generic hooks put in their place.




















sensei_single_course_content_inside_before array( )
























































sensei_quiz_question_inside_after $question_type







sensei_single_main_content (Single Lesson)


sensei_single_main_content  (Single Quiz)




sensei_single_main_content ( Single Course)




sensei_single_main_content  ( Single Message )






Help us Translate Sensei

Sensei 1.9 is currently in the beta testing phase, and one of the new features included with it will be downloadable language packs. Sensei in your language at the click of a button!

We rely on the Sensei community to contribute translations. Sensei is currently being translated into 30 languages, but there are only 8 languages with over 80% of the strings translated.

Screen Shot 2015-11-23 at 18.42.13.png

We need more languages!

We are looking for bilingual/multilingual Sensei users who can help us translate Sensei into other languages.

How can I help?

If you know a language other than English, you can help. All you need to do is head over to our Sensei project on Transifex, and click HELP TRANSLATE “Sensei”.

You’ll be taken to a signup page where you can create a free account, and as soon as that’s done you can start translating into any of the listed languages.

If your language isn’t listed, you’ll need to request a new language, and once we’ve approved the new language you can start translating.

I already translated Sensei. How can I contribute my translation?

If you’ve translated Sensei into your language, using POedit, Codestyling Localization, Loco Translate, or any other translation plugin, you can easily upload your .po file to Transifex. Just join the translation team for your chosen language and click on “Upload file”.

How do I use Transifex?

Translating in Transifex is simple, you just select an English string on the left, enter your translation on the right and click “Save”.

If you need more help using Transifex, check out their support pages.

If you have any questions about contributing translations, leave a comment below.

Sensei 1.9 beta – Call for testers

Please login to view your messages.

We’ve been hard at work on the latest Sensei update, and it’s almost ready! This beta release contains 514 commits from 10 contributors.

We would really love your help with testing the new features, to make sure it all works seamlessly.

What’s New?

The main changes in this version are an improved template system, built-in language packs, and a new collection of shortcodes for adding Sensei content anywhere in your site.

We need help to test these changes, to make sure that the new features work as they should, and also that everything still works as it did before for existing users.

Template Changes

We’ve made some changes to the frontend Sensei templates, combining files where appropriate, and separating logic from markup, making the templates much more flexible.

We need to test all of the following templates thoroughly. All screens need to be tested both when logged in and logged out. When testing courses/lessons/quizzes, you should test when logged in and taking the course, and when logged in and not taking the course.

    • New Course Archive Page
      • This includes the following new filters:
          • All – Displays all courses
          • Free – Displays all free courses
          • Paid – Displays all paid courses
          • Featured – Displays all featured courses
        • Sort by: Newest first / A-Z
    • Single Course Page (including courses with and without modules)
    • Single Lesson Page
    • Single Quiz Page (including quizzes with all question types)
    • Messages Page
    • Single Message Page
    • My Courses Page
  • My Profile Page

We have updated all templates except for the Email templates. If you have customised your templates in your theme they will still work. Please give us feedback if any of your templates break so we can look at improving the backwards compatibility.


The main frontend CSS file has moved from /assets/css/frontend.css to /assets/css/frontend/sensei.css


Previously we relied on shortcodes to display our course archives. In 1.9 we have introduced a new course archive template, as well as some new shortcodes that customers can use to display Sensei content wherever they wish.

The current shortcodes:

  • – A list of all courses.
  • – A list of featured courses.
  • – A list of paid courses (those linked to a WC product).
  • – A list of free courses (not linked, or linked to a free WC product)
  • Login

    – A list of courses the current user is taking or has completed. (Or a login/register form for logged out users).

These will continue to work for at least the next few versions, and we need to make sure they still work as they did before.

However, we will be encouraging people to switch to using the new course archive page, and the new shortcodes instead. The course archive page no longer requires shortcodes, and will be the page you select as “Course Archive Page” in Sensei > Settings.

All the following shortcodes and their parameters need testing thoroughly:

     – A list of featured courses
  • Login

     – A list of the courses the current user is taking. The default order here is by ‘title’ and order ‘ASC’. You can choose to show the completed or the active courses by the status parameter. If you omit this all courses (active and completed will be shown.
     – A list of specific courses by id. If no id’s are specified this shortcode will show all courses. By default this will show the most recent course by date. You can also specify the teacher and the category. Teacher can be the user ID or the teacher user name. Category can be the slug, id or term name.
  •  – A list of users with the teacher role, as link to their archive page. The include parameter is for adding extra users to the list of teachers. The exclude paramater will remove teachers already on the list.
  •  – A list of private Sensei messages for the current user.
  • Sensei LMS 3.5 has just been released and brings with it the ability to export courses, lessons and questions. This means you can export course content from one site and import it into another one, making it easier than ever to transfer courses between Sensei LMS sites.


    Sensei’s new export functionality is available from the Sensei LMS > Export menu. This first iteration supports exporting courses, lessons and questions in zip format. The downloaded zip file contains individual CSV files, one per selected content type:

    Export content to a CSV file

    Sample Course

    We’ve also added a new option to the setup wizard to install a sample course. This course is created in draft status so that it’s not publicly available, and walks you through how to get started with Sensei LMS:

    Install a sample course

    You can reach the setup wizard at any time by going to Courses > All Courses, clicking the Help tab at the top, and then clicking the Setup wizard button:

    Launch the setup wizard

    What Else is in this Release?

    • Courses with any status are displayed in the Course Prerequisite dropdown. Previously, only published courses were listed.
    • We fixed an issue with duplicate content sometimes being imported.
    • We fixed an error in the setup wizard that occurred when navigating to a previous step.

    For Developers

    If you’re a developer, here’s what you need to know about Sensei LMS 3.5.

    Deprecated Code

    • includes/3rd-party/wordpress-importer.php – Deprecated the entire file.

    To update, please head on over to DashboardUpdates in the WordPress admin.

    Please note: While we have thoroughly tested this release, it’s always possible that we’ve missed something. We recommend that you test the update on a staging site before updating your live site.

    In WooCommerce Paid Courses 2.1, it’s easier than ever to remove a learner’s enrollment. No more searching for orders — learners can now be removed with a single click! And restoring their enrollment is just as easy!

    With this release, we are also bumping the minimum supported version of WordPress to 5.2 and PHP to 7.0 to match WooCommerce.

    Remove Enrollment

    For enrolled learners, a new Remove Enrollment link is displayed when hovering over a learner in Learner Management. Clicking this link removes the learner from the course, revoking their access. The status of any order, subscription or membership associated with the learner’s enrollment is unaffected.

    Please note that if the course is tied to a product, subscription or membership, and the learner purchases that product / subscription / membership again, they will be re-enrolled in the course:

    Learner Management - Remove Enrollment

    Restore Enrollment

    Unenrolled learners who previously purchased a course can have their enrollment restored by clicking the Restore Enrollment link. This will re-enroll the learner in the course, and enrollment will once again be controlled by the associated order / subscription / membership:

    Learner Management - Restore Enrollment


    Unenrolled learners who do not have an active order / subscription / membership associated with their enrollment (for example, for a free course or one where an administrator enrolled them directly via Learner Management) can be re-enrolled by clicking the Enroll link. Fundamentally it does the same thing as restoring an enrollment — it enrollers the learner in the course — only there is no order / subscription / membership controlling enrollment:

    Learner Management - Enroll

    We hope these changes help to streamline the management of your learners!

    For Developers

    If you’re a developer, here’s what you need to know about WooCommerce Paid Courses 2.1.0.

    Deprecated Code

    • Sensei_WC_Paid_Courses\Course_Enrolment_Providers\WooCommerce_Simple::maybe_trigger_order_trash_change

    To update, please head over to DashboardUpdates in the WordPress admin.

    Please note: While we have thoroughly tested this release, it’s always possible that we’ve missed something. We recommend that you test the update on a staging site before updating your live site.

    What Are We Doing?

    As of Sensei LMS 3.4, we plan to follow WooCommerce’s lead and adopt an L-2 sliding window support policy for WordPress Core. This means that Sensei LMS will be guaranteed to work on the most recent version of WordPress, plus the latest release from the previous two versions. For example, Sensei LMS 3.4 (currently set for release on August 6th), will support WordPress 5.4.2, 5.3.4 and 5.2.7.

    We will also match our minimum required version of PHP with WooCommerce, which is currently set to PHP 7.0.

    Why Are We Doing This?

    Sensei’s most popular extension, WooCommerce Paid Courses, requires that WooCommerce be installed in order for it to work. Because of this dependency, it follows that WooCommerce Paid Courses should use the same minimum version requirement for WordPress and PHP as WooCommerce uses. Given that Sensei LMS is also a dependency of WooCommerce Paid Courses, it too should specify the same requirement.

    We hope that you’ll join us in moving forward the WordPress platform and the PHP programming language, and in helping to keep all sites running Sensei LMS up to date with the latest, greatest, and most secure software available.

    Sensei LMS 3.3 has just been released and brings with it the ability to import courses, lessons and questions! You can also use the importer to update existing course content en masse.


    Sensei’s new import functionality is available from the Sensei LMS > Import menu. This first iteration supports importing courses, lessons and questions in CSV file format:

    Import content from a CSV file

    A future release will add export functionality, making it even easier to transfer course content between Sensei LMS sites!

    To download CSV files with sample data, or to learn more about the expected file format, please see our import documentation.

    What Else is in this Release?

    • Appended random text to the file name of file upload questions to make it more difficult for external users to view them.
    • Added new CSS classes for preview and completed lessons not in a module to allow for easier element targeting.
    • Fixed an issue with the setup wizard Features step not saving if nothing was selected.

    For Developers

    If you’re a developer, here’s what you need to know about Sensei LMS 3.3.

    New Filters

    • sensei_import_csv_delimiter – Set the default delimiter to use when importing CSV files.
    • sensei_import_csv_delimiter_options – Specify the different delimiters that will be tried when importing CSV files.
    • sensei_learner_enrolled_courses_args – Customize the query arguments used to fetch the courses a learner is enrolled in.

    New Action

    • sensei_data_port_complete – Fires when the import job completes.

    Deprecated Code

    • Sensei_Grading::load_data_object – Use new Sensei_Grading_Main or new Sensei_Grading_User_Quiz

    To update, please head on over to DashboardUpdates in the WordPress admin.

    Please note: While we have thoroughly tested this release, it’s always possible that we’ve missed something. We recommend that you test the update on a staging site before updating your live site.

    Sensei LMS 3.2 was released this week. In addition to fixing several bugs, it adds WooCommerce Paid Courses and Sensei Content Drip to the Features step of the setup wizard.

    What’s in this Release?

    • Both admins and the lesson author can now view a quiz for a lesson with an unmet prerequisite.
    • Added the sensei CSS class to the course results, learner profile and teacher archive pages.
    • Switched to a more semantic heading structure on the course results page.
    • Added missing taxonomy labels.
    • Fixed an incorrect parameter being passed to the has_term function.
    • Added paid extensions to the setup wizard.

    For Developers

    If you’re a developer, here’s what you need to know about Sensei LMS 3.2:

    Template File Changes

    • templates/course-results/lessons.php – Use a more semantic heading structure.

    Deprecated Code

    • sensei_the_excerpt

    To update, please head on over to DashboardUpdates in the WordPress admin.

    Please note: While we have thoroughly tested this release, it’s always possible that we’ve missed something. We recommend that you test the update on a staging site before updating your live site.

    Sensei LMS 3.1 has just been released. The primary focus of this release is a new setup wizard to help users get started creating courses straight away.

    With this release, we are bumping the minimum supported version of WordPress to 5.0. This means we will no longer be actively supporting the classic editor.

    Setup Wizard

    The setup wizard has 4 simple steps that can be completed in just a few minutes:

    • Welcome – Brief overview of the wizard and an opportunity to opt in to usage tracking.
    • Purpose – We’d love to learn more about why you’re interested in offering online courses.
    • Features – Facilitates the installation of Sensei LMS’s most popular extensions.
    • Ready – Basic setup is complete. From here, we provide a few recommendations on what to do next.
    Setup Wizard - Welcome

    The setup wizard is displayed as soon as Sensei LMS is activated, but it’s also available to administrators at any time from the new Help tab on the Courses page:

    Run setup wizard

    What Else is in this Release?

    • Added some missing translations
    • Added the Date Completed field to the Learner Management page
    • Added a filter for enabling/disabling enrolment related background jobs
    • Change “Lessons” to “Lesson” for single lessons in a course or module
    • Removed the Most Used tab from Course Modules
    • Fixed the course dropdown width on the lessons page
    • Fixed a PHP warning on the single course page

    For Developers

    If you’re a developer, here’s what you need to know about Sensei LMS 3.1.

    Template File Changes

    • templates/course-results/lessons.php – Display “Lesson” if there is only one lesson in the course.
    • templates/single-course/modules.php – Display “Lesson” if there is only one lesson in the module.
    • templates/single-course.php – Initialize the loop.

    New Filter

    • sensei_is_enrolment_background_job_enabled – Check if a specific enrolment background job is enabled.

    Deprecated Code

    • includes/email-signup/template.php
    • Sensei_Email_Signup_Form – Entire class has been deprecated
    • Sensei_Admin::admin_install_notice – Use Sensei_Onboarding::setup_wizard_notice
    • Sensei_Admin::admin_installed_notice – Use Sensei_Onboarding::setup_wizard_notice
    • Sensei_Admin::admin_notices_styles – Use Sensei_Onboarding::setup_wizard_notice
    • Sensei_Admin::create_page – Use Sensei_Onboarding_Pages::create_page
    • Sensei_Admin::create_pages – Use Sensei_Onboarding_Pages::create_pages
    • Sensei_Admin::install_pages – Use Sensei_Onboarding_Pages::create_pages
    • Sensei_Admin::install_pages_output – Use Sensei_Onboarding_Pages::create_pages
    • Sensei_Main::load_email_signup_modal
    • Sensei_Usage_Tracking_Base::enqueue_script_deps
    • Sensei_Usage_Tracking_Base::handle_tracking_opt_in – Use Sensei_Onboarding::setup_wizard_notice
    • Sensei_Usage_Tracking_Base::hide_tracking_opt_in – Use Sensei_Onboarding::skip_setup_wizard
    • Sensei_Usage_Tracking_Base::is_opt_in_hidden – Use Sensei_Onboarding::setup_wizard_notice
    • Sensei_Usage_Tracking_Base::maybe_display_tracking_opt_in – Use Sensei_Onboarding::setup_wizard_notice
    • Sensei_Usage_Tracking_Base::opt_in_dialog_text_allowed_html – Use Sensei_Onboarding::setup_wizard_notice
    • Sensei_Usage_Tracking_Base::output_opt_in_js

    To update, please head on over to DashboardUpdates in the WordPress admin.

    Please note: While we have thoroughly tested this release, it’s always possible that we’ve missed something. We recommend that you test the update on a staging site before updating your live site.

    The Sensei LMS team is currently hard at work on a couple of features that will ship over the next few releases – a setup wizard to walk new users through configuring Sensei, and adding the ability to export and import course content.

    Although a bit further out, we’re also starting to look into making some much-needed improvements to quiz functionality. We’ve prepared several design concepts and are looking for your feedback on which you prefer and why.


    The current paradigm of displaying all questions to the learner on a single page can be problematic. This is especially true when a quiz contains hundreds of questions.

    To prevent overwhelming the learner, we are planning to show each question on its own page. This will require displaying buttons to enable the learner to move to the next question, and pagination so that they can view their progress.

    Stepper – Option 1

    Stepper pagination would be displayed either above or below the question, while on a mobile device it would be displayed along the right side:

    Continue and Back buttons would be added below the question to enable the learner to move back and forth in the quiz, and the Contact Teacher button would be moved so that all actions are in the same location:

    Traditional – Option 2

    Traditional pagination could also be displayed either above or below the question:

    Pagination above the quiz

    If displayed below, then the breadcrumbs would need to move to above the question:

    Pagination below the quiz


    We are also planning to introduce a quiz timer, so that learners have a limited amount of time in which to complete the quiz.

    Full-width – Option 1

    The full-width timer would be fixed at the bottom of the page. Although fairly minimalistic, a full-width timer would enable the learner to keep a close eye on how much time they have left:

    Circular – Option 2

    The circular timer would be fixed at the bottom right corner of the page. This is a classical approach to a timer that may feel less intrusive to learners:

    We’d love to hear your thoughts on these design concepts! Please leave your feedback in the comments below.

    Today we’re making Sensei LMS Certificates 2.0.4 available on! This is a small release to make the extension compatible with deploying to the plugin directory. We’ve also made a minor change to rename it from Sensei Certificates to Sensei LMS Certificates.

    For Developers

    Despite this being a small release, there are still a few changes that developers need to be aware of.

    Template File Change

    templates/single-certificate_template.php – Added escaping for wp_die function call.

    Deprecated Functions & Methods

    • certificate_templates_wp_color_picker_js
    • WooThemes_Sensei_Certificates::add_inline_js
    • WooThemes_Sensei_Certificates::output_inline_js

    Today we’re releasing Sensei LMS 3.0 and WooCommerce Paid Courses 2.0. These are both major releases that overhaul course access and simplify the rules for adding and removing access for learners.

    Sensei LMS 3.0 and Sensei with WooCommerce Paid Courses introduce the concept of course enrollments. When updating to the new version, a migration job will run that enrolls existing learners in courses. This means that any learner who is listed in Learner Management for a particular course prior to the migration will be enrolled in that same course after the migration.

    Note: As this is a major release that affects course access, we strongly recommend that you test the update on a staging site before updating your live site. We also recommend that you take a backup of your live site prior to updating.

    For sites running Sensei LMS + Sensei with WooCommerce Paid Courses: For sites that are running both Sensei LMS and Sensei with WooCommerce Paid Courses, we strongly recommend updating Sensei with WooCommerce Paid Courses first, followed by Sensei LMS. Updating Sensei LMS first would mean that learners would not have access until Sensei with WooCommerce Paid Courses was also updated.

    Course Enrollments

    Course enrollments make it possible to separate course progress from course access. This means that a learner can be unenrolled from a course while still keeping their existing progress intact. If that learner later re-enrolls in the course, they can continue from where they left off.

    Learners can be removed from a course by clicking Remove manual enrollment or re-enrolled by clicking Manually enroll learner:

    Screenshot of Learner Management page

    WooCommerce Paid Courses

    For paid courses, there is an important distinction between learners who were enrolled in a course because they purchased it, and those who were manually enrolled by an admin or teacher (i.e. a teacher or admin added the learner to the course even though they did not purchase it). There is a filter on the Learner Management page that can be used to view only those learners who were manually enrolled:

    Special Considerations for WooCommerce Memberships

    Migrating Active Memberships with Cancelled Orders

    For those using WooCommerce Memberships to grant access to courses, you may see the following notice after upgrading:

    In previous versions of Sensei with WooCommerce Paid Courses, a learner with an active membership and a cancelled order was not given access to the membership’s courses. This behaviour may be contrary to what you would expect, so as of Sensei with WooCommerce Paid Courses, all learners with an active membership and a cancelled order will have access to the membership’s courses. If you would like to change this behaviour for existing memberships, click the View Active Memberships with Cancelled Orders button and change the status of the memberships on that page to Cancelled.

    Migrating Inactive Memberships

    The default enrollment migration behaviour for learners who were granted access to a course via a membership is to enroll any learner who is listed in Learner Management for a particular course, regardless of the status of their membership. This means that learners with memberships that are paused, expired, or cancelled, but who had access to the course(s) associated with that membership prior to the migration, will still be enrolled in and have access to the course(s) after the migration.

    If this is not the behaviour you desire, and would prefer NOT to enroll learners in courses if their associated membership is paused, expired, or cancelled, then please follow these instructions before updating to Sensei with WooCommerce Paid Courses It’s important to be aware that this will remove access to courses for learners with memberships that are paused, expired, or cancelled:

    • Install and activate the Code Snippets plugin.
    • Add a new snippet that contains the following code:
      • add_filter( 'sensei_wc_paid_courses_migration_inactive_memberships_provide_manual_enrolment', '__return_false' );
    • Update Sensei with WooCommerce Paid Courses.

    Improved Support for Twenty Twenty

    We’ve improved support for the Twenty Twenty theme to ensure that Sensei LMS now works well across all default WordPress themes:

    Developers: For new hooks, deprecations and template file changes, please see our previous beta release posts – Beta 1, Beta 2, Beta 3 and Beta 4.

    When you’re ready, head over to DashboardUpdates to update Sensei LMS or Sensei with WooCommerce Paid Courses from within WordPress.

    Today we’re releasing Sensei LMS 3.0 Beta 4 and WooCommerce Paid Courses 2.0 Beta 4, which we are hopeful will be the final beta prior to the production release.

    We hope that the fact that we’ve released 4 betas helps to highlight the importance and size of this release, and encourages everyone to do some testing on their staging sites before updating their live sites.

    Sensei LMS 3.0

    Here’s what’s new in Beta 4:

    • Add multisite support for course enrolments.
    • Delete provider journal data when plugin is uninstalled.
    • Display a notice to remind admins to upgrade WooCommerce Paid Courses to 2.0 for sites that are running Sensei LMS 3.0 and Sensei with WooCommerce Paid Courses 1.x. For sites running both plugins, we strongly recommend updating Sensei with WooCommerce Paid Courses before Sensei LMS.
    • Made a change to use an unfiltered method when checking whether or not a learner has started a course. This change will impact sites with code customizations that leverage the sensei_user_started_course filter, and means that this filter should no longer be relied on to provide access to a course. If you are currently doing so, please consider either switching to a custom enrolment provider (example here), or leveraging hooks in the relevant third-party plugin (i.e. WooCommerce, WooCommerce Subscriptions or WooCommerce Memberships).

    You can download Sensei LMS 3.0 Beta 4 here.

    WooCommerce Paid Courses 2.0

    We renamed the sensei_wc_paid_courses_migration_ended_memberships_provide_manual_enrolmentfilter introduced in Beta 3 to sensei_wc_paid_courses_migration_inactive_memberships_provide_manual_enrolment, and simplified its logic such that it will block users with inactive memberships from being manually enrolled when the migration runs, regardless of the status of the associated order.


    As always, please test the beta release on a staging site and not your live site. If you don’t have a staging site, you can use the WP Staging plugin to create one.

    If you’ve already tested a previous beta on your staging site, you should take the following steps prior to testing Beta 4:

    • Deactivate and delete the older beta versions of Sensei LMS.
    • Restore the database backup for your staging site.
    • Download Beta 4 and unzip it to your wp-content/plugins folder. You can choose to either override your existing folder, or rename it to something else before unzipping, if applicable.
    • Activate Sensei LMS 3.0.0 Beta 4.

    The above steps are necessary to ensure the course enrolment migration process executes again. If you haven’t tested any of the beta releases prior to this, there’s no need to restore a database backup.

    Please note that the release date has been moved to April 27th, 2020, which will allow for time to test Beta 4 prior to release. Feel free to leave a comment on this post if you find any issues while testing our latest beta.

    Sensei LMS 3.1

    Author: donnapep

    Sensei LMS 3.1 introduces a setup wizard to help users get started creating courses straight away.

     – Display a specific course page’s content by id.
  • No course categories found. – Display the course categories in a list. The categories will link to the archive pages. To only show top level categories, set the parent parameter to zero.
  • [sensei_unpurchased_courses] – A list of all courses linked to a WC product, which the current user has not yet purchased.

Language Packs

If a Sensei translation exists for your chosen language, it can now be installed and updated directly from WP admin.

To test this:

  • Go to our Sensei project on Transifex, and choose a language from the list (preferably one that is mostly translated).
  • Go to Settings > General in your WordPress dashboard and change your Site Language to your chosen language.
  • When you click ‘Save Changes’ your site’s language will change, and you should see a notification at the top of your dashboard telling you there is a Sensei translation available for your language.
  • Click ‘Install’ and the language pack will be installed. You should see a success message, and your Sensei admin pages should now display in your selected language.
  • Also test switching to a language that isn’t in the list on Transifex and make sure you aren’t prompted to install a language pack.

There are currently only a small number of language packs available, mostly with incomplete translations. We will be posting again soon with more details on how you can help contribute Sensei translations.

Other changes

There are several other changes in this release, which also need testing:

  • When lessons are completed, you will now see a “Next Lesson” button in the completion message.
  • Improved support for Twenty Fifteen theme
  • Added support for Twenty Sixteen theme
  • Improved support for Storefront theme
  • If you view a quiz that has no questions, you will be redirected back to the lesson
  • All chosen dropdowns have been replaced with Select2
  • Questions can now have a zero grade
  • Course management metabox on Edit Course screen which links directly to learner management and grading.

Important notes for developers

  • Sensei()

    now officially replaces


    , which will be deprecated in a future update.

  • The php classes are now auto loaded when needed instead of loading all classes for every request. New filters for all sensei core post type for easier customization.
  • You’ll notice that our class naming convention is no longer class-woothemes-sensei but rather class-sensei.
  • Better class and function comments to assist developer IDE with discovery.

How to test

If you’re interested in helping us test this update, please complete this short form, and we’ll get back to you soon with further details:

Sign up for beta testing


This round of beta testing will be open until Monday 30th November, so the sooner you can test the better.

1.8.8 bug fix release

Sensei 1.8.8 was released last Friday, fixing a permissions issue preventing admins from accessing certain Sensei menus in some cases, and an issue with select boxes in Sensei admin pages. See the changelog for full details.

See our documentation for details of how to update.

(Comments are closed on this post. If you experience any issues, please contact support via the link in the sidebar.)

1.8.7 bug fix release

While we were working on then next major release (1.9) we realised that there were a few pesky issues bugging you. We didn’t want you to wait much longer so we decided to bring this fix out quickly.

See our documentation for details of how to update.

The issues that were fixed are outlined below in further detail:

  • Fixed: WP_Widget constructors updated as within WordPress Core – The way classes were constructed was changed in the later version of PHP. We no only use __construct and not the old method of using the class name as a function in the class.
  • Fixed: Course created email sent twice – We moved the function to a different hook to avoid duplication here.
  • Fixed: Menu items with blank URL disappeared when the private messages functionality were disabled in settings.
  • Fixed: Answers disappear after adding a question.
  • Fixed: Multiple Choice random order was applied by default even if the user didn’t select this.
  • Fixed: TextArea question answers not displaying correctly in grading.
  • Fixed: Question type contains author name
  • Fixed: “Other Lessons” title always shows, even with no lessons under it.
  • Fixed: auto-grading for gap-fill questions.
  • Fixed: Double forward slash when loading templates.
  • Fixed: Invalid prompt message when trying to leave the Add Question page
  • Fixed: Installing the sensei pages, the dropdowns for both pages are still empty on the first load.
  • Fixed: allow for course products to be part WooCommerce product bundles
  • Fixed: removed WordPress 4.3 table list notices
  • Tweak: Give the teacher the right access to Lesson comments
  • Tweak: Users with teacher role will now be sent to admin after login.
  • Tweak: Show admin bar to users who can ‘edit_courses’ – This was

See the changelog for full details of this release.

(Comments are closed on this post. If you experience any issues, please contact support via the link in the sidebar.)

New Development Workflow


If you have contributed to Sensei in the past, you would have noticed that we worked on release branches. We would branch out and accept pull requests specifically to these release branches ( e.g. release-1-9 ). This means that contributors had to keep track of the branches before submitting PR’s. This was overly complicated.

Today we have good news for you. You only need to follow the master branch. Sensei core developers will take responsibility for the complications around branching and creating specific releases. You only have to make sure that your pull requests are ready to merge.

We’ve seen a steady increase in pull request. Thank you for all your contributions so far.