Posted on

Premature Update for Sensei 2.0

Some of you may have seen an update prompt earlier this week that invited you to upgrade to Sensei 2.0. Choosing to update had a few consequences:

  • If you were selling courses, those courses would have been made available for free.
  • If you were using any Sensei extensions (with the exception of Content Drip), those extensions would have stopped functioning.
  • Sensei translations would have broken.

If you upgraded to Sensei 2.0, we recommend that you downgrade to 1.12.3 to resolve the above issues. You can do that by downloading Sensei 1.12.3 from WooCommerce.com, deactivating Sensei 2.0, and installing/activating Sensei 1.12.3.

Why Did This Happen?

On Tuesday, April 2nd, 2019, we deployed a free version of Sensei to WordPress.org. Later in the day, we started receiving reports that Sensei wasn’t working correctly after updating to Sensei 2.0.

This was very concerning, as Sensei being deployed to WordPress.org should have had zero impact on our existing users. This is because existing sites with Sensei installed receive their plugin updates from WooCommerce.com, not WordPress.org, and so should not have had an update prompt displayed in the first place. Yet WordPress.org intercepted Sensei’s plugin update check, detected that a new version was available, and surfaced an update prompt on your site.

What Did We Do About It?

Once we received the first report of someone being asked to upgrade to Sensei 2.0, we contacted the plugin team at WordPress.org. Within 30 minutes of our being made aware of the problem, Sensei was removed from WordPress.org, and the update prompt was no longer displayed in the WordPress admin.

For those users who opened support tickets with us, we asked that they downgrade to Sensei 1.12.3.

How Will We Prevent This From Happening Again?

We have had some communication with the WordPress.org plugin team to determine why this happened.

It would seem that WordPress.org used a combination of Sensei’s name and author fields to identify it. This meant that when your site checked in with WordPress.org for plugin updates, WordPress.org compared the name and author fields of the version of Sensei that was installed on your site to the version that it had on its servers, found them to be the same, and pushed out a notice to update.

We were expecting WordPress.org to use the plugin slug for identification purposes. The plugin slug on WooCommerce.com (woothemes-sensei) was different from the plugin slug on WordPress.org (sensei). Had the slug been used to identify Sensei, this entire incident would have been avoided.

We are currently planning to resubmit Sensei to WordPress.org. However, we will be submitting it with a different plugin name – Sensei LMS. This will be enough to ensure that WordPress.org does not identify existing versions of Sensei as something that it is responsible for updating.

Questions?

Should you have any questions or comments, please feel free to leave them here. If you need help downgrading, please open a Support ticket and our Happiness Engineers will take good care of you.

We sincerely apologize for the inconvenience this has caused some of our users.

Posted on

Sensei 1.12.3 is Available Now

We’ve just released Sensei 1.12.3, which fixes a few troublesome bugs and does some preliminary work that will make the transition to Sensei 2.0 easier. Given this, we recommend that you upgrade to 1.12.3 as soon as possible ahead of the upcoming Sensei 2.0 release.

It’s important to note that the upcoming 2.0 versions of Sensei and our official extensions will not work on sites running older versions of PHP. If you are running a version of PHP that is older than 5.6, we strongly encourage you to update to 5.6 or higher.

If you’re not sure which version of PHP your site is running, you may find the How to Check Your WordPress Site’s PHP Version section of this article helpful.

You can also read more about updating PHP on WordPress.org.

What’s in this Release?

Here’s the rundown of what’s in this release:

Please report any issues you find in the comments or on Github. Thank you!

Posted on

Sensei 2.0 Beta 3

We’ve just released another beta for the open source version of Sensei that will be listed on WordPress.org.

The most noteworthy change since the last beta is a fix we made to flush the permalink/rewrite rules when Sensei is activated. Now when you deactivate and reactivate Sensei, your existing Sensei pages will still be viewable without requiring you to re-save your lessons or click the Install Sensei Pages button.

Here’s what else is new since the last beta:

Download the beta or view the full Sensei 2.0 milestone.

We will be applying these changes to Sensei with WooCommerce Paid Courses, and sending out Beta 3 to our testers next week.

As always, since this is a beta release, please test 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.

Posted on

Sensei 2.0 Beta is Here!

Today we’re pleased to announce that Sensei 2.0 is available for beta testing!

There are some important changes in this release:

  • We’ve split Sensei into two plugins – Sensei (free) and WooCommerce Paid Courses (paid). After upgrading Sensei, those with a valid license will have Sensei renamed to Sensei with WooCommerce Paid Courses, which is a bundle of Sensei and WooCommerce Paid Courses. You can read more about this change here.
  • The new minimum required version of PHP is 5.6.
  • The new minimum required version of WooCommerce is 3.0.
  • The Access Permissions setting now only controls lesson content, not lesson and course content.

Everything else . . .

  • We fixed a conflict between the Jetpack shortcodes module and Sensei that caused Sensei videos not to display.
  • We fixed the lesson order changing when a lesson was updated in the classic editor.
  • We fixed completed modules being displayed as “In Progress”.
  • We’ve changed the text domain from woothemes-sensei to sensei.
  • When Sensei is first activated, a pop-up appears asking you to join our mailing list. This pop-up will only appear on sites that have never had Sensei installed before.
  • We added a new Sensei extensions page available from the Sensei > Extensions menu.

There are also a variety of minor tweaks, new hooks, and fixes. We won’t go into detail here, but you can see the full list of changes if you’re interested!

Template File Changes

  • All templates – Changed text domain from woothemes-sensei to sensei
  • content-course.php – Call Sensei_Course::get_course_loop_content_class instead of WooThemes_Sensei_Course::get_course_loop_content_class
  • single-quiz/question-type-*.php – Call Sensei_Question::get_template_data instead of WooThemes_Sensei_Question::get_template_data

Deprecated Functions and Methods

Sensei_Main

  • Sensei_Main::sensei_woocommerce_email_course_details has been deprecated in favour of Sensei_WC::email_course_details
  • Sensei_Main::sensei_woocommerce_reactivate_subscription has been deprecated in favour of Sensei_WC::reactivate_subscription
  • Sensei_Main::sensei_woocommerce_subscription_ended has been deprecated in favour of Sensei_WC::end_subscription
  • Sensei_Main::sensei_woocommerce_complete_order has been deprecated in favour of Sensei_WC::complete_order
  • Sensei_Main::sensei_woocommerce_cancel_order has been deprecated in favour of Sensei_WC::cancel_order
  • Sensei_Main::sensei_activate_subscription has been deprecated in favour of Sensei_WC::activate_subscription
  • Sensei_Main::woocommerce_course_update has been deprecated in favour of Sensei_WC::course_update
  • Sensei_Main::sensei_get_woocommerce_product_object has been deprecated in favour of Sensei_WC::get_product_object
  • Sensei_Main::disable_guest_checkout has been deprecated in favour of Sensei_WC::disable_guest_checkout
  • Sensei_Main::virtual_order_payment_complete has been deprecated in favour of Sensei_WC::virtual_order_payment_complete
  • Sensei_Main::check_user_permissions has been deprecated with no replacement

Sensei_Utils

  • Sensei_Utils::sensei_is_woocommerce_present has been deprecated in favour of Sensei_WC::is_woocommerce_present
  • Sensei_Utils::sensei_is_woocommerce_activated has been deprecated in favour of Sensei_WC::is_woocommerce_active
  • Sensei_Utils::sensei_customer_bought_product has been deprecated in favour of Sensei_WC::has_customer_bought_product

Sensei_Frontend

  • Sensei_Frontend::activate_purchased_courses has been deprecated in favour of \Sensei_WC_Paid_Courses\Courses::activate_purchased_courses
  • Sensei_Frontend::activate_purchased_single_course has been deprecated in favour of \Sensei_WC_Paid_Courses\Courses::activate_purchased_single_course
  • Sensei_Frontend::sensei_woocommerce_in_cart_message has been deprecated in favour of Sensei_WC::course_in_cart_message

Sensei_Course

  • Sensei_Course::get_product_courses has been deprecated in favour of Sensei_WC_Paid_Courses\Courses::get_product_courses
  • Sensei_Course::get_product_courses_query_args has been deprecated in favour of Sensei_WC_Paid_Courses\Courses::get_product_courses_query_args

Sensei_WC_Utils

  • Sensei_WC_Utils::wc_version_less_than has been deprecated in favour of version_compare( WC()->version, $str, '<' )
  • Sensei_WC_Utils::is_product_variation has been deprecated in favour of $product->is_type( 'variation' )
  • Sensei_WC_Utils::get_order_id has been deprecated in favour of $order->get_id()
  • Sensei_WC_Utils::get_product has been deprecated in favour of wc_get_product
  • Sensei_WC_Utils::get_parent_product has been deprecated in favour of wc_get_product
  • Sensei_WC_Utils::get_formatted_variation has been deprecated in favour of wc_get_formatted_variation
  • Sensei_WC_Utils::get_product_variation_data has been deprecated in favour of \Sensei_WC_Utils::get_variation_data
  • Sensei_WC_Utils::get_product_from_item has been deprecated in favour of $item->get_product()
  • Sensei_WC_Utils::get_checkout_url has been deprecated in favour of wc_get_checkout_url

Other

  • sensei_wc_add_to_cart has been deprecated in favour of Sensei_WC::the_add_to_cart_button_html
  • sensei_check_if_product_is_in_cart has been deprecated in favour of Sensei_WC::is_product_in_cart
  • sensei_simple_course_price has been deprecated in favour of Sensei_WC_Paid_Courses\Frontend\Courses::output_course_price
  • is_woocommerce_active has been deprecated with no replacement
  • sensei_check_woocommerce_version has been deprecated with no replacement

Deprecated Shortcodes

Additionally, the following legacy shortcodes will now log deprecation warnings. A notice will also be displayed on the front-end that is only visible to users with the edit_posts capability (i.e. it won’t be visible to students or guests):

  • newcourses
  • featuredcourses
  • freecourses
  • paidcourses
  • usercourses
  • allcourses

Deprecated Hooks

  • sensei_show_delete_course_button (the Delete Course button that may appear on the My Courses page will be removed in Sensei 4.0)
  • sensei_merge_courses_with_parent_product has been deprecated in favour of sensei_wc_paid_courses_merge_courses_with_parent_product
  • sensei_wc_subscriptions_get_subscription_types has been deprecated in favour of sensei_wc_paid_courses_subscriptions_get_subscription_types
  • sensei_wc_memberships_auto_start_course has been deprecated in favour of sensei_wc_paid_courses_memberships_auto_start_course
  • sensei_wc_memberships_auto_start_courses has been deprecated in favour of sensei_wc_paid_courses_memberships_auto_start_courses
  • sensei_wc_single_add_to_cart_button_text has been deprecated in favour of sensei_wc_paid_courses_add_to_cart_button_text
  • sensei_wc_order_statuses has been deprecated in favour of sensei_wc_paid_courses_order_statuses

Release Testing

We’d like to keep Sensei 2.0 in beta for the next 3 weeks.

If you’d like to help us test Sensei with WooCommerce Paid Courses, please fill out this form. The beta will be sent to those users who have an active Sensei license, so please be sure to enter the email address you used to purchase Sensei. UPDATE: Beta tester signups are now closed. Thank you to all those who signed up!

If you do not have an active Sensei license but are still interested in testing, you can download the free beta version of Sensei here.

To test translations, you will need to rename the .po and .mo files inside the /wp-content/languages/plugins folder from woothemes-sensei-{$locale}.{$ext} to sensei-{$locale}.{$ext}. This step is required because we still need to migrate Sensei translations from Transifex to GlotPress and have them use the new text domain. Unfortunately, we are unable to complete this step until after Sensei is listed on WordPress.org.

Also, we have not yet updated our extensions to work with Sensei 2.0. We will be working on that next while the beta is in testing. UPDATE: We now have betas for Certificates, Course Progress and Content Drip.

During testing, if you come across a bug, please submit an issue on Github or leave a comment here.

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.

Thanks to all of our testers and contributors!

Posted on

Upcoming changes in Sensei 2.0

There are some updates coming to Sensei! Nothing changes for you immediately, but we wanted to let you know what’s new — and why.

When Sensei 2.0 launches, it will be available as two separate plugins – a free version available on WordPress.org for anyone who wants to offer online courses on their website, and a WooCommerce Paid Courses extension for those who’d like to sell courses through WooCommerce.

Why are we doing this?

We want to make it possible for anyone who wants to create online courses to be able to do so with Sensei. By creating a free version, we draw closer to realizing our vision of democratizing online learning.

What does this mean for me?

If you currently have a valid Sensei license for your site, nothing changes in Sensei 2.0. Your existing Sensei plugin will continue to function as before, and you’ll continue to get updates and support.

(Eventually, there will be a migration process to seamlessly transition your site from Sensei to Sensei + WooCommerce Paid Courses, but that won’t happen until after the release of Sensei 2.0.)

I have a question.

Ask it! We invite you to add a comment to this post with any questions you have.

Posted on

Sensei 1.12.2 Has Shipped

Sensei 1.12.2 is now available. This release fixes some PHP warnings and security issues. We recommend updating to 1.12.2 as soon as possible.

Here’s what you’ll find in this release:

Please report any issues you may find in the comments or on Github. Thank you!

Posted on

Sensei 1.12.2 Beta 2 Is Out

Sensei 1.12.2 Beta 2 is now available for testing. You can download it here.

Here’s a list of what’s been fixed in this beta:

Please report any issues you find in the comments. Thanks!

Posted on

What’s New in Sensei 1.11.0 – Lesson Preview Labels & More Detail on Learners Analysis

We’ve just shipped Sensei 1.11.0. This release includes:

  • A new Email column on the Learners Analysis page
  • A more prominent label for lesson previews
  • Deleting a user’s messages when their account is deleted
  • Updates to the default tweet text that can be sent after activation
  • A new filter for WooCommerce statuses

You can find the full list of changes in the change log.

Learners Analysis

We heard from those of you with hundreds of learners that it’s difficult to search for and find a particular student, and to distinguish between students with similar names. To make it easier, we’ve added an Email column to the Learners Analysis page. The Email field is searchable and also appears in the CSV export.

learner-analysis-email.jpg

Lesson Preview Labels

Sensei provides the ability for a site visitor to view a lesson without having to log in and/or purchase the course, giving you a way to offer a free sample of your course content. When a lesson is in (free) preview, we highlight this by showing a stylized label beside the lesson name.

free-preview.jpg

Let’s Chat

Have feedback you’d like to share about Sensei or online learning in general? Schedule a call and let’s talk!

Posted on

What’s New in Sensei & Sensei Course Progress

What’s New in Sensei

We’ve just shipped the Sensei 1.10.0 release, which includes:

  • Deleting all plugin data when Sensei is deleted
  • Support for PHP 7.2
  • Revisions history for courses, lessons and questions
  • Excluding modules from the course navigation when a module has no content
  • Automatically adding the user to the course when they purchase a variable subscription product
  • A new sensei_start_course_redirect_url filter that can be used to redirect users to a different page when starting a course
  • Showing lesson tags in the sidebar and cleaning up other lesson settings when Gutenberg is enabled
  • Usage tracking for active and completed courses, as well as system info such as PHP and WordPress versions

You can find the full list of changes in the change log.

Deleting Plugin Data

In order to be GDPR-compliant, please be aware that Sensei will now delete all of its data when the plugin is deleted. This is a significant departure for anyone who has grown accustomed to deleting Sensei and then re-installing it later.

If you need to remove Sensei from your site, and there’s even the slightest chance that you may want to re-install it at some point in the future, we highly advise you take a backup of your site first. Without a backup, there will be no way to restore any of your courses, lessons, quizzes, etc.

Note that deactivating the plugin does not delete any data.

UPDATE: We’ve released Sensei 1.10.1, which introduces a new Delete data on uninstall setting. Sensei will ONLY delete data on plugin deletion when this setting is selected.

Semantic Versioning

Moving forward, Sensei releases will use semantic versioning, which dictates that major releases — those with API changes or the potential to affect extension compatibility — receive a new major version number (e.g. 2.0.0, 3.0.0). Minor releases, on the other hand, will receive a new minor version number (e.g. 1.11.0, 1.12.0), while patches will get a new patch version number (e.g. 1.10.1, 1.10.2).

We’re using this method in an attempt to better describe what each release contains, and tell you at a glance how much of an impact a release may have on your online learning site. We hope this also increases confidence in minor releases and patches, and helps you update Sensei more quickly when one of these updates is released.

What’s New in Sensei Course Progress

We’ve also released Sensei Course Progress 1.0.7, which includes:

  • Showing the widget on the module page
  • Linking the module name to the module page
  • Making the UI consistent when the Display all Modules widget setting is selected vs. when it is not
  • Russian translations

You can find the full list of changes in the change log.

What do you think of the latest releases of Sensei and Sensei Course Progress? Let us know in the comments!

Posted on

Sensei 1.7.7 security release is now available

Version 1.7.7 of Sensei has just been released. See our documentation for details of how to update.

This release fixes a cross-site-scripting vulnerability identified in WordPress earlier this week. You can read more about the vulnerability here.

We strongly recommend updating to version 1.7.7 immediately.

See the changelog for full details of this release.

(Comments are closed on this post. If you experience any issues, please contact support via the link in the sidebar.)