Upgrading from Sensei to Sensei with WooCommerce Paid Courses

In May 2019, the original Sensei plugin was split into 2 new plugins – Sensei LMS (free) and WooCommerce Paid Courses (paid). If you had an active Sensei license at that time, it was automatically converted to a Sensei with WooCommerce Paid Courses license.

If you have Sensei 1.12.3 (or lower) installed, and you sell your courses with WooCommerce, you’ll want to follow this guide to upgrade to Sensei with WooCommerce Paid Courses.

Note that if you are using any Sensei extensions, you will need to update them to version 2.0.0 or higher. Older versions of extensions are not compatible with Sensei with WooCommerce Paid Courses.

On your plugins page, you’ll see the following:

Go to WooCommerce > Extensions > WooCommerce.com Subscriptions.

Make sure you’ve connected your site to your WooCommerce.com account, then click the Update button to refresh your Subscriptions:

Now look in your list of subscriptions, and you’ll find your former Sensei license has been replaced by a WooCommerce Paid Courses license. It should look something like this:

Click the toggle switch to activate the subscription if it’s not already active, then click the Update button:

The update will run, and you should see the following:

Return to your plugins page and you’ll find that Sensei has been successfully updated to Sensei with WooCommerce Paid Courses. That’s it! You can now continue to sell your courses with Sensei.

Deprecation Policy

This document outlines Sensei’s code deprecation policy and the timelines for removing deprecated code from the codebase.

Deprecated code is always removed in a major release. The scenarios below assume that there is at least one minor release that contains the deprecation before the major release in which the code is removed.

When to Remove Deprecated Code

Deprecated code removal will adhere to the following guidelines:

  • Code that is considered public will be removed two major versions after the deprecation. This includes hooks, public and protected methods and global functions that have not been marked with @access private.
  • Functions and methods marked with @access private are considered private and shouldn’t be used. They will be removed in the next major version after being marked as deprecated.
  • Private methods may be removed without notice.

Code Deprecation Process

When deprecating code, the scenarios above can be used to arrive at the major version in which the code will be removed and, if desired, the version can be included in the deprecation notice. Code will be marked as deprecated by using standard WordPress methods for this purpose _deprecated_function, _deprecated_argument or _doing_it_wrong.

A Github issue for tracking deprecations should be created and attached to the appropriate milestone. A reference to the pull request in which the code was deprecated, and the name of the function/method/hook that is being deprecated, should be added to the issue description. Additional deprecations scheduled for removal in the same release can be appended to the existing issue.


Can’t quite find what you’re looking for? Perhaps you’ll find the answer here.

  • Sensei Pages – An overview of the pages Sensei creates as part of the installation process.
  • Adding Sensei Pages to Navigation Menus – There are several different types of Sensei pages available that you can add to any of the menus on your site.
  • Content Hierarchy – Sensei is comprised of multiple components that form a hierarchy of content.
  • Menu Items for Administrators – Administrators of your site will have access to new menu items like Analysis and Learner Management.
  • Learner Profiles – Learners (optionally) have their own profile page showing basic information about them and the courses they’re enrolled in.
  • Shortcodes  Shortcodes allow you to display a list of courses, course categories, messages and more directly on your WordPress-powered site.
  • Widgets – Widgets enable you to display course information in a widget area such as a sidebar or footer.
  • Sensei in Your Language – You can use Sensei in the language of your choice or submit new translations.
  • Roles & Capabilities – Sensei adds a new Teacher role and some additional capabilities for admin users.
  • Deprecation Policy – This page describes the process we use to deprecate code in Sensei, especially useful if you are a developer.


You can add shortcodes to the content area of any page or post in order to display specific content. For more on shortcodes and how to use them, please see WordPress Codex: Shortcodes.

Sensei provides the following shortcodes:


[sensei_courses] – A list of courses.

Option Description Values Default
category Show courses from a specific category Any valid course category ID, slug, or term name none (all categories)
exclude Specific course(s) to exclude from display Any valid course ID(s) (comma separated) none
ids Specific course(s) to display Any valid course ID(s) (comma separated) none (all courses)
number Number of courses to display Any valid number 10
order Sort order asc, desc desc (asc when orderby is menu_order)
orderby How to order the courses Any orderby parameter found here date
teacher Show courses from specific teacher(s) Any valid user ID(s) or user name(s) (comma separated) none (all teachers)


[sensei_courses category="music" exclude="23" number="10" order="asc" orderby="name" teacher="123"]

Featured Courses

[sensei_featured_courses] – A list of featured courses.


Option Description Values Default
number Number of featured courses to display Any valid number 10
order Sort order asc, desc desc (asc when orderby is menu_order)
orderby How to order the courses Any orderby parameter found here date
teacher Display only courses by a specific teacher User ID or user name none (all teachers)


[sensei_featured_courses number="5" order="asc" orderby="name" teacher="123"]

Courses by User

[sensei_user_courses] – A list of courses the currently logged in user is taking.


Option Description Values Default
number Number of courses to display per page Any valid number 10
order Sort order asc, desc asc
orderby How to order the courses Any orderby parameter found here title
status Whether to display active or completed courses active, complete no status (displays both active and completed)


[sensei_user_courses number="5" order="desc" orderby="name" status="complete"]


[sensei_teachers] – A list of users with the teacher role, displayed as links to their author archive page.


Option Description Values Default
exclude Teachers to exclude Any valid user IDs or user names (comma separated) none (display all teachers)
include Teachers to include Any valid user IDs or user names (comma separated) none (display all teachers)


[sensei_teachers exclude="23"]

User Messages

[sensei_user_messages] – A list of private Sensei messages for the current user.


There are no options for this shortcode.

Course Page

[sensei_course_page] – Display the content of a specific course page by course ID.

Option Description Values Default
id (required) The ID of the course to display Any valid course ID none


[sensei_course_page id="123"]

Course Categories

[sensei_course_categories] – A list of course categories.


Option Description Values Default
exclude Specific course categories to exclude Any valid course category ID, slug, or term name (comma separated) none (display all)
hide_empty Display only categories containing at least one course true, false false
include Specific course categories to display Any valid course category ID, slug, or term name (comma separated) none (display all)
number Number of categories to display Any valid number 100
order Sort order asc, desc asc
orderby How to order the categories Any orderby parameter found here name
parent Display only categories with a specific parent Any valid course category ID. To show only top-level categories, set parent="0". none (display all)


[sensei_course_categories exclude="music" hide_empty="true" order="desc" orderby="slug"]

Unpurchased Courses

[sensei_unpurchased_courses] – A list of all courses linked to a WooCommerce product that the current user has not yet purchased.


Option Description Values Default
number Number of courses to display Any valid number 10
order Sort order asc, desc desc (asc when orderby is menu_order)
orderby How to order the courses Any orderby parameter value found here title


[sensei_unpurchased_courses number="5" order="asc" orderby="date"]

Legacy Shortcodes

The following shortcodes were deprecated in Sensei 1.9 and should no longer be used:

[newcourses] – Displays the latest courses.
[featuredcourses] – Displays the courses marked as featured.
[freecourses] – Displays courses that do not require payment to take.
[paidcourses] – Displays courses that require payment to take.
[usercourses] – Displays the user’s active/completed courses or a login/register form if they are not logged in.

Finding the ID

In order to find the course ID to use for the [sensei_courses] or [sensei_course_page] shortcode, go to Courses > All Courses and edit the course you want to use. The URL will show a number that is the ID for your course (in the screenshot below, the course ID is 7707).


You can use a similar technique to find the course category ID or teacher ID.



Sensei has four default widgets for you to use on the front-end of your theme. You will find these under Appearance > Widgets.

Category Courses – Outputs a list of courses in a chosen category
Course Categories – Outputs a list of course categories
Course Component – Outputs a list of courses, either new, featured, free, paid, active, or completed courses
Lesson Component – Outputs a list of the latest lessons for the site

Additionally, by installing the free Sensei Course Progress extension on your site you’ll get access to an extra widget:

Course Progress – Displays all the lessons in the current course or module, and lets your learners see, at a glance, which ones they have completed and which they have yet to take.


Content Hierarchy

Visual representation of Sensei content hierarchy

Courses and Lessons

The main content hierarchy in Sensei is Courses > Lessons

A course is a collection of lessons.

Each course can contain any number of lessons.

Each lesson can only belong to a single course.

Users register for a course to access that course’s lessons.

Courses can also be organized into Course Categories. A course can belong to any number of categories.

See Adding Courses and Adding Lessons for more information.


If you previously used our free Sensei Modules extension, this is no longer required as of Sensei 1.8. It should be removed via Plugins > Installed Plugins. Sensei now includes Modules by default, adding another level of organization between Courses and Lessons.

This enables you to group lessons into Modules, creating a hierarchy of Courses > Modules > Lessons.

A module is used only to organize lessons within a course, similar to a category. It doesn’t contain any content, other than an optional description.

A module can be used in any number of courses.

Within a course, each lesson can only belong to a single module.


Each lesson can optionally contain a single Quiz to test your students’ learning.

Each lesson can only have one quiz, and a quiz can only belong to a single lesson.

See Adding Quizzes for more information.


Quizzes are made up of a list of questions. A quiz can contain any number of questions, and each question can be used in any number of quizzes.

See Question Bank for more information.

Learner Profiles

All learners have their own profile page. This page displays the learner’s name, bio, avatar and their active/completed courses.

The courses area looks identical to the My Courses page content. In the Sensei settings, you have two options available to manage the learner profiles:

  • Enable/disable public learner profiles
  • Show/hide the learner’s active/completed courses on their profile

The learner profile URL is one of the following, depending on whether have pretty permalinks enabled on your site:

  • Pretty permalinks enabled: http://www.example.com/learner/user-nicename
  • Pretty permalinks disabled: http://www.example.com/?learner_profile=user-nicename

Adding a menu link to the Learner Profile

You can add a link to the currently logged in user’s Learner Profile in any navigation menu, via Appearance > Menus:

(Note: If you don’t see the Sensei LMS section, click ‘Screen Options’ at the top right of the screen, and make sure Sensei LMS is enabled.)

Sensei Certificates

If you’re using the Sensei Certificates extension, the learner profile page will contain an option allowing learners to select whether to make their certificates publicly viewable or not.

Roles & Capabilities

Admin Capabilities

Sensei gives Admin users two additional capabilities:

  • manage_sensei_grades – gives access to the Analysis, Grading and Learner Management sections of Sensei.
  • manage_sensei – gives access to all Sensei settings and functionality.


There is no specific Learner role in Sensei. Any user of any role can be a Learner by registering and starting any course.


Sensei has a Teacher role. This is the same as a Subscriber role but with the addition of the ‘manage_sensei_grades’ capability mentioned above.

This enables site owners to assign any user the Teacher role, so that they can grade quizzes, view course analysis and manage learners without having full Administrator privileges.

Users with the Teacher role can create and manage their own Courses, Lessons, and Questions.

Teachers can also access Sensei > Messages to view private messages from Learners taking their courses.

When a Teacher is in the WordPress admin, they can only view, edit and manage their own content and Learners.

Teachers can access courses, lessons and questions they created themselves. They can also see courses that are assigned to them by an Administrator.

If a course is assigned to a teacher by an Administrator, all lessons in that course are also assigned to the same teacher.

With the Teacher role, a teacher has limited access to Sensei objects. The modules available to the teacher will only be those that they have created. If a user role changes from admin to teacher then they will lose access to other modules and will no longer see it. An admin user will have to assist these users to move lessons and courses over to the newly created user modules.

Assigning a course to a teacher

To assign a course to a teacher, you must be logged in as an administrator. Then:

  1. Go toCourses > All Courses
  2. Edit a course.
  3. In the Teacher panel, select the teacher you want to assign the course to.
  4. Update the course.

Note: To assign courses to users, you must be logged in as a Teacher or Administrator.

Teacher emails

The site admin receives an email notification whenever a teacher creates a new course.

When a course is assigned to a Teacher or another administrator, the teacher receives a notification email.

Adding a teacher

To assign an existing user the Teacher role:

  1. Go toUsers > All Users.
  2. Select the user(s) you want to change, and select Teacher in the drop-down Change role to…
  3. Click Change.


Tweaking capabilities

If you wish to modify roles and capabilities, use a third-party plugin such as Capability Manager. Even though this plugin has not been updated in years, it works for this purpose. Other plugins that allow you to edit roles and capabilities:

Adding Sensei Pages to Navigation Menus

Adding Sensei menu items

To add Sensei pages to your custom navigation menus, go to Appearance > Menus

If you haven’t already set up a custom menu, first add one, then open the ‘Sensei’ tab on the left hand side:

Adding Sensei pages to menus via Appearance > Menus

Note: If you don’t see the Sensei tab, click on the ‘Screen Options’ tab at the very top of the screen and make sure the Sensei option is selected.

From there you can select any of the Sensei pages, and click Add to Menu to add to your custom menu.

Drag and drop the menu items on the right hand side to reorder them, or click on them to edit the menu item text and other attributes.

Don’t edit the URL field, or the links will fail to function correctly.

Available Sensei pages

Your Course archive page, which lists your courses.

Your Lesson archive page, which lists your lessons.

My Courses
The My Courses page, which lists the current user’s courses or a login/register form.

My Profile
The profile page for the currently logged-in learner.

This menu item only displays when logged in, and only if you have public learner profiles enabled in Sensei > Settings.

My Messages
The page that displays a learner’s private messages.

This menu item will only display when logged in.

If a user is logged in, this link will log them out.

If they are not logged in, it directs them to the My Courses page so they can login or register without accessing the WordPress dashboard.

The label text is set by default to be Login when a user is not logged in, and Logout when the user is logged in.

Menu Items

Menu items shown on this page apply to administrator users only. If you are logged in as a Teacher, you will be unable to see all of them.


sensei-menuAnalysis is where you can view data about all courses and learners.

For more information, see Analysis.


Grading allows you to score quizzes that learners have taken.

For more information, see Grading Quizzes.

Learner Management

Learner Management allows you to add and remove learners to/from Courses/Lessons.

For more information, see Learner Management.


Messages is where you can read and reply to all private messages that learners send you.

For more information, see Private Messages.

Data Updates

Data Updates provides several manual data updates. Avoid using these updates unless you are told to by support staff.


Contains all settings used to configure Sensei, including General Settings, Course Settings, Lesson Settings, Email Notification Settings, Learner Profile Settings and WooCommerce Settings.

For more information, see Settings.

Courses Menu

courses-menuAllows you to view, add and order Courses and Modules, and manage Course Categories.

For more information, see Content Hierarchy.

Lessons Menu

lessons-menuAllows you to view, add and order Lessons, and manage Lesson Tags.

For more information, see Content Hierarchy.

Questions Menu

sensei-question-menuAllows you to add, edit and categorize questions to be used in quizzes.

For more information, see Question Bank.