Posted on

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.

Posted on

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 )






Posted on

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.

Posted on

Sensei 1.9 beta – Call for testers

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:

  • [newcourses] – A list of all courses.
  • [featuredcourses] – A list of featured courses.
  • [paidcourses] – A list of paid courses (those linked to a WC product).
  • [freecourses] – A list of free courses (not linked, or linked to a free WC product)
  • [usercourses] – 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:

  • [sensei_featured_courses number=”” =”” orderby=”” order=”” teacher=””] – A list of featured courses
  • [sensei_user_courses number=”” orderby=”” order=”” status=”active|completed”] – 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.
  • [sensei_courses teacher=”” category=”” exclude=”” ids=”” number=”” orderby=”” order=””] – 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.
  • [sensei_teachers include=”” exclude=”” ] – 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.
  • [sensei_user_messages] – A list of private Sensei messages for the current user.
  • [sensei_course_page id=””] – Display a specific course page’s content by id.
  • [sensei_course_categories orderby=”” order=”” parent=”” hide_empty=”” exclude=”” include=”” hierarchical=””] – 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.

Posted on

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.)

Posted on

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.)

Posted on

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.

Posted on

Sensei 1.8.6 bug fix release now available

Version 1.8.6 of Sensei has just been released. See our documentation for details of how to update.

This release fixes several typos, an issue related to javascript conflicts in the admin area, and a few other minor bugs.

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.)

Posted on

Sensei 1.8.5, Sensei Certificates 1.0.11 and Sensei BadgeOS 1.0.3

Version 1.8.5 of Sensei has just been released. See our documentation for details of how to update.

This release fixes several bugs:

  • Fixed an issue that stopped the “Lesson Preview” setting from being switched off once it was selected.
  • Fixed the Order Modules page, so you can order modules again.
  • Fixed the Order Modules link on the All Courses page.
  • Restored the “Contact teacher” button to lessons and quizzes.
  • Fixed an issue where gap fill questions could not be auto-graded.

We also added a new filter – sensei_round_mode – which enables you to change the number of decimal places used for quiz grades. By default they will round up to the nearest whole number.

See the changelog for full details of this release.

Sensei Certificates 1.0.11

We have also release Sensei Certificates 1.0.11 (changelog)

This release fixes a bug where the certificate visiblility setting could be seen by logged out users.

It also moves the Certificates admin menus to their own top level menu.

Sensei BadgeOS 1.0.3

Sensei BadgeOS 1.0.3 fixes an issue, enabling badges to now be retrieved based on course categories (changelog).

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