You can download the Sensei LMS 3.7 beta here. Alternatively, if you don’t have a staging site, you can use our Sensei LMS Test Site. You will be given the same level of access as a teacher, so some functionality may not be available. Please note that the test site integrates with Smartlook to record your visit. Smartlook is GDPR compliant out of the box, and any recordings will be automatically deleted after 1 month.
If you find a bug, please submit an issue on Github or leave a comment on this post. Our tentative release date is January 21st.
WooCommerce Paid Courses 2.3
WooCommerce Paid Courses 2.3 contains a couple of small improvements that we think will make a big difference in helping your learners get started after purchasing a course:
Added a link to the My Courses page on the My Account page.
Added a Courses section to the order details page so that learners can see which courses they’ve purchased.
When a product is sent to the trash, remove that product from all applicable courses.
Don’t copy the product over when duplicating a course. This ensures that any learners who purchased the original course don’t gain access to the duplicated course.
New Filter
sensei_wc_paid_courses_my_account_menu_courses_position – Change the position of the Courses item in the My Account menu.
Deprecations
Sensei_WC::course_link_from_order
Sensei_WC::generate_order_notice
Testing WooCommerce Paid Courses
Beta testers will receive the WooCommerce Paid Courses beta directly to their inbox. If you would like to sign up to be a beta tester and have a valid license, please fill out the beta tester signup form using the same email address you used to purchase your license.
If you find a bug, please leave a comment on this post. Our tentative release date is January 21st.
As these are beta releases, please test them on a staging site and not your live site. If you don’t have a staging site, you can use the WP Staging plugin to create one.
*Please note that the test site integrates with Smartlook to record your visit. Smartlook is GDPR compliant out of the box, and any recordings will be deleted automatically after 1 month.
WooCommerce Paid Courses
Here’s what’s changed in Beta 2:
Purchase Course Block
Warn learner when buying a product containing a course they are already taking
Expand the editor and the frontend to support many purchase blocks
Ensure variable products work with purchase block
Other
Fix typo in package generation to include `lang` folder
Sensei LMS 3.6 is now available for testing. This release introduces a number of blocks that are available when adding or editing courses:
Take Course button
Contact Teacher button
Course Progress
Course Outline
When creating a new course, these blocks are automatically added to the page for you. They are equivalent to the elements that already appear on the course page, but because they have been rewritten as blocks, it’s now possible to change how they look, adjust their order, or remove them altogether.
Course Outline Block
The course outline block is especially noteworthy. In addition to displaying the modules and lessons that make up a course, the course outline block enables you to build your course structure right inside the editor. Any modules or lessons you add to the block will be created automatically once the course is saved:
What Else is in This Release?
Here are some other enhancements and fixes you’ll find in 3.6:
Ensure analysis export works with RTL languages.
Fix incorrect rounding of maximum file size for file upload questions.
Ensure learners who have already viewed a quiz see the latest updates the next time they view it.
Remove wrapper elements from templates. This should improve the look of Sensei pages on some themes.
You can download the Sensei LMS 3.6 beta here. Alternatively, if you don’t have a staging site, you can use our Sensei LMS Test Site. Please note that the test site integrates with Smartlook to record your visit. Smartlook is GDPR compliant out of the box, and any recordings will be deleted automatically after 1 month.
WooCommerce Paid Courses 2.2
WooCommerce Paid Courses 2.2 integrates with the Take Course block, changing it to a Purchase Course button if there is a single product attached to the course, or pricing cards if there are multiple products attached to the course:
Testing WooCommerce Paid Courses
Beta testers will receive the WooCommerce Paid Courses beta directly to their inbox. If you would like to sign up to be a beta tester and have a valid license for WooCommerce Paid Courses that has not expired, please fill out the beta tester signup form using the same email address you used to purchase your license.
If you find a bug in Sensei LMS or Sensei with WooCommerce Paid Courses, please submit an issue on Github or leave a comment here. Our tentative release date is December 10th.
For Developers
If you’re a developer, here are the technical details of what’s changed in Sensei LMS 3.6.
Sensei LMS 3.6
Template File Changes
templates/course-results.php – Changed article element to div and removed section.
templates/course-results/lessons.php – Changed article element to div.
templates/single-course.php – Removed article and section elements.
templates/single-lesson.php – Removed article and section elements.
templates/single-message.php – Removed article and section elements.
templates/single-quiz.php – Removed article and section elements.
New Filters
sensei_block_type_args – For WordPress < 5.5, filters block arguments. For WordPress >= 5.5, use register_block_type_args instead.
sensei_use_sensei_template: Whether to use Sensei’s templates and content wrappers.
sensei_use_wp_register_link – Force Sensei to output the default WordPress user registration link.
New Action
sensei_loaded: Fires once all global objects have been set in Sensei LMS.
Deprecated Functions & Methods
Sensei_Admin::get_lesson_order
Sensei_Lesson::on_lesson_published
Sensei_Core_Modules::reset_none_modules_transient
There are no deprecations or new hooks in WooCommerce Paid Courses 2.2.
As these are beta releases, please test them on a staging site and not your live site. If you don’t have a staging site, you can use the WP Staging plugin to create one.
Today we’re releasing Sensei LMS 3.0 Beta 4 and WooCommerce Paid Courses 2.0 Beta 4, which we are hopeful will be the final beta prior to the production release.
We hope that the fact that we’ve released 4 betas helps to highlight the importance and size of this release, and encourages everyone to do some testing on their staging sites before updating their live sites.
Sensei LMS 3.0
Here’s what’s new in Beta 4:
Add multisite support for course enrolments.
Delete provider journal data when plugin is uninstalled.
Display a notice to remind admins to upgrade WooCommerce Paid Courses to 2.0 for sites that are running Sensei LMS 3.0 and Sensei with WooCommerce Paid Courses 1.x. For sites running both plugins, we strongly recommend updating Sensei with WooCommerce Paid Courses before Sensei LMS.
Made a change to use an unfiltered method when checking whether or not a learner has started a course. This change will impact sites with code customizations that leverage the sensei_user_started_course filter, and means that this filter should no longer be relied on to provide access to a course. If you are currently doing so, please consider either switching to a custom enrolment provider (example here), or leveraging hooks in the relevant third-party plugin (i.e. WooCommerce, WooCommerce Subscriptions or WooCommerce Memberships).
We renamed the sensei_wc_paid_courses_migration_ended_memberships_provide_manual_enrolmentfilter introduced in Beta 3 to sensei_wc_paid_courses_migration_inactive_memberships_provide_manual_enrolment, and simplified its logic such that it will block users with inactive memberships from being manually enrolled when the migration runs, regardless of the status of the associated order.
Testing
As always, please test the beta release on a staging site and not your live site. If you don’t have a staging site, you can use the WP Staging plugin to create one.
If you’ve already tested a previous beta on your staging site, you should take the following steps prior to testing Beta 4:
Deactivate and delete the older beta versions of Sensei LMS.
Restore the database backup for your staging site.
Download Beta 4 and unzip it to your wp-content/plugins folder. You can choose to either override your existing folder, or rename it to something else before unzipping, if applicable.
Activate Sensei LMS 3.0.0 Beta 4.
The above steps are necessary to ensure the course enrolment migration process executes again. If you haven’t tested any of the beta releases prior to this, there’s no need to restore a database backup.
Please note that the release date has been moved to April 27th, 2020, which will allow for time to test Beta 4 prior to release. Feel free to leave a comment on this post if you find any issues while testing our latest beta.
Actions are now fired when the enrolment status is changed. (See the New Filters section below for more details.)
We added the sensei_enrolment_learner_calculation_job_batch_size filter for setting the batch size of the learner calculation job.
We introduced a provider journal store that is disabled by default, but can be enabled using the sensei_enable_enrolment_provider_journal filter.
We’ve significantly reduced the amount of data that was being stored in the database for course enrolments.
You can see what else changed in Beta 3 here or you can download Sensei LMS 3.0 Beta 3 here.
WooCommerce Paid Courses 2.0
The most notable change in WooCommerce Paid Courses 2.0 Beta 3 is that we added the sensei_wc_paid_courses_migration_inactive_memberships_provide_manual_enrolment filter to enable blocking users with inactive memberships from being manually enrolled when the migration runs.
Testing
As always, please test the beta release on a staging site and not your live site. If you don’t have a staging site, you can use the WP Staging plugin to create one.
If you’ve already tested either Beta 1 or Beta 2 on your staging site, you should take the following steps prior to testing Beta 3:
Deactivate and delete the Beta 1/Beta 2 version of Sensei LMS.
Restore the database backup for your staging site.
Download Beta 3 and unzip it to your wp-content/plugins folder. You can choose to either override your existing folder, or rename it to something else before unzipping, if applicable.
Activate Sensei LMS 3.0.0 Beta 3.
The above steps are necessary to ensure the course enrolment migration process executes again. If you haven’t tested any of the beta releases prior to this, there’s no need to restore a database backup.
For Developers
Sensei LMS
New Filters
sensei_comment_counts_include_sensei_comments – Whether or not to include Sensei comments in the comments count.
sensei_course_enrolment_store_results – Whether or not to store course enrolment results.
sensei_enable_enrolment_provider_journal – Whether or not to enable journal storage.
sensei_enrolment_course_calculation_job_batch_size – Set the batch size for the number of learners to query when the course calculation job runs.
sensei_enrolment_history_size – Set the maximum number of historical entries that are stored for every user, course and provider.
sensei_enrolment_learner_calculation_job_batch_size – Set the batch size for the number of learners to query when the learner calculation job runs.
sensei_enrolment_message_log_size – Set the maximum number of log messages that are stored for every user, course and provider.
sensei_frontend_learner_enrolment_handler – Enable providers to specify a custom course sign-up handler.
New Actions
sensei_course_enrolment_status_changed – Fires when the course enrolment status changes.
sensei_manual_enrolment_learner_enrolled – Fires when a learner is manually enrolled.
sensei_manual_enrolment_learner_withdrawn – Fires when a learner’s manual enrolment is withdrawn.
WooCommerce Paid Courses
New Filter
sensei_wc_paid_courses_migration_inactive_memberships_provide_manual_enrolment – Whether or not to block users with inactive memberships from being manually enrolled.
Please note that the release date has been moved to April 22nd, 2020April 27th, 2020. Feel free to leave a comment on this post if you find any issues while testing Beta 3.
Today we’re releasing a second beta for Sensei LMS 3.0 and WooCommerce Paid Courses 2.0.
Sensei LMS 3.0
Here are the important changes in Sensei LMS 3.0 Beta 2:
We’ve added a filter to bypass enrolment functionality altogether.
The “Manually Enrolled Learners” filter is now hidden when not needed.
We fixed an issue with the comment template not displaying for messages.
You can see what else changed in Beta 2 here or you can download Sensei LMS 3.0 Beta 2 here.
WooCommerce Paid Courses 2.0
Here are a few things we’ve fixed in WooCommerce Paid Courses 2.0 Beta 2:
The display of products in the product selector was being cut off in WordPress 5.4.
A PHP warning that was logged when running some enrolment jobs.
A fatal error when deactivating WooCommerce before WooCommerce Paid Courses.
For Developers
Sensei LMS
New Filter: sensei_is_enrolled – Allow default enrolment handling to be bypassed.
Deprecated Method: Sensei_Main::activation
As always, please test the beta release on a staging site and not your live site. If you don’t have a staging site, you can use the WP Staging plugin to create one.
Sensei LMS 3.0 is now available for testing. This is a major release that introduces the concept of course enrollments. Previously, a learner had access to a course if they had progress in that course (i.e. they were listed in Learner Management). As of Sensei LMS 3.0, a learner has access to a course if they are enrolled in that course.
Separating course progress from course enrollment means that removing a learner from a course will still retain their progress. This means that the learner will be able to pick up where they left off should they enroll in the course again later:
A learner is automatically (manually) enrolled when they click the Take this Course button on the course page. Administrators and teachers can also enroll learners by clicking the Manually enroll learner button in Learner Management. Similarly, learners can be unenrolled by clicking the Remove manual enrollment button. Only courses that a learner is enrolled in will be displayed on their My Courses page.
Here are some of the other enhancements and fixes you’ll find in 3.0:
Module content is only displayed if the learner is enrolled in the course.
Improved support for the Twenty Twenty theme.
Added support for bulk editing lessons.
Teachers are now able to reset progress and edit the course start date of a learner.
Fixed video playback for question media attachments.
Fixed the ability to add multiple learners to a course.
You can download the Sensei LMS 3.0 beta here. One of the most important things to test in this release is that course access for learners is preserved; that is, ensuring that the same learners who had access to the course prior to updating to Sensei LMS 3.0 still have access to the course after updating to Sensei LMS 3.0.
If you find a bug, please submit an issue on Github or leave a comment here. Our tentative release date is April 15th. UPDATE: The release date has been pushed back to April 22ndApril 27th, 2020.
WooCommerce Paid Courses 2.0
WooCommerce Paid Courses 2.0 has been updated to support enrollments. The rules for determining when a learner is enrolled have been simplified and are as follows:
When selling a course using a simple or variable product, a learner will be enrolled if the status of their order is Processing or Completed. If the order status is changed to something else, or the order is moved to the trash, they will be unenrolled.
WooCommerce Subscriptions: When selling a course using a simple or variable subscription, a learner will be enrolled if the status of their subscription is Active or Pending Cancellation. If the subscription status is changed to something else, or the subscription is moved to the trash, they will be unenrolled. The status of the order associated with the subscription is not used to determine enrollment.
WooCommerce Memberships: When using a membership to grant access to a course, a learner will be enrolled if the status of their membership is Active, Free Trial (only applicable when using subscriptions), Complimentary or Pending Cancellation (only applicable when using subscriptions). If the membership status is changed to something else, or the membership is moved to the trash, they will be unenrolled. Neither the status of the order nor the status of the subscription (if applicable) associated with the membership are used to determine enrollment.
Here are some of the other enhancements and fixes you’ll find in 2.0:
A confirmation modal will be displayed when the products attached to a course are updated. Altering any existing products may update the enrolment status of learners based on whether or not they have purchased that product. Once this modal is confirmed, it will not be displayed again for at least 1 week.
Added support for searching and selecting from a large number of products when attaching a product to a course.
The woocommerce CSS class is now only added to the single course page.
Testing WooCommerce Paid Courses
Beta testers will receive the WooCommerce Paid Courses beta directly to their inbox. If you would like to sign up to be a beta tester and have a valid license for WooCommerce Paid Courses that has not expired, please fill out the beta tester signup form using the same email address you used to purchase your license.
Just as with Sensei LMS, the most important thing to test in this release is that course access for learners is preserved. This is applicable for all types of courses including free, paid, and courses sold as part of a subscription or membership.
If you find a bug, please leave a comment here. Our tentative release date is April 15th. UPDATE: The release date has been pushed back to April 22ndApril 27th, 2020.
For Developers
If you’re a developer, here are the technical details of what’s changed in Sensei LMS 3.0 and WooCommerce Paid Courses 2.0.
Sensei LMS 3.0
Template File Changes
archive-course.php – Added container around controls and header.
course-results.php – Replaced Sensei_Utils::user_started_course with Sensei_Course::is_user_enrolled.
single-course/modules.php – Replaced Sensei_Utils::user_started_course with Sensei_Course::is_user_enrolled.
New Filters
sensei_background_job_actions – Get a list of background job actions that are handled by the class.
sensei_can_access_course_content – Whether or not the user can view course content.
sensei_can_user_manually_enrol – Checks if the currently logged in user can manually enroll in a given course.
sensei_can_user_view_module – Whether or not the user can view module content.
sensei_course_archive_page_url – Filter the course archive page URL.
sensei_course_enrolment_providers – Get all registered course enrolment providers.
sensei_is_legacy_enrolled – Whether or not a user was enrolled in a course prior to Sensei LMS 3.0.0.
sensei_legacy_enrolment_check – Whether or not to use the legacy enrolment check. Legacy check uses course progress to determine enrolment.
sensei_module_course_signup_notice_level – Customize the alert level for the course sign-up notice message on the module page.
sensei_module_course_signup_notice_message – Customize the course sign-up notice message on the module page.
sensei_module_show_course_signup_notice – Whether or not to show the course sign-up notice on the module page.
sensei_scheduler_class – Override the default class that implements Sensei_Scheduler_Interface.
sensei_should_defer_enrolment_check – Whether to defer the enrolment check to the end of the request.
sensei_user_all_access – Whether or not a particular user has access to all of Sensei LMS without restriction.
New Actions
sensei_before_learners_enrolled_courses_query – Fires before querying the courses a learner is enrolled in.
sensei_enrolment_results_calculated – Notify upon calculation of enrolment results.
Deprecated Functions & Methods
quiz_questions – Use Sensei_Templates::get_template
sensei_check_prerequisite_course – Use Sensei_Course::is_prerequisite_complete
Sensei_Admin::delete_user_activity – Use Sensei_Learner::delete_all_user_activity
Sensei_Course::course_query
Sensei_Course::filter_my_courses
Sensei_Course::get_archive_query_args
Sensei_Frontend::sensei_course_image – Use Sensei()->course->course_image
Sensei_Frontend::sensei_get_template_part – Use Sensei_Templates::get_part
Sensei_Frontend::sensei_lesson_image – Use Sensei()->lesson->lesson_image
Sensei_Frontend::sensei_lesson_quiz_meta – Use Sensei_Lesson::footer_quiz_call_to_action
Sensei_Utils::delete_all_user_activity – Use Sensei_Learner::delete_all_user_activity
Sensei_Utils::sensei_get_user_question_answer_notes – Use Sensei()->quiz->get_user_question_feedback
Sensei_Utils::sensei_grade_question_auto – Use Sensei_Grading::grade_question_auto
Sensei_Utils::sensei_grade_quiz_auto – Use Sensei_Grading::grade_quiz_auto
Sensei_Utils::sensei_save_quiz_answers – Use Sensei_Quiz::save_user_answers
Sensei_Utils::user_started_course – To check if a learner is enrolled, use Sensei_Course::is_user_enrolled. To check if a learner has course progress, useSensei_Utils::has_started_course.
Deprecated Filters
sensei_all_access – Use sensei_user_all_access
sensei_couse_access_permission_message
sensei_display_start_course_form – Use sensei_can_user_manually_enrol
sensei_is_course_content_restricted
sensei_learners_learners_columns – Use sensei_learners_default_columns
Sensei_WC_Subscriptions::get_subscription_types – Use Sensei_WC_Paid_Courses\Course_Enrolment_Providers\WooCommerce_Subscriptions::get_subscription_types
sensei_wc_paid_courses_memberships_auto_start_courses – Use sensei_wc_paid_courses_memberships_auto_enrol_courses
As these are beta releases, please test them on a staging site and not your live site. If you don’t have a staging site, you can use the WP Staging plugin to create one.
The next release of Sensei with WooCommerce Paid Courses is on the horizon, and we’re hard at work testing all of the new features and improvements that it brings.
Given that this is a major release that impacts learner enrolment, we’re looking for a few folks to help us identify and fix potential issues in advance.
Here’s what we’ll do on your staging site:
Make a backup.
Upgrade the site to Sensei with WooCommerce Paid Courses 3.0.0.2.0.0.
Test for issues.
Send you a summary of what we found and any suggestions we may have.
Interested in having our team test a pre-release version on a copy of your site before launch? Learn more or sign up here. If selected, you will be rewarded with a $100 WooCommerce.com coupon. UPDATE: Sign-ups via the blog are now closed.
rest_sensei_message_query– Filter the message query arguments.
Release Testing
You can download the Sensei LMS 2.3 beta here. If you find a bug, please submit an issue on Github or leave a comment here. Our tentative release date for Sensei LMS 2.3 is January 14th.
As this is a beta release, please test it on a staging site and not your live site. If you don’t have a staging site, you can use the WP Staging plugin to create one.
Sensei_Course::flush_rewrite_rules has been deprecated with no replacement
Sensei_Lesson::flush_rewrite_rules has been deprecated with no replacement
Testing Sensei LMS
You can download the Sensei LMS 2.2.1 beta here. If you find a bug, please submit an issue on Github or leave a comment here. Our tentative release date for Sensei LMS 2.2.1 is October 23rd.
WooCommerce Paid Courses
The next release of WooCommerce Paid Courses focuses on closing some gaps in the integration with WooCommerce Memberships.
Here are some of the improvements you’ll find in 1.2.0:
Courses purchased via a membership will now be included in the confirmation notice that a user sees after purchase:
Additionally, the order confirmation email will list any courses that were purchased as part of a membership.
When the status of an order containing a membership is manually changed to Processing or Completed, the purchaser is automatically enrolled in any courses tied to that membership. Similarly, cancelling or refunding an order containing a membership removes the purchaser from any courses tied to that membership.
To protect against undesirable behaviour that can occur when a course is sold standalone AND as part of a membership that uses the same product, a warning will now appear on the Edit Course and Edit Membership Plan pages so that corrective action can be taken:
The Course Component widget, as well as the Paid and Free filters that may appear on the course archive page, have been updated to include course memberships.
New Filters
sensei_wc_paid_courses_get_product_courses – Filter the array of courses attached to the given products.
sensei_wc_paid_courses_memberships_block_editor_l10n_data – Filter the localization data for the block editor script.
Testing WooCommerce Paid Courses
Beta testers will receive the WooCommerce Paid Courses beta directly to their inbox. If you would like to sign up to be a beta tester and have a valid license, please fill out the beta tester signup form using the same email address you used to purchase your license.
If you find a bug, please leave a comment here. Our tentative release date for WooCommerce Paid Courses 1.2.0 is October 23rd.
As these are beta releases, please test them on a staging site and not your live site. If you don’t have a staging site, you can use the WP Staging plugin to create one.