Course enrollments are managed in Sensei LMS > Learner Management. When a learner is enrolled in a course, it means that the course is listed on their My Courses page, and they are able to view lessons and take quizzes:
How do I enroll a learner in a course?
When someone purchases a course, they are automatically enrolled in it. However, there may be times when you would like to enroll a learner in a course regardless of whether or not they have purchased it.
You can do this by navigating to Sensei LMS > Learner Management, clicking Manager learners for the applicable course, scrolling down to the Add Learner to Course section, searching for the learner, and clicking the Add to… button. The learner is now manually enrolled in the course.
How do I remove a learner from a course?
The steps for removing a learner from a course will depend on how they were enrolled in the first place:
If a learner was manually enrolled in a course, they can be removed by locating the course and learner in Learner Management, and clicking the Remove manual enrollment button.
Simple / Variable Product
If a learner was enrolled in a course because they purchased a simple or variable product, they can be removed by changing the status of their order to Pending payment, On hold, Cancelled, Refunded or Failed, or by moving their order to the trash.
Simple / Variable Subscription Product
If a learner was enrolled in a course because they purchased a simple or variable subscription product, they can be removed by changing the status of their subscription to On hold, Cancelled or Expired, or by moving their subscription to the trash.
Alternatively, changing the status of their order to On hold or Failed, or moving their order to the trash, will also remove them from the course.
Manual Assignment / User Account Registration
For memberships that grant access upon manual assignment or user account registration, learners can be removed from a course by changing the status of their membership to Paused, Expired or Cancelled, or by moving their membership to the trash.
For memberships that grant access upon product(s) purchase, learners can be removed from a course by changing the status of their membership to Paused, Expired or Cancelled, or by moving their membership to the trash.
If the product is a subscription, changing the status of the learner’s subscription to On hold, Cancelled or Expired, or moving their subscription to the trash, will also remove them from the course. Please note that if the membership length is set to unlimited, then changing the subscription status to Expired will have no effect on enrollment.
Alternatively, changing the status of the learner’s order to Refunded, or moving their order to the trash, will also remove them from the course.
Ensure that Grant access upon is set to product(s) purchase on the General tab, and that one or more products are entered in the Products field.
On the Restrict Content tab, click the Add New Rule button.
Select Courses from the dropdown, then search for and select the course(s) you’d like to include in the membership. (Alternatively, you can add a Course Categories rule and select one or more course categories. All courses with those categories will be included in the membership.)
Site visitors will now be required to purchase one of the products associated with the membership in order to view course content.
Preventing Conflicts with Course Access
When a course has a product attached via the Products metabox on the Edit Course page, and that same product is also being used to sell the same course in a membership, it can create a conflict with course access. This is because both Sensei LMS and WooCommerce Memberships are each vying for control – Sensei LMS because the product is attached directly to the course, and WooCommerce Memberships because the product is attached to a course membership.
To protect against this, a warning will appear on the Edit Course and Edit Membership Plan pages when this situation is detected:
In order to resolve this, you can choose to either:
Remove the product from the membership (in the screenshot above, the product is called Simple Product) OR
Remove the product from the course
You can, of course, select a different product to use to sell the membership or course.
In the Product data meta box that appears below the editor, select Simple subscription from the Product Type dropdown. (Note that you can also create a Variable subscription product as described here.)
Select the Virtual checkbox (this will remove shipping information at checkout).
Set the terms for the subscription including price, billing interval, billing period, length, sign-up fee and trial period (length, sign-up fee and trial period are all optional).
Browse to the location of the woothemes-sensei.zip file that you just downloaded.
Click Install Now.
Click Activate Plugin.
Congratulations! You’re now ready to sell courses with WooCommerce!
How do I update WooCommerce Paid Courses?
To receive updates and support for WooCommerce Paid Courses, you will need to connect your site to your WooCommerce.com Subscriptions. Once a connection has been established, updates for WooCommerce Paid Courses will be made available to your site for as long as the original subscription remains active.
WooCommerce Paid Courses is a paid extension for Sensei LMS that enables you to sell online courses with WooCommerce. It requires Sensei LMS to be installed and activated.
What is Sensei with WooCommerce Paid Courses?
Sensei with WooCommerce Paid Courses is a bundle of two separate plugins — Sensei LMS and WooCommerce Paid Courses. Because Sensei LMS comes pre-bundled, Sensei with WooCommerce Paid Courses does not require Sensei LMS to be installed separately (but it will still work if it is).
What Are the Requirements for Using These Plugins?
Both WooCommerce Paid Courses and Sensei with WooCommerce Paid Courses require:
If you decide to use the version of Sensei LMS that is on WordPress.org, you will need to update any Sensei extensions you may already have installed to version 2.0.0 or higher. Older versions of extensions are not compatible with the version of Sensei LMS that is on WordPress.org.
You will also need to ensure that the Delete data on uninstall setting in Sensei LMS > Settings is NOT checked before deleting WooCommerce Paid Courses or Sensei with WooCommerce Paid Courses. Otherwise, your course data would be deleted when the plugin is uninstalled. To be extra safe, consider backing up your site before uninstalling.
The Sensei Content Drip extension allows you to “drip” your course content to your learners, based on a fixed schedule, so you can control the pace at which learners progress through the course material.
Setting your Content Drip options
There are two different ways you can drip your content.
Based on the date the learner starts the course. e.g. Learner starts the course. Lesson 1 is available immediately. Lesson 2 is available 1 week later, and so on.
Based on a fixed start date. e.g. Lesson 1 is available from 1st September, Lesson 2 from the 8th September, and so on.
Dripping content based on the date the learner starts the course
To use this method, you should first decide how many lessons will be available to the learner as soon as they start the course.
Say you want only Lesson 1 to be available immediately, and each subsequent lesson to become available after 1 week intervals.
Lesson 1 would be published as normal. The ‘Sensei Content Drip’ panel can be left blank.
Then you would edit Lesson 2, and in the ‘Sensei Content Drip’ panel, where it says “When should this lesson become available?” select A specific interval after the course start date.
(If you haven’t assigned the lesson to a course yet, you’ll need to do that and save the lesson before continuing).
Then select the time interval for this lesson – (e.g. choose Week(s) and enter a 1 in the text field).
Finish editing your lesson and click Publish/Update
Repeat the process for Lesson 3, setting the interval to 2 weeks instead of 1.
You would then do the same for Lesson 4, Lesson 5 and the rest of your lessons, increasing the interval for each lesson by a week (this interval can vary if you want, or you can keep it consistent for each lesson.)
Dripping content based on a fixed start date
This method can be used if you are running a “live” online course, where you want your learners to take the course all at the same time, over a specific period of time.
For example, say you want your course to begin with Lesson 1 on 1st September, and each subsequent lesson to become available after 1 week intervals.
Edit Lesson 1, and in the ‘Sensei Content Drip’ panel, where it says “When should this lesson become available?” select On a specific date.
Then enter the start date for this lesson in the format dd/mm/yyyy, e.g. 01/09/2014 (or click the arrow to select the date from a calendar).
Finish editing and save/publish the lesson
Then do the same for lesson 2. Here you can either enter a fixed date again, e.g. 08/09/2014, or you can select A specific interval after the course start date, (recommended*) and set it to be dripped 1 week after Lesson 1 (this will result in the same schedule since Lesson 1 is available on a fixed date).
The advantage of setting only your first lesson to a fixed date, and dripping the subsequent lessons based on an interval after the start date, is that if you want to offer the same course again in future, you only need to change the date of the first lesson and the content drip schedule will still be set accordingly for the subsequent lessons.
Reviewing the drip schedule
If you lose track of the drip schedule for the lessons in a course, it’s easy to see the schedule by visiting Lessons > All Lessons.
Just filter the list to show only the lessons from the course you want, and then you can see the drip schedule in the Drip Schedule column:
Overriding the Content Drip Schedule
You can override the content drip schedule if you want to give a user access to any lesson before it is scheduled to become available for them.
Go to Sensei > Learner Management
Click ‘Manage Learners’ on the relevant course.
In the Manual Content Drip panel, select your desired user.
Then select the lesson you want to give them access to.
If a learner has already been given access to a lesson, when you select that learner and that lesson, the ‘Give Access’ button will change to ‘Remove Access’.
The User Experience
When a user starts a course that uses Content Drip, they will be able to access any lessons that are set to become available “as soon as the course is started”.
For any lessons restricted by the Content Drip schedule, users will see a notice telling them when the lesson will become available to them:
As soon as the drip interval has passed, the learner will then be able to access the lesson as normal.
Learners will also receive an email notification on any day that a lesson is due to become available. The email will list all lessons that will be available that day.
Lessons become available at 00:00 on the date they are due, so for example, if they started the course at 11:30 on Monday, and the interval is set to 1 week, then the next lesson will become available at 00:00 the following Monday.
Content Drip Settings
If you go to Sensei > Settings you will see an additional submenu for Content Drip with several settings:
Drip Message – Here you can customize the message shown instead of the lesson content, on any lessons that aren’t yet available. You can use the [date] shortcode to insert the date that the lesson will become available.
Email before lessons – Here you can customize the message in the content drip notification email for lessons that will become available today.
Email footer – Here you can customize the text in the email footer. You can use the [home_url] shortcode to insert a link to your homepage.
Hooks & Filters
Developers can make use of the following filters in their themes/plugins:
sensei_content_drip_lesson_message – Filter to change or alter the message a user will see when content has not been dripped yet. Parameters passed: $drip_message
scd_is_drip_active – Manually override the is_drip_active check. The value tells us if a drip is active on the given lesson. Parameters passed: boolean $dripped , int $lesson_id .
scd_drip_message_date_format Change the date shortcode [date] the user will see when the lesson is has not been dripped yet. Parameter passed : string $date_format (php date format ‘l jS F Y’)
plugin_locale – Filter to change the pugin locale. Parameters passed: string $locale , string $plugin_domain.
Can you give learners manual access to lessons?
Yes, The plugin allows you to give manual access under Sensei > Learner Management
What happens when a lesson drips?
The plugin is stateless in that it doesn’t have any events when a lesson drips. However when a user checks the lesson the drip settings will be checked to see if a user is allowed access. When the time has passed, according to the settings, the user will be granted access. The same happens for the daily emails. All lessons and users are checked to confirm if the lessons are dripping.
Does it use GMT /UTC for time?
It uses the server time, which varies depending on your server location.
How is access granted?
Access is granted by confirming the lesson drip settings and then verifying whether the user qualifies to gain access.
How do the Cron jobs work?
Cron jobs run every day at the time the plugin was installed. On installation, the Cron job gets added with the current server time. We use the WordPress cron job API, which depends on your site being visited before it will run.
What happens when a subscription is cancelled?
If you’re using WooCommerce Subscriptions and the subscription is cancelled, the data stored for Sensei will remain intact. The Drip data will also remain intact. If the subscription is reactivated, it will be as if they’ve never left. In the time that has passed some lessons may have become available to the user. Once they regain access to their courses, the lessons dripped during their time away will become available immediately.
The date function is formatted using this WordPress function:
To change the date format you can use this filter:
The Sensei Course Progress extension is a simple widget you can add to your sidebar to display your learners’ current progress within a course.
To add the widget to your site, go to Appearance > Widgets, and drag the Sensei – Course Progress widget from the left, to any of your widget areas on the right. (The widget works best in a sidebar so it displays alongside your lesson content).
The widget will only display on lesson and quiz pages, and will show learners all the lessons in the current course. It will also indicate which lesson they are currently viewing, and which lessons they have already completed: