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.

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

Internal Methods

There are two possible scenarios for the deprecation of internal methods:

  • The method has already been marked with @access private or is clearly an internal method (e.g. hooked to the init action). It should be removed in the next major version.
  • The method has not been marked with @access private. It should be removed in the major version after the next one.

Examples include: calls to actions, license renewal notices, and plugin initialization flow (singleton initialization for adding hooks).

Methods Used in Templates & User-Facing Functionality

Removed in the major version after the next one.

Methods Not Used in Templates

Removed in the next major version.

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.

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.

General

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.
  • Translating Sensei – You can use Sensei in the language of your choice and suggest new translations using a web-based translation tool called Transifex.
  • 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.

Shortcodes

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:

Courses

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

Example

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

Featured Courses

[sensei_featured_courses] – A list of featured courses.

Options

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)

Example

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

Options

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)

Example

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

Teachers

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

Options

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)

Example

[sensei_teachers exclude="23"]

User Messages

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

Options

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

Example

[sensei_course_page id="123"]

Course Categories

[sensei_course_categories] – A list of course categories.

Options

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)

Example

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

Options

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

Example

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

sensei-courseid

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

Widgets

Widgets

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

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.

Modules

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.

Quizzes

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.

Questions

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

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

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.

Learners

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

Teachers

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.

teacher

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:

sensei-menus
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

Courses
Your Course archive page, which lists your courses.

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

Login/Logout
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.

Analysis

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

For more information, see Analysis.

Grading

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

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.

Settings

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.