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.
Content Drip Options
There are a few different ways that content can be dripped:
- As soon as the course is started
- On a specific date
- A specific interval after the course start date
As Soon as the Course is Started
Dripping content as soon as the course is started is the default option. Any lesson with this drip option set will be available immediately as soon as the learner starts taking the course:
On a Specific Date
Dripping content on a specific date means the lesson will become available on that date, and no sooner. When choosing this option, you will need to select the date on which the lesson should become available:
A Specific Interval After the Course Start Date
Using this method enables you to drip content after a certain amount of time has passed since the learner first started the course. When choosing this option, you will need to specify the interval to use (days, weeks, or months), as well as the number of days/weeks/months after which the lesson should become available:
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 when they start the course.
For example, suppose you’d like Lesson 1 to be available immediately, and each subsequent lesson to become available in 1 week intervals:
- Lesson 1 would be published as usual. The Sensei Content Drip panel does not need to be configured, since dripping as soon as the course is started is the default option.
- Then in the Sensei Content Drip panel of Lesson 2, you would select A specific interval after the course start date from the dropdown. (If you haven’t assigned the lesson to a course yet, you’ll need to do that and save the lesson before continuing.)
- Next, select Week(s) from the dropdown, and enter a 1 in the text field.
- Continue editing the lesson as normal and then click Publish or Update.
- Repeat the process for Lesson 3, setting the interval to 2 weeks instead of 1.
- Repeat the process for Lesson 4, Lesson 5, etc., increasing the interval for each lesson by 1 week. This interval can vary if you like, 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 would like all your learners to take the course at the same time over a specific period.
For example, suppose you’d like your course to begin with Lesson 1 on September 1st, and each subsequent lesson to become available in 1 week intervals:
- In the Sensei Content Drip panel of Lesson 1, select On a specific date from the dropdown.
- Enter the start date for this lesson or click the arrow to select a date from the calendar.
- Continue editing the lesson as normal and then click Publish or Update.
- Next, do the same for lesson 2. Here you can either enter a fixed date again, or select A specific interval after the course start date from the dropdown and set it to drip 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 the first lesson to a fixed date, and dripping the subsequent lessons based on an interval after the start date, is that if you would like to offer the same course again in the future, you will only need to change the date of the first lesson and the content drip schedule will be set accordingly for the subsequent lessons.
Review 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:
Override the 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.
In Sensei LMS > 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:
apply_filters( 'date_i18n', $j, $req_format, $i, $gmt );