*** Changelog ***

## 4.25.1 - 2025-09-18
### Security
- Add authorization check when updating the lesson course relation
- Add authorization check when updating a lesson in the course structure

### Added
- Add support for changing text color of Course Overview block [#7826](https://github.com/Automattic/sensei/pull/7826)

### Changed
- Cleanup deprecated teacher role capabilities [#7829](https://github.com/Automattic/sensei/pull/7829)
- Remove teacher redirect on login [#7821](https://github.com/Automattic/sensei/pull/7821)

### Fixed
- Fix "Calling get_class() without arguments is deprecated" PHP notice [#7815](https://github.com/Automattic/sensei/pull/7815)
- Invalid property notice for messages [#7814](https://github.com/Automattic/sensei/pull/7814)
- Non course-list patterns showing up in the Course List block's pattern picker [#7797](https://github.com/Automattic/sensei/pull/7797)
- PHP fatal when calling array_rand on empty array [#7828](https://github.com/Automattic/sensei/pull/7828)
- Squished radio buttons / checkboxes for multi-line quiz answers [#7820](https://github.com/Automattic/sensei/pull/7820)
- Update button cursor on hover for improved accessibility [#7843](https://github.com/Automattic/sensei/pull/7843)

## 4.25.0 - 2025-04-15
### Added
- Allow editing course archive page title from the block editor [#7786](https://github.com/Automattic/sensei/pull/7786)
- Autofocus the title input on the form render [#7802](https://github.com/Automattic/sensei/pull/7802)
- Clear text indicator to indicate disabled status of Emails [#7752](https://github.com/Automattic/sensei/pull/7752)

### Changed
- Update the activation logic to always enable the setup wizard on first installation [#7800](https://github.com/Automattic/sensei/pull/7800)
- Update Sensei Pro upgrade URL to handle WordPress.com hosted sites correctly [#7790](https://github.com/Automattic/sensei/pull/7790)

### Deprecated
- Deprecate Student Courses Block in favor of Course List block [#7764](https://github.com/Automattic/sensei/pull/7764)

### Fixed
- Button alignment on Setup wizard notice [#7779](https://github.com/Automattic/sensei/pull/7779)
- Course outline: Fix focus issue on lesson/module add to inner blocks [#7783](https://github.com/Automattic/sensei/pull/7783)
- Course pattern layout: Fix Safari render issue [#7789](https://github.com/Automattic/sensei/pull/7789)
- Fix course ordering on wordpress.com [#7799](https://github.com/Automattic/sensei/pull/7799)
- Fix loading some translations too early [#7780](https://github.com/Automattic/sensei/pull/7780)
- Fix plugin configure link pointing to the wrong settings URL [#7781](https://github.com/Automattic/sensei/pull/7781)
- Fix required quiz score texts [#7793](https://github.com/Automattic/sensei/pull/7793)
- Fix undefined property notice on WP 6.8 [#7773](https://github.com/Automattic/sensei/pull/7773)
- Occasional error when submitting a quiz [#7755](https://github.com/Automattic/sensei/pull/7755)
- Pattern previews: Ensure consistent background color in pattern previews by using theme color variables and fixing iframe sizing issues [#7796](https://github.com/Automattic/sensei/pull/7796)
- Prevent storing enrolment data in memory on Students screen [#7772](https://github.com/Automattic/sensei/pull/7772)
- Students dropdown menu being offset in the admin panel [#7695](https://github.com/Automattic/sensei/pull/7695)
- Workflow: Update PR milestone validation supporting task re-run [#7787](https://github.com/Automattic/sensei/pull/7787)
- Newsletter wizard form: Handle server errors [#7801](https://github.com/Automattic/sensei/pull/7801)

### Development
- Update NodeJS and NPM versions

## 4.24.5 - 2025-01-16
### Security
- Fix unprepared SQL
- Remove feed content if the user doesn't have access to the lesson

### Added
- Wrap question numbers in `<span>` tags [#7738](https://github.com/Automattic/sensei/pull/7738)

### Changed
- Replace `date` with `gmdate` [#7735](https://github.com/Automattic/sensei/pull/7735)
- Replace `unlink` with `wp_delete_file` [#7732](https://github.com/Automattic/sensei/pull/7732)
- Replace `wp_json_encode` with `json_encode` [#7730](https://github.com/Automattic/sensei/pull/7730)
- Update the placeholder to use an internal image [#7728](https://github.com/Automattic/sensei/pull/7728)
- Replace `strip_tags` with `wp_strip_all_tags` [#7731](https://github.com/Automattic/sensei/pull/7731)

### Deprecated
- Deprecate `load_localisation` and `load_plugin_textdomain` functions [#7713](https://github.com/Automattic/sensei/pull/7713)

### Removed
- Remove manual loading of translations [#7713](https://github.com/Automattic/sensei/pull/7713)
- Remove fallback code for Sensei Pro update reminder [#7729](https://github.com/Automattic/sensei/pull/7729)
- Remove files that are already included in WordPress Core [#7727](https://github.com/Automattic/sensei/pull/7727)
- Remove obsolete code from Students area [#7726](https://github.com/Automattic/sensei/pull/7726)

### Fixed
- Initialize Sensei blocks for posts [#7736](https://github.com/Automattic/sensei/pull/7736)
- Remove usage of deprecated parameters in WordPress Core functions [#7724](https://github.com/Automattic/sensei/pull/7724)

## 4.24.4 - 2024-11-12
### Security
- Messages and emails accessible using the search REST API

### Added
- Allow additional users to manage students [#7700](https://github.com/Automattic/sensei/pull/7700)

### Fixed
- Horizontal scroll on Course page when using Course theme [#7705](https://github.com/Automattic/sensei/pull/7705)
- Loading some translations too early which generates a warning on WP 6.7 [#7701](https://github.com/Automattic/sensei/pull/7701)
- PHP deprecation notice in View Results block [#7680](https://github.com/Automattic/sensei/pull/7680)
- Hello elementor theme throwing 404 when rendering the Courses archive page [#7683](https://github.com/Automattic/sensei/pull/7683)
- Label on course complete email received by the teacher [#7672](https://github.com/Automattic/sensei/pull/7672)
- Timed quiz not stopping when time ends [#7675](https://github.com/Automattic/sensei/pull/7675)

### Development
- Added a hook to conditionally render the lesson actions in the frontend [#7677](https://github.com/Automattic/sensei/pull/7677)
- Filter course IDs associated with a given teacher [#7702](https://github.com/Automattic/sensei/pull/7702)

## 4.24.3 - 2024-08-22
### Fixed
- Ensure quiz description is displayed to the student [#7669](https://github.com/Automattic/sensei/pull/7669)
- Incorrect URL for edited emails [#7671](https://github.com/Automattic/sensei/pull/7671)
- Missing lesson status icon for "complete" status [#7667](https://github.com/Automattic/sensei/pull/7667)
- PHP deprecation notice when opening site editor [#7668](https://github.com/Automattic/sensei/pull/7668)
- Some reports not exporting all rows [#7670](https://github.com/Automattic/sensei/pull/7670)

## 4.24.2 - 2024-08-08
### Security
- Improve email templates security

### Changed
- Pass `checks` argument to `sensei_can_user_view_lesson` filter [#7657](https://github.com/Automattic/sensei/pull/7657)
- "Course Started" email is now "Course Enrolled" [#7661](https://github.com/Automattic/sensei/pull/7661)

### Fixed
- Deprecation notices on PHP 8.2 [#7650](https://github.com/Automattic/sensei/pull/7650)
- Custom styles for emails in preview and in sent messages [#7595](https://github.com/Automattic/sensei/pull/7595)
- Keep current status for a question when it is updated [#7603](https://github.com/Automattic/sensei/pull/7603)
- Prevent lesson loading error in Learning Mode for themes that are using referenced styles [#7658](https://github.com/Automattic/sensei/pull/7658)
- Remove limit from report export [#7647](https://github.com/Automattic/sensei/pull/7647)
- Set default names for modules without titles when saving course in the course tour [#7652](https://github.com/Automattic/sensei/pull/7652)
- Replace "Continue to next lesson" with "Back to lesson" CTA in quiz when lesson is last in course [#7642](https://github.com/Automattic/sensei/pull/7642)
- Register blocks to make their translations available in the editor [#7643](https://github.com/Automattic/sensei/pull/7643)
- Tour modal tooltip visibility [#7653](https://github.com/Automattic/sensei/pull/7653)

## 4.24.1 - 2024-06-13
### Security
- Improve security for lessons and modules ordering

### Fixed
- Avoid creating a new translation if it exists already [#7609](https://github.com/Automattic/sensei/pull/7609)
- Change some taxonomy capabilities to fix some behaviors [#7613](https://github.com/Automattic/sensei/pull/7613)
- Contact teacher form not displaying correctly in Learning Mode [#7610](https://github.com/Automattic/sensei/pull/7610)
- Register Sensei LMS custom post types without delay [#7607](https://github.com/Automattic/sensei/pull/7607)
- Support "0" or other falsy values as an answer for a quiz question [#7614](https://github.com/Automattic/sensei/pull/7614)

## 4.24.0 - 2024-04-25
### Security
- Prevent unauthenticated flushing of rewrite rules [#7596](https://github.com/Automattic/sensei/pull/7596)

### Added
- User profile settings for unsubscribing from emails [#7586](https://github.com/Automattic/sensei/pull/7586)

### Changed
- Let buttons get their styles from the theme [#7587](https://github.com/Automattic/sensei/pull/7587)

### Fixed
- Add VideoPress block compabitility for the video settings on courses [#7592](https://github.com/Automattic/sensei/pull/7592)
- Fix preview email button and links [#7590](https://github.com/Automattic/sensei/pull/7590)

## 4.23.1 - 2024-04-15
### Added
- WPML: Setting to disable Sensei slugs translation for better compatibility [#7569](https://github.com/Automattic/sensei/pull/7569)
- WPML: Share student progress and quiz submission across translations [#7492](https://github.com/Automattic/sensei/pull/7492)
- WPML: Show user courses for different languages using `sensei_user_courses` shortcode [#7583](https://github.com/Automattic/sensei/pull/7583)

### Changed
- Open setup wizard if necessary when navigating through relevant pages in WP admin [#7581](https://github.com/Automattic/sensei/pull/7581)

### Fixed
- Usage of question categories in translated quizzes [#7559](https://github.com/Automattic/sensei/pull/7559)
- Lessons being automatically published when course is updated [#7582](https://github.com/Automattic/sensei/pull/7582)

## 4.23.0 - 2024-04-04
### Added
- Sensei pro upsell task in Sensei Home [#7562](https://github.com/Automattic/sensei/pull/7562)

### Deprecated
- Remove Sell your course with WooCommerce task from core [#7572](https://github.com/Automattic/sensei/pull/7572)

### Fixed
- Ensure student can view the lesson content when rendering the Complete Lesson button [#7579](https://github.com/Automattic/sensei/pull/7579)
- Remove opinionated CSS class from login form [#7542](https://github.com/Automattic/sensei/pull/7542)
- Visibility improved for focus elements of Course tour [#7570](https://github.com/Automattic/sensei/pull/7570)

## 4.22.0 - 2024-03-20
### Added
- Added Course onboarding tour [#7535](https://github.com/Automattic/sensei/pull/7535)
- Added Lesson Quiz onboarding tour [#7538](https://github.com/Automattic/sensei/pull/7538)
- Add toggle to pre-publish panel to publish associated lessons when the course is published [#7536](https://github.com/Automattic/sensei/pull/7536)
- Display warning when there are no layouts available. [#7530](https://github.com/Automattic/sensei/pull/7530)

### Changed
- Tweak "Configure learning mode" task description [#7540](https://github.com/Automattic/sensei/pull/7540)
- Updated styles for module title and lesson title in Course Outline block [#7068](https://github.com/Automattic/sensei/pull/7068)

### Removed
- Remove "Customize your lesson template" from task list [#7539](https://github.com/Automattic/sensei/pull/7539)

### Fixed
- Address the issue of patterns flickering in the editor wizard on WPCOM sites [#7511](https://github.com/Automattic/sensei/pull/7511)
- Contact Teacher and Conditional Content block not appearing in Site Editor when Gutenberg is enabled [#7541](https://github.com/Automattic/sensei/pull/7541)
- Email subject with special characters not being displayed correctly [#7546](https://github.com/Automattic/sensei/pull/7546)
- Email Template showing up as default template in editor when GB is installed [#7517](https://github.com/Automattic/sensei/pull/7517)
- Ensure that default passing grade will be "0" for any situation [#7524](https://github.com/Automattic/sensei/pull/7524)
- Fix lesson bulk edit. [#7515](https://github.com/Automattic/sensei/pull/7515)
- Fix Sensei Pro question type not displaying in filter and table on Questions page [#7544](https://github.com/Automattic/sensei/pull/7544)
- Ignore Passing Grade for answer feedback when Pass Required is turned off [#7525](https://github.com/Automattic/sensei/pull/7525)
- WPML: Create quiz and question translations, update relations [#7480](https://github.com/Automattic/sensei/pull/7480)

## 4.21.0 - 2024-02-26
### Added
- Add existing lessons in Course Outline [#7368](https://github.com/Automattic/sensei/pull/7368)

### Changed
- Add docs links to the page settings [#7488](https://github.com/Automattic/sensei/pull/7488)

### Removed
- Remove "Customize Colors" link for classic themes [#7491](https://github.com/Automattic/sensei/pull/7491)

### Fixed
- Fix course/lesson patterns not working on latest Gutenberg version [#7499](https://github.com/Automattic/sensei/pull/7499)
- Fix Course Outline for a course translated with WPML. [#7453](https://github.com/Automattic/sensei/pull/7453)

## 4.20.2 - 2024-02-07
### Changed
- Auto-focus the course title field when creating a new course [#7434](https://github.com/Automattic/sensei/pull/7434)

### Fixed
- Fixed Sensei Email template not available in site editor [#7463](https://github.com/Automattic/sensei/pull/7463)
- Flush rewrite rules when the website language was changed or the translation was updated. [#7435](https://github.com/Automattic/sensei/pull/7435)
- Memory issue on the student reports screen [#7468](https://github.com/Automattic/sensei/pull/7468)

## 4.20.1 - 2024-01-17
### Added
- Log event when task on Sensei Home is completed [#7430](https://github.com/Automattic/sensei/pull/7430)

### Changed
- Create all necessary Sensei pages on plugin activation [#7426](https://github.com/Automattic/sensei/pull/7426)
- Do not display course theme step on Setup Wizard if theme is already installed [#7401](https://github.com/Automattic/sensei/pull/7401)
- Hide Gutenberg tour modal in Sensei new Course editor [#7399](https://github.com/Automattic/sensei/pull/7399)
- Include instructions to the High-Performance Progress Storage settings screen [#7420](https://github.com/Automattic/sensei/pull/7420)
- Take user to Learning Mode Lesson Template in Setup task instead of only site editor [#7393](https://github.com/Automattic/sensei/pull/7393)
- Update course notices to have a CTA for course editors [#7403](https://github.com/Automattic/sensei/pull/7403)

### Fixed
- Don't send Course Completion email twice (when the course is already completed) [#7405](https://github.com/Automattic/sensei/pull/7405)
- Message "Cannot register for an unpublished course" was not being displayed [#7403](https://github.com/Automattic/sensei/pull/7403)
- Redirect properly when course editor enrols in a course containing only draft lessons [#7403](https://github.com/Automattic/sensei/pull/7403)
- Set email template only for sensei_email post type. [#7402](https://github.com/Automattic/sensei/pull/7402)
- Settings form not redirecting to the correct tab when submitted [#7424](https://github.com/Automattic/sensei/pull/7424)
- WPML compatibility fix: Add translations for lessons and quizzes that were created while saving the course structure. [#7383](https://github.com/Automattic/sensei/pull/7383)

### Development
- Introduce Clock interface and corresponding public property for Sensei object. [#7395](https://github.com/Automattic/sensei/pull/7395)

## 4.20.0 - 2023-12-14
### Added
- Introduce an experimental feature: High-Performance Progress Storage. It allows student progress data to be stored in an optimized way, using custom tables. The feature is disabled by default and can be enabled from the settings page.

### Changed
- Open the Lesson editor in the same tab when link is clicked in the Course Outline block [#7344](https://github.com/Automattic/sensei/pull/7344)
- Rename "View Quiz" block to "Take Quiz" [#7332](https://github.com/Automattic/sensei/pull/7332)

### Fixed
- Continue course button not working when using plain permalinks [#7358](https://github.com/Automattic/sensei/pull/7358)
- Fix preview styles for course blocks on the editor [#7307](https://github.com/Automattic/sensei/pull/7307)
- Importer not finding existing users in some cases [#7361](https://github.com/Automattic/sensei/pull/7361)
- Improve styling of Landing Page and Course List patterns [#7292](https://github.com/Automattic/sensei/pull/7292)
- Resolved the issue of the 'Take Quiz' button not displaying in the site editor when Gutenberg is enabled [#7341](https://github.com/Automattic/sensei/pull/7341)
- Restart quiz redirects to the course complete page if the course was completed [#7377](https://github.com/Automattic/sensei/pull/7377)
- Scope CSS to Learning Mode templates only [#7382](https://github.com/Automattic/sensei/pull/7382)
- Teachers can no longer see all students in the Students screen [#7367](https://github.com/Automattic/sensei/pull/7367)

## 4.19.2 - 2023-11-23
### Added
- Style Lesson Actions block in Learning Mode [#7224](https://github.com/Automattic/sensei/pull/7224)
- Change border color and width of Lesson Actions block in Learning Mode [#7283](https://github.com/Automattic/sensei/pull/7283)

### Changed
- Migrate legacy quiz data [#7289](https://github.com/Automattic/sensei/pull/7289)
- "Not Enrolled" notice in Learning Mode [#7263](https://github.com/Automattic/sensei/pull/7263)
- Design for footer in multi-page quizzes [#7268](https://github.com/Automattic/sensei/pull/7268)
- Style of Learning Mode notice that is displayed when a student is not logged in [#7264](https://github.com/Automattic/sensei/pull/7264)
- Message when there are no published lessons in a course [#7300](https://github.com/Automattic/sensei/pull/7300)

### Fixed
- Contact Teacher form in Learning Mode quiz footer [#7257](https://github.com/Automattic/sensei/pull/7257)
- Contact Teacher button is full width in Learning Mode [#7288](https://github.com/Automattic/sensei/pull/7288)
- Deprecation notice when user is not logged in [#7294](https://github.com/Automattic/sensei/pull/7294)
- "No published content" notice being displayed for users who created a course in the editor [#7284](https://github.com/Automattic/sensei/pull/7284)
- How we determine whether a quiz has been submitted [#7278](https://github.com/Automattic/sensei/pull/7278)
- Module spacing when Learning Mode is not enabled [#7272](https://github.com/Automattic/sensei/pull/7272)
- Distorted site logo in Learning Mode [#7275](https://github.com/Automattic/sensei/pull/7275)
- Gap fill question to accept "0" as a right answer [#7273](https://github.com/Automattic/sensei/pull/7273)
- "Pending Grade" button is too wide for some themes [#7287](https://github.com/Automattic/sensei/pull/7287)
- Fix broken Learning Mode templates on Gutenberg 17.1.0 [#7317](https://github.com/Automattic/sensei/pull/7317)
- Fix dropdown menu icon size [#7316](https://github.com/Automattic/sensei/pull/7316)

### Development
- Add stylesheets for Course theme variations [#7256](https://github.com/Automattic/sensei/pull/7256)

## 4.19.1 - 2023-11-06
### Fixed
- Email editor styles getting leaked into other templates in site editor [#7258](https://github.com/Automattic/sensei/pull/7258)

## 4.19.0 - 2023-11-01
### Added
- Add a setting to not allow self-enrollment on courses [#7231](https://github.com/Automattic/sensei/pull/7231)

### Changed
- Update style of "Awaiting Grade" notice in Learning Mode [#7197](https://github.com/Automattic/sensei/pull/7197)
- Update style of "Your Grade" notice in Learning Mode [#7197](https://github.com/Automattic/sensei/pull/7197)

### Removed
- Eliminate usage of temporary Course theme hook [#7219](https://github.com/Automattic/sensei/pull/7219)

### Fixed
- Fix course notices that are intended to be displayed only on the course page but were currently appearing on the courses archive page [#7231](https://github.com/Automattic/sensei/pull/7231)
- Fix padding in site editor that prevents full-width alignment from working [#7233](https://github.com/Automattic/sensei/pull/7233)

## 4.18.0 - 2023-10-12
### Security
- Escape class attributes in Student Courses and Course Results block

### Changed
- Changed styles for graded question answer feedbacks [#7171](https://github.com/Automattic/sensei/pull/7171)
- Updated styling of graded quizzes footer in Learning Mode [#7202](https://github.com/Automattic/sensei/pull/7202)
- Updated the login page style and fixed issue of "My Messages" button rendering when logged out [#7204](https://github.com/Automattic/sensei/pull/7204)
- Changed footer style for quizzes awaiting grading [#7190](https://github.com/Automattic/sensei/pull/7190)
- Add success message styles [#7209](https://github.com/Automattic/sensei/pull/7209)
- Bump minimum required PHP version to 7.4 [#7195](https://github.com/Automattic/sensei/pull/7195)
- Improve support for PHP 8.1 [#7198](https://github.com/Automattic/sensei/pull/7198)

### Fixed
- Fix "Next Lesson" button not visible on completed lessons [#7169](https://github.com/Automattic/sensei/pull/7169)
- Fix additional css classes for Student Courses block [#7174](https://github.com/Automattic/sensei/pull/7174)
- Fixed back to lesson block to apply block styles in quiz navigation area [#7186](https://github.com/Automattic/sensei/pull/7186)
- Fix formatting of Course List block on course archive page [#7180](https://github.com/Automattic/sensei/pull/7180)
- Fix student progress reset not working in some cases [#7181](https://github.com/Automattic/sensei/pull/7181)
- Improve performance by reducing the number of queries that run on page load [#6819](https://github.com/Automattic/sensei/pull/6819)
- Split manual enrollment title in order to allow different gender on the translation [#7165](https://github.com/Automattic/sensei/pull/7165)

### Development
- Updated the "login-form" template [#7204](https://github.com/Automattic/sensei/pull/7204)

## 4.17.0 - 2023-09-13
### Added
- Added header on the Learning Mode template of quizzes [#7087](https://github.com/Automattic/sensei/pull/7087)
- Log active theme name on plugin deactivation [#7155](https://github.com/Automattic/sensei/pull/7155)

### Changed
- Change "Lesson Type" to "Lesson Layout" in wizard [#7111](https://github.com/Automattic/sensei/pull/7111)
- Change all question styles for quizzes in Learning Mode [#7163](https://github.com/Automattic/sensei/pull/7163)
- Changed the footer styles of Quiz template [#7163](https://github.com/Automattic/sensei/pull/7163)
- Display "Default Lesson" first in lesson wizard [#7119](https://github.com/Automattic/sensei/pull/7119)
- Style changes of the navigation and title area of quiz in Learning Mode [#7093](https://github.com/Automattic/sensei/pull/7093)
- Update style of quiz questions that have been submitted for grading [#7163](https://github.com/Automattic/sensei/pull/7163)

### Fixed
- Button and Image style fix for lessons in Learning Mode in Course theme [#7059](https://github.com/Automattic/sensei/pull/7059)
- Fixed AI course outline generator not working in WCPC [#7157](https://github.com/Automattic/sensei/pull/7157)
- Fixed extra header element in lesson content [#7063](https://github.com/Automattic/sensei/pull/7063)
- Fix PHP 8.2 compatibilty issue: creation of dynamic property. [#7120](https://github.com/Automattic/sensei/pull/7120)
- Fix stuck in infinite loop issue on My Messages page in Astra theme [#7138](https://github.com/Automattic/sensei/pull/7138)
- Incorrect lesson layout sometimes added in editor [#7164](https://github.com/Automattic/sensei/pull/7164)

### Development
- Update question type templates [#7163](https://github.com/Automattic/sensei/pull/7163)

## 4.16.1 - 2023-08-15
### Added
- Add CC/BCC fields for Sensei emails [#7014](https://github.com/Automattic/sensei/pull/7014)

### Changed
- Update the `sensei_results_links` filter to include the learner's user ID when displaying public profiles and to display results links publicly [#7048](https://github.com/Automattic/sensei/pull/7048)

### Fixed
- Fix "View Results" button not working [#7058](https://github.com/Automattic/sensei/pull/7058)
- Fix custom button colors not being applied in Learning Mode [#7080](https://github.com/Automattic/sensei/pull/7080)
- Fix duplicate comment sections under lesson in FSE themes [#7044](https://github.com/Automattic/sensei/pull/7044)
- Fix lessons not using the selected template in FSE themes [#7045](https://github.com/Automattic/sensei/pull/7045)
- Fix error when the module author user is deleted [#7082](https://github.com/Automattic/sensei/pull/7082)
- Fix lessons not being saved when creating a course on the latest Gutenberg version [#7091](https://github.com/Automattic/sensei/pull/7091)
- Fix lesson styling in editor on WordPress 6.3 or when Gutenberg enabled [#7054](https://github.com/Automattic/sensei/pull/7054)
- Fix PHP 8.1 deprecation notice on Students page [#7038](https://github.com/Automattic/sensei/pull/7038)
- Fix `strpos`and `str_replace` deprecation messages in PHP 8.1 and 8.2 [#7028](https://github.com/Automattic/sensei/pull/7028)

## 4.16.0 - 2023-07-13
### Added
- Enable to select how to generate lessons when a course is created [#6999](https://github.com/Automattic/sensei/pull/6999)

### Changed
- Bump minimum required PHP version to 7.3 [#7005](https://github.com/Automattic/sensei/pull/7005)

### Fixed
- Fix Continue Course block not redirecting to first lesson in some cases [#6997](https://github.com/Automattic/sensei/pull/6997)
- Fix emails not using the From Name/Email settings [#6968](https://github.com/Automattic/sensei/pull/6968)
- Fix PHP 8.1 autovivification of falsy value deprecation message [#7015](https://github.com/Automattic/sensei/pull/7015)
- Removed Beta label from Editor Menu [#6989](https://github.com/Automattic/sensei/pull/6989)

## 4.15.1 - 2023-06-22
### Added
- Add Enrolled and Completion columns on the reports course page. [#6966](https://github.com/Automattic/sensei/pull/6966)

### Fixed
- Avoid an error with getting future post URL for a scheduled sensei_email post. [#6975](https://github.com/Automattic/sensei/pull/6975)
- Fix auto grading for non-multiple choice questions. [#6984](https://github.com/Automattic/sensei/pull/6984)
- Fix auto grading not working for multiple choice questions when multiple correct answers. [#6906](https://github.com/Automattic/sensei/pull/6906)
- Fix Course Wizard spacing issue when using latest Gutenberg. [#6940](https://github.com/Automattic/sensei/pull/6940)
- Fix editor block error when updating an email. [#6936](https://github.com/Automattic/sensei/pull/6936)
- Fix resetting a quiz also resets the course start date. [#6643](https://github.com/Automattic/sensei/pull/6643)
- In lesson complete email use course author as lesson teacher. [#6977](https://github.com/Automattic/sensei/pull/6977)
- Fix conflicts with modules using the same name. [#6437](https://github.com/Automattic/sensei/pull/6437)

## 4.15.0 - 2023-06-01
### Security
- Fix shortcodes being called in teacher's messages.
- Remove private custom post types from sitemaps.

### Changed
- Review the Learning mode default template typography, spacing and alignment.
- Improve Global Style support in Learning mode templates.

### Fixed
- Block triggering wp_mail for temporary users even on non-frontend context.
- Don't re-create emails on plugin update.
- Fix auto grading not working on the Grading page for multiple choice questions.
- Fix blocks initialization.
- Fix email body rendered in the front-end in some cases.
- Fix Kadence blocks crashing lesson editor.
- Fix MailPoet error when running job.

## 4.14.0 - 2023-05-10
### Added
- Ability to set conditions on admin notices based on a date range
- Add disclamer with the reason that Sensei Pro can't be updated when license is not active
- Add quiz generation using AI button in quiz block

### Changed
- Use non-deprecated attribute to load SVG icons.

### Fixed
- Don't send e-mails to Guest/Preview users
- Fix PHP Warning with Divi when using Learning Mode Video theme
- Fix Sensei admin notice styles
- Missing email page template link on the editor
- Removed unused calls to SenseiLMS.com for the old extensions page

## 4.13.1 - 2023-04-19
### Changed
- Disable the "welcome" and "no progress" emails by default
- Update MailPoet link to point to Lists
- Improve plugin loading performance using pre-built class map

### Fixed
- Astra not loading the Courses page content
- Fix auto grading not working and additionally throwing error for fill gap questions
- Fix patterns wizard preview style
- Fix the home email notification settings link
- Make the email post type private
- Remove fallback to legacy options
- Fix showing warning from module when admin email does not match any existing user and it has no author

## 4.13.0 - 2023-03-30
### Added
- Functionality to create MailPoet lists for all courses and groups, and to subscribe users to those lists.

### Changed
- Modify screen reader text to be less verbose on module expand button, front-end 👏 @alexstine

### Fixed
- Fix styling of notices on pages other than Sensei home and button output on Sensei home.
- Missing aria-expanded attribute on front-end module expand button 👏 @alexstine
- Only show the sensei_email template for the sensei emails.

## 4.12.0 - 2023-03-29
### Added
- Default Email templates
- Bulk actions to enable and disable Emails
- Email to be sent to teacher when a reply is received to a private message
- Email Settings screen inside Email Customization
- Support for custom tabs on the Course page
- Disable pro Emails by default and allow enabling from pro
- Email sent to student on course completion
- Email sent to student upon grading of quiz
- Email to be sent to student when a lesson becomes available
- Email to be sent to teacher when a student sends a new message
- Email to notify student before course expires
- Pattern as Email template and student course complete mail
- Reply To setting for Email
- Send Email to student when the teacher replies to a private message
- Send Email to teacher when a student submits a quiz
- Send Email to teacher when new course is assigned
- Sending Email to teacher on student starting a course using GB Email template
- Trash Emails on plugin uninstall

### Changed
- Open Install MailPoet page in same tab
- Update language used in email functionality

### Fixed
- Fix student "Message Reply Received" email not sending from lesson or quiz page
- Logged out users are redirected to login page if tries to access course completion page
- Use dynamic pricing for Sensei Pro upsells

## 4.11.2 - 2023-03-07
### Added
- Register setup wizard option in settings endpoint.
- Add template name as CSS class to body element in Learning Mode
- Prepend sensei in CSS collapsed class
- Add support for customizing the tabs on the wp-admin Courses page

### Fixed
- Run activation hooks when plugin is activated in the background.
- Fix global heading colors not working in Learning Mode
- Fix deprecation warnings due to missmatching return type in PHP 8.1.
- Fix progress bar and modules in Learning Mode not adhering to global colors
- Fix students context menu
- Disable Divi Theme Builder when Learning Mode enabled.
- Fix error in import job
- Auto select specific template for pattern at course creation if specified
- Fix error on quiz update

## 4.11.1 - 2023-02-03

- Add: Auto select course template depending on selected course pattern [#6200](https://github.com/Automattic/sensei/pull/6200)
- Fix: Prevent html entities from showing up in module titles in editor [#6372](https://github.com/Automattic/sensei/pull/6372)
- Fix: Remove separator from course list pattern [#6435](https://github.com/Automattic/sensei/pull/6435)
- Fix: Alignment of url buttons for Blockbase/Astra themes [#5814](https://github.com/Automattic/sensei/pull/5814)
- Fix: Type error when `the_content` is not a string [#6484](https://github.com/Automattic/sensei/pull/6484)
- Fix: `the_content` hook called twice when viewing a lesson in Learning Mode [#6438](https://github.com/Automattic/sensei/pull/6438)
- Tweak: Suppress theme without comments.php deprecation message [#6453](https://github.com/Automattic/sensei/pull/6453)
- Tweak: Round course progress to integer [#6232](https://github.com/Automattic/sensei/pull/6232)

## 4.11.0 - 2023-02-02

- New: Guest users and teachers preview [#6421](https://github.com/Automattic/sensei/pull/6421)
- Add: Add Course List block to My Courses and course archive on page creation [#6343](https://github.com/Automattic/sensei/pull/6343) [#6354](https://github.com/Automattic/sensei/pull/6354) [#6414](https://github.com/Automattic/sensei/pull/6416)
- Add: Curate list of installed plugins that are logged [#6424](https://github.com/Automattic/sensei/pull/6424)
- Add: Add filter for the student bulk action modal [#6366](https://github.com/Automattic/sensei/pull/6366)
- Fix: Redirect to correct contact form if the user has a WPCOM subscription [#6407](https://github.com/Automattic/sensei/pull/6407)
- Fix: Fix archive page going on infinite loop in Astra theme [#6431](https://github.com/Automattic/sensei/pull/6431)
- Fix: Do not show quiz notice if it is the quiz page [#6313](https://github.com/Automattic/sensei/pull/6313)
- Fix: Fix error when calling `the_content` filter with no post context [#6406](https://github.com/Automattic/sensei/pull/6406)
- Fix: Fix issue where Quiz Timer options would appear only when the Random Question Order is enabled [#6377](https://github.com/Automattic/sensei/pull/6377)
- Fix: Fix block editor check [#6359](https://github.com/Automattic/sensei/pull/6359)
- Fix: Fix Twenty Fifteen and Learning Mode layout issue [#6360](https://github.com/Automattic/sensei/pull/6360)
- Tweak: Change reset progress copy by [#6371](https://github.com/Automattic/sensei/pull/6371)

## 4.10.0 - 2023-01-12

- New: Course theme installation through the onboarding wizard
    - Add onboarding theme step [#6182](https://github.com/Automattic/sensei/pull/6182), [#6251](https://github.com/Automattic/sensei/pull/6251), [#6273](https://github.com/Automattic/sensei/pull/6273)
    - Add onboarding theme step backend [#6211](https://github.com/Automattic/sensei/pull/6211)
    - Install Course theme [#6231](https://github.com/Automattic/sensei/pull/6231)
    - Add usage tracking for Setup Wizard Course Theme step [#6252](https://github.com/Automattic/sensei/pull/6252)
    - Add Sensei Home task to customize the Course theme [#6250](https://github.com/Automattic/sensei/pull/6250)
- Add: Add `sensei_usage_tracking_data` filter hook [#6262](https://github.com/Automattic/sensei/pull/6262)
- Add: Log sent emails [#6228](https://github.com/Automattic/sensei/pull/6228)
- Add: Notice asking user for reviews/feedback [#6274](https://github.com/Automattic/sensei/pull/6274)
- Add: Log when reports are run [#6319](https://github.com/Automattic/sensei/pull/6319)
- Add: Add  `Sensei_Data_Port_Utilities::get_demo_course_id()` helper method [#6328](https://github.com/Automattic/sensei/pull/6328)
- Add: Add filters for course actions buttons [#6296](https://github.com/Automattic/sensei/pull/6296)
- Add: Course list button editing [#6324](https://github.com/Automattic/sensei/pull/6324)
- Fix: Fix sidebar position for Learning Mode [#6210](https://github.com/Automattic/sensei/pull/6210)
- Fix: Fix testimonial margin for block patterns [#6216](https://github.com/Automattic/sensei/pull/6216)
- Fix: Ensure passing an integer module id [#6229](https://github.com/Automattic/sensei/pull/6229)
- Fix: Ensure `is_plugin_active` call doesn't give an error [#6249](https://github.com/Automattic/sensei/pull/6249)
- Fix: Always initialize question blocks in frontend [#6258](https://github.com/Automattic/sensei/pull/6258)
- Fix: Fix global admin styles for Groups badge and landing page [#6260](https://github.com/Automattic/sensei/pull/6260)
- Fix: Add empty checks to avoid warnings [#6270](https://github.com/Automattic/sensei/pull/6270)
- Fix: Fix private message emails not being sent [#6257](https://github.com/Automattic/sensei/pull/6257)
- Fix: Ensure all strings in block pattern templates are translated and escaped [#6322](https://github.com/Automattic/sensei/pull/6322)
- Fix: Fix editor wizard header style [#6335](https://github.com/Automattic/sensei/pull/6335)
- Fix: Update question post type to not be publicly queryable [#6347](https://github.com/Automattic/sensei/pull/6347)
- Fix: Fix conflict by disabling Yoast initialization on Divi preview [#6342](https://github.com/Automattic/sensei/pull/6342)
- Fix: Security fixes 👏 foobar7
- Tweak: Remove the "source" property from events data [#6310](https://github.com/Automattic/sensei/pull/6310)
- Tweak: Update Sensei logo [#6336](https://github.com/Automattic/sensei/pull/6336)
- Tweak: Display warning in the editor when adding the lesson properties block if Learning Mode is enabled [#6078](https://github.com/Automattic/sensei/pull/6078)

## 4.9.1 - 2022-12-09

- Fix: Always initialize question blocks in frontend [#6258](https://github.com/Automattic/sensei/pull/6258)
- Fix: Fix global admin styles for Groups badge and landing page [#6260](https://github.com/Automattic/sensei/pull/6260)

## 4.9.0 - 2022-12-06

- New: Co-teacher
    - Add/coteachers metabox hook [#6115](https://github.com/Automattic/sensei/pull/6115)
    - Remove unused terms after course structure update. [#6118](https://github.com/Automattic/sensei/pull/6118)
    - Fix ownership for draft lessons when changing teacher.  [#6180](https://github.com/Automattic/sensei/pull/6180)
    - Add quiz appender filter [#6164](https://github.com/Automattic/sensei/pull/6164)
    - Adapt co-teachers to new sidebar [#6166](https://github.com/Automattic/sensei/pull/6166)
    - Fix some issues with the teacher's Students view  [#6167](https://github.com/Automattic/sensei/pull/6167)
    - Prepare grading to support co-teachers. [#6157](https://github.com/Automattic/sensei/pull/6157)
    - Ensure quiz author is set correctly when the quiz is initially created [#6129](https://github.com/Automattic/sensei/pull/6129)
    - Make upgrade CTA for co-teachers consistent with other CTAs [#6212](https://github.com/Automattic/sensei/pull/6212)
- New: Course Theme
    - Update Featured label and course categories block styles [#6084](https://github.com/Automattic/sensei/pull/6084)
    - Add landing page patterns [#6169](https://github.com/Automattic/sensei/pull/6169)
    - Enable Learning Mode blocks to be configured by theme.json [#6067](https://github.com/Automattic/sensei/pull/6067)
    - Skip opinionated styles when the active theme declares support for it [#6066](https://github.com/Automattic/sensei/pull/6066)
    - Enable customization of the lesson status icons [#6070](https://github.com/Automattic/sensei/pull/6070)
    - Fix sidebar position for Learning Mode [#6210](https://github.com/Automattic/sensei/pull/6210)
    - Update section headings in Landing Page and Course List patterns [#6217](https://github.com/Automattic/sensei/pull/6217)
    - Fix mail list br tag escape in landing page [#6214](https://github.com/Automattic/sensei/pull/6214)
- New: Course Settings
    - Address testing feedback for course settings sidebar [#6161](https://github.com/Automattic/sensei/pull/6161)
    - Course Settings Sidebar [#6156](https://github.com/Automattic/sensei/pull/6156)
    - Create new course general sidebar [#6077](https://github.com/Automattic/sensei/pull/6077)
    - Rename Course Settings sidebar, show arrow [#6197](https://github.com/Automattic/sensei/pull/6197)
- Add: Add/sensei contact link atomic [#6177](https://github.com/Automattic/sensei/pull/6177)
- Add: Switch icon to SVG for Calypso compatibility [#6160](https://github.com/Automattic/sensei/pull/6160)
- Add: Sensei on Dotcom - Connect Sensei Home tasks statuses with Calypso Launchpad tasks statuses [#6124](https://github.com/Automattic/sensei/pull/6124)
- Add: Make the view quiz button behave as a complete lesson button when watching a video is required [#6127](https://github.com/Automattic/sensei/pull/6127)
- Fix: Load persisted notices on user metas only when printing them [#6130](https://github.com/Automattic/sensei/pull/6130)
- Fix: Make Last Activity column non-sortable [#6132](https://github.com/Automattic/sensei/pull/6132)
- Fix: Fix issue with YouTube adapter's setCurrentTime [#6117](https://github.com/Automattic/sensei/pull/6117)
- Fix: Students page now will show all courses enrolled even if it's more than 10. [#5886](https://github.com/Automattic/sensei/pull/5886)
- Fix: Fix module teacher name not showing for modules added to course in legacy way [#5376](https://github.com/Automattic/sensei/pull/5376)
- Fix: Improve classic editor support for questions [#5440](https://github.com/Automattic/sensei/pull/5440)
- Fix: Fix warning when missing update attributes. [#6103](https://github.com/Automattic/sensei/pull/6103)
- Fix: Prevent multiple actions being enqueued at the same time. [#6081](https://github.com/Automattic/sensei/pull/6081)
- Fix: Fix Question Category admin page to display intended post_type [#6085](https://github.com/Automattic/sensei/pull/6085)
- Fix: Add null-check for focus-mode event listener. [#6113](https://github.com/Automattic/sensei/pull/6113)
- Fix: Do not redirect on login when Jetpack handles redirection [#6189](https://github.com/Automattic/sensei/pull/6189)
- Fix: Fix YouTube embed handling on some environments [#6186](https://github.com/Automattic/sensei/pull/6186)
- Fix: Enable to customize  sidebar-width and  header-height via css variables [#6068](https://github.com/Automattic/sensei/pull/6068)
- Fix: Fix SQL performance issue on the student reports page [#6134](https://github.com/Automattic/sensei/pull/6134)
- Fix: Avoid quiz check when it's in a preview [#6140](https://github.com/Automattic/sensei/pull/6140)
- Fix: Fix home styles [#6139](https://github.com/Automattic/sensei/pull/6139)
- Fix: Add compatibility for WP < 6.0 on quiz author fix [#6153](https://github.com/Automattic/sensei/pull/6153)
- Fix: Fix double query when calling `WP_Query::get_posts` [#6168](https://github.com/Automattic/sensei/pull/6168)

## 4.8.1 - 2022-11-10

- New: Course Overview block for the Course List block [#5996](https://github.com/Automattic/sensei/pull/5996)
- Add: Message for users without JavaScript enabled on Sensei Home [#6059](https://github.com/Automattic/sensei/pull/6059)
- Fix: Course start date reset on lesson completion [#6079](https://github.com/Automattic/sensei/pull/6079)
- Fix: Contact Teacher block not working [#6058](https://github.com/Automattic/sensei/pull/6058)
- Fix: Random questions change for answered quizzes [#6088](https://github.com/Automattic/sensei/pull/6088)
- Fix: Issue with enrolling students in the course view in a course with no students [#5583](https://github.com/Automattic/sensei/pull/5583)
- Fix: Disable broken sorting under Reports [#6094](https://github.com/Automattic/sensei/pull/6094)
- Fix: Course List buttons extending outside container [#6010](https://github.com/Automattic/sensei/pull/6010)
- Fix: Checks for modules when adding author name to module name [#6034](https://github.com/Automattic/sensei/pull/6034)
- Fix: PHP notice on course category archive view [#6069](https://github.com/Automattic/sensei/pull/6069)
- Fix: Error when activating Sensei LMS + Sensei Pro (WC Paid Courses) [#6080](https://github.com/Automattic/sensei/pull/6080)
- Fix: Minor cosmetic changes to task list in Sensei Home [#6083](https://github.com/Automattic/sensei/pull/6083)

## 4.8.0 - 2022-10-27

- New: Onboarding Wizard - replaces the older onboarding with a modern flow to help new users get started.
- New: Sensei Home - replaces the older 'Extensions' menu item with links to support, documentation, and a checklist for new users.

## 4.7.2 - 2022-10-24

- Fix: Change admin bar visibility only in lesson pages [#5909](https://github.com/Automattic/sensei/pull/5909)
- Fix container sizing in Video Template [#5926](https://github.com/Automattic/sensei/pull/5926)
- Fix: Prevent course enrollment if user did not complete prerequisites or if course requires a password [#5957](https://github.com/Automattic/sensei/pull/5957)
- Fix broken Quiz and Question blocks [#5905](https://github.com/Automattic/sensei/pull/5905)
- Fix lesson video not showing  [#5956](https://github.com/Automattic/sensei/pull/5956)
- Fix styling for older Learning Mode templates [#5969](https://github.com/Automattic/sensei/pull/5969)
- Fix lesson action buttons not showing when a quiz block is added [#5970](https://github.com/Automattic/sensei/pull/5970)
- Fix: Validate colors when saving email template options. [#5959](https://github.com/Automattic/sensei/pull/5959)

## 4.7.1 - 2022-10-11

- Fix: Prevent Learning Mode styles from overriding global styles. [#5903](https://github.com/Automattic/sensei/pull/5903)

## 4.7.0 - 2022-10-11

- New: Learning Mode version 2
    - Do not show the exceprt in post content if it exists in the template [#5871](https://github.com/Automattic/sensei/pull/5871)
    - Fix content padding on mobile [#5863](https://github.com/Automattic/sensei/pull/5863)
    - Add 'Completed' and 'Next Lesson' button to Lesson Actions [#5784](https://github.com/Automattic/sensei/pull/5784)
    - Handle logged out users for video lessons [#5851](https://github.com/Automattic/sensei/pull/5851)
    - Remove empty style block [#5860](https://github.com/Automattic/sensei/pull/5860)
    - Fix lesson complete overlay width [#5844](https://github.com/Automattic/sensei/pull/5844)
    - Improve LM theme compatibilty [#5846](https://github.com/Automattic/sensei/pull/5846)
    - Fix message sent notice [#5843](https://github.com/Automattic/sensei/pull/5843)
    - Replace customize links [#5842](https://github.com/Automattic/sensei/pull/5842)
    - Add featured video to lesson patterns, update pattern looks [#5789](https://github.com/Automattic/sensei/pull/5789)
    - Add some usage tracking data for Learning Mode [#5760](https://github.com/Automattic/sensei/pull/5760)
    - Fix non-video lessons for Video templates. [#5825](https://github.com/Automattic/sensei/pull/5825)
    - Fix featured video sizing [#5812](https://github.com/Automattic/sensei/pull/5812)
    - Update lesson properties block to use with LM templates [#5721](https://github.com/Automattic/sensei/pull/5721)
    - Learning Mode - Add support for Featured Video block transformations. [#5829](https://github.com/Automattic/sensei/pull/5829)
    - Learning Mode - Keep Featured Video block always on top [#5819](https://github.com/Automattic/sensei/pull/5819)
    - Fix template selector in lesson editor [#5818](https://github.com/Automattic/sensei/pull/5818)
    - Handle logged out users for video lessons [#5851](https://github.com/Automattic/sensei/pull/5851)
    - Remove empty style block [#5860](https://github.com/Automattic/sensei/pull/5860)
    - Fix lesson complete overlay width [#5844](https://github.com/Automattic/sensei/pull/5844)
    - Tweak sidebar CSS [#5759](https://github.com/Automattic/sensei/pull/5759)
    - Rename LM color variables [#5758](https://github.com/Automattic/sensei/pull/5758)
    - Use global styles colors in Learning Mode [#5563](https://github.com/Automattic/sensei/pull/5563)
    - Tweak default template [#5791](https://github.com/Automattic/sensei/pull/5791)
    - Enable lm for new users [#5788](https://github.com/Automattic/sensei/pull/5788)
    - Learning Mode - Show Sensei notices inside LM notices. [#5746](https://github.com/Automattic/sensei/pull/5746)
    - Add script to resize lesson video [#5781](https://github.com/Automattic/sensei/pull/5781)
    - Fixes for lesson video rendering [#5779](https://github.com/Automattic/sensei/pull/5779)
    - Add Featured Video Thumbnail creation [#5726](https://github.com/Automattic/sensei/pull/5726)
    - Fix: Redirect to message after logging in from message screen. [#5357](https://github.com/Automattic/sensei/pull/5357)
    - Add Lesson Video Block [#5720](https://github.com/Automattic/sensei/pull/5720)
    - Featured video method [#5701](https://github.com/Automattic/sensei/pull/5701)
    - Limit template blocks to site editor, widget editor and template editing [#5723](https://github.com/Automattic/sensei/pull/5723)
    - Fix template selection [#5724](https://github.com/Automattic/sensei/pull/5724)
    - Add embed css into lm templates [#5695](https://github.com/Automattic/sensei/pull/5695)
    - Learning Mode - Support multiple custom block templates for a single post type. [#5662](https://github.com/Automattic/sensei/pull/5662)
    - Fix lesson block template loading [#5667](https://github.com/Automattic/sensei/pull/5667)
- Add: Refactor course category color strategy [#5610](https://github.com/Automattic/sensei/pull/5610)
- Add: Add enrolment notice if course is unpublished [#5344](https://github.com/Automattic/sensei/pull/5344)
- Add: Fix comparison that was not properly checking for option [#5678](https://github.com/Automattic/sensei/pull/5678)
- Add: Add persistence to the Sensei Notices API, using user metas [#5569](https://github.com/Automattic/sensei/pull/5569)
- Fix: Remove the check so that meta data can be saved again [#5830](https://github.com/Automattic/sensei/pull/5830)
- Fix: Prevent modules to be linked in Learning Mode [#5809](https://github.com/Automattic/sensei/pull/5809)
- Fix: Fix draft lessons not getting duplicated with course [#5764](https://github.com/Automattic/sensei/pull/5558com/Automattic/sensei/pull/5764)
- Fix: Move blocks title, description, keywords to block.json and fix localization [#5782](https://github.com/Automattic/sensei/pull/5558com/Automattic/sensei/pull/5782)

## 4.6.4 - 2022-09-26

- Add: Show Course Categories preview [#5513](https://github.com/Automattic/sensei/pull/5513)
- Add: Learning Mode - Add a prerequisite notice to the quiz page. [#5476](https://github.com/Automattic/sensei/pull/5476)
- Add: Add course list filter block [#5567](https://github.com/Automattic/sensei/pull/5567)
- Add: Course list icon [#5595](https://github.com/Automattic/sensei/pull/5595)
- Add: Border setting to Course List block [#5576](https://github.com/Automattic/sensei/pull/5576)
- Add: Make course list filter single block and implement student course filter [#5578](https://github.com/Automattic/sensei/pull/5578)
- Add: Course list filter block to patterns [#5612](https://github.com/Automattic/sensei/pull/5612)
- Add: Show featured course label on course list block [#5571](https://github.com/Automattic/sensei/pull/5571)
- Add: Support to render html tags incoming from legacy questions [#5737](https://github.com/Automattic/sensei/pull/5737)
- Fix: Fatal error in Jetpack REST API endpoint [#5548](https://github.com/Automattic/sensei/pull/5548)
- Fix: Remove block align to avoid error message have different width [#5546](https://github.com/Automattic/sensei/pull/5546)
- Fix: Hide"List view" and "Grid view" toolbar options [#5558](https://github.com/Automattic/sensei/pull/5558com/Automattic/sensei/pull/5558)
- Fix: Simplify Course List block patterns and ensure they look good on Divi [#5556](https://github.com/Automattic/sensei/pull/5556)
- Fix: Align buttons to bottom of column in Course List block grid pattern [#5566](https://github.com/Automattic/sensei/pull/5566)
- Fix: Ignore negative numbers for `show_questions` option. [#5579](https://github.com/Automattic/sensei/pull/5579)
- Fix: Update students report to work in environments that don't support users table relationship [#5565](https://github.com/Automattic/sensei/pull/5565)
- Fix: Jetpack video initialization in the editor [#5577](https://github.com/Automattic/sensei/pull/5577)
- Fix: Fatal error when printing notices on redirect [#5568](https://github.com/Automattic/sensei/pull/5568)
- Fix: Add color fallback to course categories block [#5557](https://github.com/Automattic/sensei/pull/5557)
- Fix: Course List block UI improvements for Astra [#5604](https://github.com/Automattic/sensei/pull/5604)
- Fix: Issues for when course list filter is added to non course list blocks [#5617](https://github.com/Automattic/sensei/pull/5617)
- Fix: Remove featured label hook for course categories for older wp version [#5635](https://github.com/Automattic/sensei/pull/5635)
- Fix: Remove unneeded icon font formats [#5655](https://github.com/Automattic/sensei/pull/5655)
- Fix: Spacings, alignments and sizes for course list patterns [#5710](https://github.com/Automattic/sensei/pull/5710)
- Tweak: Remove "Beta" label from Course List block [#5593](https://github.com/Automattic/sensei/pull/5593)

## 4.6.3 - 2022-08-24

- New: Course List block (beta)
    - Add the Course List block [#5419](https://github.com/Automattic/sensei/pull/5419)
    - Add the Course Categories block [#5455](https://github.com/Automattic/sensei/pull/5455)
    - Add new patterns for Course List [#5433](https://github.com/Automattic/sensei/pull/5433)
    - Add Course Actions block [#5430](https://github.com/Automattic/sensei/pull/5430)
    - Make Continue button take user to the lesson they were working on [#5496](https://github.com/Automattic/sensei/pull/5496)
    - Make the Course List block with inner blocks globally available [#5473](https://github.com/Automattic/sensei/pull/5473)
    - Add notice to show invalid usage when blocks are used out of course context [#5489](https://github.com/Automattic/sensei/pull/5489)
- Add: Support for passing a custom footer to the Modal component [#5503](https://github.com/Automattic/sensei/pull/5503)
- Fix: Template selection logic when Learning Mode is active [#5514](https://github.com/Automattic/sensei/pull/5514)
- Fix: Course Outline - Show private lessons only for those who can view them. [#5468](https://github.com/Automattic/sensei/pull/5468)
- Tweak: Combine PHP and JS strings in POT generation command [#5486](https://github.com/Automattic/sensei/pull/5486)
- Tweak: Remove 'new' badge for Learning Mode [#5474](https://github.com/Automattic/sensei/pull/5474)
- Tweak: Modify title for course theme lesson actions block to avoid confusion [#5470](https://github.com/Automattic/sensei/pull/5470)

## 4.6.2 - 2022-08-17

- Fix: Learning Mode - Do not filter templates for query slugs if it is indexing. [#5460](https://github.com/Automattic/sensei/pull/5460)
- Fix: Do not save -1 values on quiz meta [#5461](https://github.com/Automattic/sensei/pull/5461)
- Fix: Revert "Change className prop to not use classnames" [#5464](https://github.com/Automattic/sensei/pull/5464)
- Fix: Fix timeupdate event on the youtube adapter [#5452](https://github.com/Automattic/sensei/pull/5452)
- Fix: Fix interactive video when no video is set [#5442](https://github.com/Automattic/sensei/pull/5442)
- Add: Add className prop to Sensei modal [#5462](https://github.com/Automattic/sensei/pull/5462)
- Add: Change confirm dialog styles [#5454](https://github.com/Automattic/sensei/pull/5454)
- Add: Fix set current time to keep the same behavior for all players [#5416](https://github.com/Automattic/sensei/pull/5416)

## 4.6.1 - 2022-08-09

- Fix: Fix lesson quick edit and bulk edit for quiz settings [#4404](https://github.com/Automattic/sensei/pull/4404)
- Fix: Use standard approach of displaying filters for list tables [#5174](https://github.com/Automattic/sensei/pull/5174)
- Fix: Improve test coverage for Sensei_Lesson [#5389](https://github.com/Automattic/sensei/pull/5389)
- Fix: Fix player API on the editor side when editing embeds with no changes [#5392](https://github.com/Automattic/sensei/pull/5392)
- Fix: Fix multiple emails are send when completing a course in the backend [#5393](https://github.com/Automattic/sensei/pull/5393)
- Add: Add current time to player and hook to get the video duration [#5410](https://github.com/Automattic/sensei/pull/5410)
- Fix: Fix html entities bug for question answers. [#5414](https://github.com/Automattic/sensei/pull/5414)
- Fix: Fix loading issue where the player wasn't detected correctly on the editor [#5421](https://github.com/Automattic/sensei/pull/5421)

## 4.6.0 - 2022-07-25

- Add: Add custom slug in module block [#5207](https://github.com/Automattic/sensei/pull/5207)
- Add: Add Confirm Dialog component [#5361](https://github.com/Automattic/sensei/pull/5361)
- Add: Enable _lesson_preview show-in-rest meta settings [#5369](https://github.com/Automattic/sensei/pull/5369)
- Add: Change video api scripts to be more generic  [#5359](https://github.com/Automattic/sensei/pull/5359)
- Add: Add hooks to allow adding filters to reports [#5365](https://github.com/Automattic/sensei/pull/5365)
- Fix: Update videopress event name [#5373](https://github.com/Automattic/sensei/pull/5373)
- Fix: Fix url encoding of timezone for reports [#5362](https://github.com/Automattic/sensei/pull/5362)
- Fix: Fix Gutenberg compatibility issue [#5379](https://github.com/Automattic/sensei/pull/5379)
- Fix: Render additional css on feedback answers block [#5371](https://github.com/Automattic/sensei/pull/5371)
- Fix: Remove additional line from login redirection code [#5380](https://github.com/Automattic/sensei/pull/5380)
- Fix: Modules loosing configuration when module is changed [#5387](https://github.com/Automattic/sensei/pull/5387)
- Tweak: Hide action buttons' notification [#5386](https://github.com/Automattic/sensei/pull/5386)

## 4.5.2 - 2022-07-14

- Add: New upsells students group page
- Add: `sensei_user_course_end' hook before redirecting to completed page
- Add: Bump the minimum required PHP version to 7.2
- Fix: Placeholder images for courses
- Fix: Update the course Editor to display 'Learners' instead of Students
- Fix: Bulk Edit options (on Lessons menu) do not work
- Fix: Change 'Manage Learners' to 'Manage Students' on the course management meta box
- Fix: Quiz questions not being properly saved.
- Fix: Lessons screen js error caused by the module column
- Fix: Layout issues with Learning Mode when using Divi
- Fix: issue on grading page
- Fix: Errors on the students admin area

## 4.5.1 - 2022-06-20

- Fix: remove upsell from wizard when woothemes-sensei is installed [#5282](https://github.com/Automattic/sensei/pull/5282)
- Fix: Guarantee that the wizard link will stay as white after visiting it [#5281](https://github.com/Automattic/sensei/pull/5281)

## 4.5.0 - 2022-06-16

- New: Course and Lesson Wizard
    - Add editor wizard modal for courses and lessons [#5149](https://github.com/Automattic/sensei/pull/5149)
    - Add editor wizard usage tracking [#5274](https://github.com/Automattic/sensei/pull/5274)
    - Fix style of the setup confirmation wizard [#5277](https://github.com/Automattic/sensei/pull/5277)
    - Fix lesson pattern styles [#5273](https://github.com/Automattic/sensei/pull/5273)
    - Change lesson pattern with quiz [#5268](https://github.com/Automattic/sensei/pull/5268)
    - Fix Course Outline styles on pattern thumbnails [#5261](https://github.com/Automattic/sensei/pull/5261)
    - Fix broken blocks on WP 5.8 [#5259](https://github.com/Automattic/sensei/pull/5259)
    - Make default lesson names translatable in the default course pattern [#5258](https://github.com/Automattic/sensei/pull/5258)
    - Fixes to the Upsell for Premium Lesson Patterns [#5257](https://github.com/Automattic/sensei/pull/5257)
    - Add Upsell section for Premium Lesson Patterns [#5254](https://github.com/Automattic/sensei/pull/5254)
    - Add life coach pattern [#5253](https://github.com/Automattic/sensei/pull/5253)
    - Tweak wizard preview box sizing [#5251](https://github.com/Automattic/sensei/pull/5251)
    - Add default course pattern [#5246](https://github.com/Automattic/sensei/pull/5246)
    - Fix icons in the upgrade step [#5244](https://github.com/Automattic/sensei/pull/5244)
    - Only load Discussion pattern if the Comments Query Loop block is available [#5243](https://github.com/Automattic/sensei/pull/5243)
    - Tweak Course pattern Lesson titles [#5242](https://github.com/Automattic/sensei/pull/5242)
    - Fix course pattern themes compatibility [#5232](https://github.com/Automattic/sensei/pull/5232)
    - Fix pattern images urls [#5228](https://github.com/Automattic/sensei/pull/5228)
    - Fix lesson patterns placeholders [#5225](https://github.com/Automattic/sensei/pull/5225)
    - Fix patterns styles for TwentyTwenty One [#5222](https://github.com/Automattic/sensei/pull/5222)
    - Add paragraph with description in default template [#5221](https://github.com/Automattic/sensei/pull/5221)
    - Fix editor wizard styles [#5220](https://github.com/Automattic/sensei/pull/5220)
    - Add new sensei patterns and separate block patterns logic [#5206](https://github.com/Automattic/sensei/pull/5206)
    - Add editor wizard responsive style and tweak some styles [#5205](https://github.com/Automattic/sensei/pull/5205)
    - Add patterns filter by post type [#5202](https://github.com/Automattic/sensei/pull/5202)
    - Add Lesson Details Step [#5194](https://github.com/Automattic/sensei/pull/5194)
    - Apply pattern to the post when selected [#5179](https://github.com/Automattic/sensei/pull/5179)
    - Add Paid Course Upsell [#5169](https://github.com/Automattic/sensei/pull/5169)
    - Add patterns list [#5157](https://github.com/Automattic/sensei/pull/5157)
- New: Provide "Save and edit lesson" button from Course Outline [#5167](https://github.com/Automattic/sensei/pull/5167)
- Fix: Lesson blocks notice when Learning Mode is enabled [#5156](https://github.com/Automattic/sensei/pull/5156)
- Tweak: Add filter for loading custom navigation script for pages [#5256](https://github.com/Automattic/sensei/pull/5256)
- Tweak: Create 3 default lessons on the Course Outline Block [#5196](https://github.com/Automattic/sensei/pull/5196)
- Tweak: Do not auto-add Quiz blocks on the lessons anymore [#5177](https://github.com/Automattic/sensei/pull/5177)

## 4.4.3 - 2022-05-31

- Fix: The "import" docs link. [#5201](https://github.com/Automattic/sensei/pull/5201)
- Fix: Module order not preserved after teacher update. [#5198](https://github.com/Automattic/sensei/pull/5198)
- Tweak: Redirect the quiz if the lesson is password protected. [#5195](https://github.com/Automattic/sensei/pull/5195)
- Tweak: Disable the lesson archive. [#5192](https://github.com/Automattic/sensei/pull/5192)
- Tweak: Update Course Video Progression to support customization via hooks. [#5100](https://github.com/Automattic/sensei/pull/5100), [#5175](https://github.com/Automattic/sensei/pull/5175)

## 4.4.2 - 2022-05-23

- Fix: Modules page not found error in Learning Mode [#5144](https://github.com/Automattic/sensei/pull/5144) 👏 @jeremyfelt
- Fix: Teacher name getting appended and duplicated in module title in course edit [#5114](https://github.com/Automattic/sensei/pull/5114)
- Fix: Lessons not getting assigned to modules if the course is assigned to a teacher [#5151](https://github.com/Automattic/sensei/pull/5151)
- Fix: Add student to course form not visible if Sensei Pro or Content Drip is enabled [#5164](https://github.com/Automattic/sensei/pull/5164)
- Fix: Deprecated warnings on the students report screen [#5153](https://github.com/Automattic/sensei/pull/5153)

## 4.4.1 - 2022-05-16

- New: Add a "Date Started" reports filter for students on a course [#5076](https://github.com/Automattic/sensei/pull/5076)
- New: Show a notice if future PHP requirements aren't met in preparation for increasing the minimum requirements to PHP 7.2 [#5088](https://github.com/Automattic/sensei/pull/5088)
- New: Add lesson notices filters [#5087](https://github.com/Automattic/sensei/pull/5087)
- Tweak: Apply data filters to column total values for reports [#5091](https://github.com/Automattic/sensei/pull/5091)
- Tweak: Calculate total average progress for courses reports [#5077](https://github.com/Automattic/sensei/pull/5077)
- Tweak: Display average total for Days to Completion in Courses report header [#5097](https://github.com/Automattic/sensei/pull/5097)
- Tweak: Display the student FullName on the reports [#5096](https://github.com/Automattic/sensei/pull/5096)
- Tweak: Hide the export button when there is no data [#5095](https://github.com/Automattic/sensei/pull/5095)
- Tweak: Improve performance by fetching last activity date with the main query [#5101](https://github.com/Automattic/sensei/pull/5101)
- Tweak: On the reports screen, show no lessons instead of all when the course has no lessons [#5090](https://github.com/Automattic/sensei/pull/5090)
- Tweak: Only show enrolled students in reports [#5105](https://github.com/Automattic/sensei/pull/5105)
- Tweak: Refactor students page fetching data through Gutenberg and avoiding subqueries [#5104](https://github.com/Automattic/sensei/pull/5104)
- Tweak: Use AbortController to cancel fetch requests for unmounted components [#5065](https://github.com/Automattic/sensei/pull/5065)
- Fix: Ensure the content filter for course content is re-added in Learning Mode [#5086](https://github.com/Automattic/sensei/pull/5086)
- Fix: Exporting "students taking course" not affected by filters [#5120](https://github.com/Automattic/sensei/pull/5120)
- Fix: Hide export button when no results on "Students taking course" screen [#5121](https://github.com/Automattic/sensei/pull/5121)
- Fix: Incorrect menu item selected in the Module editor [#5117](https://github.com/Automattic/sensei/pull/5117)
- Fix: Lesson compatibility issue with Divi [#5082](https://github.com/Automattic/sensei/pull/5082)
- Fix: Reports date filters not accounting for the user timezone [#5113](https://github.com/Automattic/sensei/pull/5113)
- Fix: Reports exporting does not take search into account [#5079](https://github.com/Automattic/sensei/pull/5079)
- Fix: Student name appearing twice on student report title [#5111](https://github.com/Automattic/sensei/pull/5111)

## 4.4.0 - 2022-05-04

- New: Add modal to add or remove a student from a course [#4979](https://github.com/Automattic/sensei/pull/4979), [#5038](https://github.com/Automattic/sensei/pull/5038), [#5004](https://github.com/Automattic/sensei/pull/5004), [#5040](https://github.com/Automattic/sensei/pull/5040), [#4999](https://github.com/Automattic/sensei/pull/4999), [#5023](https://github.com/Automattic/sensei/pull/5023), [#5003](https://github.com/Automattic/sensei/pull/5003), [#5029](https://github.com/Automattic/sensei/pull/5029), [#5017](https://github.com/Automattic/sensei/pull/5017), [#5046](https://github.com/Automattic/sensei/pull/5046), [#5059](https://github.com/Automattic/sensei/pull/5059)
- New: Add student action menu to Student Management page [#4961](https://github.com/Automattic/sensei/pull/4961), [#5031](https://github.com/Automattic/sensei/pull/5031), [#5072](https://github.com/Automattic/sensei/pull/5072)
- New: Display Enrolled Courses instead of Course Progress [#5043](https://github.com/Automattic/sensei/pull/5043)
- New: Add email column and remove enrollment column from student management table [#4986](https://github.com/Automattic/sensei/pull/4986)
- New: Add icon href filter [#5062](https://github.com/Automattic/sensei/pull/5062)
- New: Add last activity column to Student Management [#4994](https://github.com/Automattic/sensei/pull/4994)
- New: Add REST API for managing students in courses [#4968](https://github.com/Automattic/sensei/pull/4968), [#4995](https://github.com/Automattic/sensei/pull/4995), [#4976](https://github.com/Automattic/sensei/pull/4976)
- New: Add totals to the students column in students page [#5022](https://github.com/Automattic/sensei/pull/5022)
- New: Show Add Students CTA when there are no students on the course [#5014](https://github.com/Automattic/sensei/pull/5014)
- Tweak: Display ungraded quizzes for student when "Grading" menu item selected [#4998](https://github.com/Automattic/sensei/pull/4998)
- Tweak: Change add student to course box in student per course page [#5026](https://github.com/Automattic/sensei/pull/5026)
- Tweak: Make the bulk actions screen to be the main students page [#4974](https://github.com/Automattic/sensei/pull/4974)
- Tweak: Move bulk actions below table on smaller screens [#5035](https://github.com/Automattic/sensei/pull/5035)
- Tweak: Rename "Student Management" to "Students" [#4981](https://github.com/Automattic/sensei/pull/4981)
- Tweak: Rename Bulk actions [#5069](https://github.com/Automattic/sensei/pull/5069)
- Tweak: Rename the `Select Courses` button to `Select Action` [#5073](https://github.com/Automattic/sensei/pull/5073)
- Tweak: Return 404 if course not found and 403 for permission issues and update tests [#5012](https://github.com/Automattic/sensei/pull/5012)
- Tweak: Return data from add students endpoint [#5033](https://github.com/Automattic/sensei/pull/5033)
- Tweak: Update appearance of the Students column content [#5006](https://github.com/Automattic/sensei/pull/5006)
- Tweak: Update documentation link URL for Student Management [#5060](https://github.com/Automattic/sensei/pull/5060)
- Tweak: Update header on the Students page and add a doc link [#5005](https://github.com/Automattic/sensei/pull/5005)
- Tweak: Update navigation for the Students per course page [#5025](https://github.com/Automattic/sensei/pull/5025)
- Tweak: Update students per course table column header and content [#5021](https://github.com/Automattic/sensei/pull/5021)
- Tweak: Update the design of the page filters [#4997](https://github.com/Automattic/sensei/pull/4997)
- Tweak: Updates to "Enrolled Courses" column [#5055](https://github.com/Automattic/sensei/pull/5055)
- Fix: "Select courses" button shown as enabled momentarily on load [#5056](https://github.com/Automattic/sensei/pull/5056)
- Fix: Block quiz answers when the quiz is completed [#4951](https://github.com/Automattic/sensei/pull/4951)
- Fix: Filter overlap on student courses page on mobile [#5039](https://github.com/Automattic/sensei/pull/5039)
- Fix: Lesson video embed when using Yoast [#5044](https://github.com/Automattic/sensei/pull/5044)
- Fix: Lint errors on legacy files [#5037](https://github.com/Automattic/sensei/pull/5037)
- Fix: Mobile view on Students page [#5010](https://github.com/Automattic/sensei/pull/5010)
- Fix: Remove excessive escaping of course titles on frontend [#5057](https://github.com/Automattic/sensei/pull/5057)
- Fix: Remove infinite loop on test execution [#5078](https://github.com/Automattic/sensei/pull/5078)
- Fix: Spacing issues in filters on the Students page [#5070](https://github.com/Automattic/sensei/pull/5070)

## 4.3.0 - 2022-04-04

- New: Add a database seed WP-CLI command [#4882](https://github.com/Automattic/sensei/pull/4882)
- New: Add Average Progress to courses report [#4917](https://github.com/Automattic/sensei/pull/4917)
- New: Add Date Registered column to students report [#4952](https://github.com/Automattic/sensei/pull/4952)
- New: Display email address on "Students taking this course" report [#4955](https://github.com/Automattic/sensei/pull/4955)
- Tweak: Improve the students export performance [#4932](https://github.com/Automattic/sensei/pull/4932)
- Tweak: Extract `get_courses` with dependent methods from `Sensei_Analysis_Overview_List_Table` [#4938](https://github.com/Automattic/sensei/pull/4938)
- Tweak: Move focus toggle to the sidebar in Learning Mode [#4942](https://github.com/Automattic/sensei/pull/4942)
- Tweak: Refactor the students overview report code [#4947](https://github.com/Automattic/sensei/pull/4947)
- Tweak: Refactor lesson code from reports overview [#4964](https://github.com/Automattic/sensei/pull/4964)
- Tweak: Remove sortable from columns that can't be sorted [#4965](https://github.com/Automattic/sensei/pull/4965)
- Tweak: Update the reports documentation link [#4969](https://github.com/Automattic/sensei/pull/4969)
- Tweak: Deprecate Sensei_Analysis_Overview_List_Table class [#4982](https://github.com/Automattic/sensei/pull/4982)
- Fix: Video embed width [#4925](https://github.com/Automattic/sensei/pull/4925)
- Fix: Incorrect i18n extraction from js files [#4935](https://github.com/Automattic/sensei/pull/4935)
- Fix: Empty datepicker UI box showing in the footer [#4937](https://github.com/Automattic/sensei/pull/4937)
- Fix: Only first row exporting for some reports [#4944](https://github.com/Automattic/sensei/pull/4944)
- Fix: Sorting for students reports table [#4960](https://github.com/Automattic/sensei/pull/4960)
- Fix: Sorting for Students report [#4970](https://github.com/Automattic/sensei/pull/4970)
- Fix: Students report not taking pagination and sorting into cosideration [#4972](https://github.com/Automattic/sensei/pull/4972)
- Fix: Use Sensei Reports Factory for generating report [#4973](https://github.com/Automattic/sensei/pull/4973)
- Fix: Wrong data when exporting lessons report [#4975](https://github.com/Automattic/sensei/pull/4975)
- Fix: "Days to Completion" and "Module" columns are swapped when exporting lessons [#4978](https://github.com/Automattic/sensei/pull/4978)

## 4.2.0 - 2022-03-22

- New: Replace `Date Registered` column with `Last Activity` [#4863](https://github.com/Automattic/sensei/pull/4863)
- New: Add totals to Students report [#4865](https://github.com/Automattic/sensei/pull/4865)
- New: Add new lesson report default view and course filter [#4878](https://github.com/Automattic/sensei/pull/4878)
- New: Add "Last Activity" column to Courses report [#4879](https://github.com/Automattic/sensei/pull/4879)
- New: Add Days to Completion column for lessons [#4883](https://github.com/Automattic/sensei/pull/4883), [#4923](https://github.com/Automattic/sensei/pull/4923)
- New: Add Last activity for Lessons [#4895](https://github.com/Automattic/sensei/pull/4895), [#4918](https://github.com/Automattic/sensei/pull/4918)
- New: Added completion rate column in Reports->Lessons [#4897](https://github.com/Automattic/sensei/pull/4897)
- New: Add activity date filters to the students report screen [#4903](https://github.com/Automattic/sensei/pull/4903)
- New: Add totals to Courses report [#4904](https://github.com/Automattic/sensei/pull/4904)
- New: Add Days to Completion column for courses [#4906](https://github.com/Automattic/sensei/pull/4906)
- New: Add activity date filters to the courses report screen [#4909](https://github.com/Automattic/sensei/pull/4909)
- New: Add days to completion total for courses [#4910](https://github.com/Automattic/sensei/pull/4910)
- New: Add totals to reports->lessons column headers [#4911](https://github.com/Automattic/sensei/pull/4911)
- New: Add the video embed from legacy meta box to Learning Mode [#4912](https://github.com/Automattic/sensei/pull/4912)
- Tweak: Rename Analysis to Reports [#4853](https://github.com/Automattic/sensei/pull/4853)
- Tweak: Remove the reports totals sidebar [#4854](https://github.com/Automattic/sensei/pull/4854)
- Tweak: Update navigation on Reports page [#4868](https://github.com/Automattic/sensei/pull/4868)
- Tweak: Remove and rename columns from Courses report [#4870](https://github.com/Automattic/sensei/pull/4870)
- Tweak: Remove grade average and course column from Reports->Lessons [#4893](https://github.com/Automattic/sensei/pull/4893)
- Tweak: Improve students report screen performance [#4915](https://github.com/Automattic/sensei/pull/4915)
- Tweak: Allow clearing the reports last activity date filter [#4924](https://github.com/Automattic/sensei/pull/4924)
- Tweak: Move `option-toggle` css to shared `question.scss` [#4929](https://github.com/Automattic/sensei/pull/4929)
- Tweak: Optimize performance for reports->courses [#4930](https://github.com/Automattic/sensei/pull/4930)
- Fix: Teachers can see all courses on some screens [#4860](https://github.com/Automattic/sensei/pull/4860)
- Fix: Course completed date does not update when having one lesson [#4888](https://github.com/Automattic/sensei/pull/4888)
- Fix: Remove `learn` query parameter from the preview url [#4894](https://github.com/Automattic/sensei/pull/4894)
- Fix: PHP notices when exporting the courses or lessons reports [#4901](https://github.com/Automattic/sensei/pull/4901)

## 4.1.1 - 2022-03-02

- New: Add question subtitle support [#4872](https://github.com/Automattic/sensei/pull/4872)

## 4.1.0 - 2022-02-23

- New: Order lessons between modules [#4727](https://github.com/Automattic/sensei/pull/4727)
- New: Add upgrade header to Extensions page [#4794](https://github.com/Automattic/sensei/pull/4794)
- New: Add optional 'style' option for admin notices [#4797](https://github.com/Automattic/sensei/pull/4797)
- New: New WooCommerce settings section [#4801](https://github.com/Automattic/sensei/pull/4801)
- New: Add content drip upgrade metabox to edit lesson screen [#4809](https://github.com/Automattic/sensei/pull/4809)
- New: Add Pricing section to course side bar for upgrading to Sensei Pro [#4810](https://github.com/Automattic/sensei/pull/4810)
- New: Add Ordering promo question type [#4815](https://github.com/Automattic/sensei/pull/4815)
- New: Add upgrade nudge to Quiz block settings [#4816](https://github.com/Automattic/sensei/pull/4816)
- New: Add upgrade nudge for access period [#4821](https://github.com/Automattic/sensei/pull/4821)
- New: Add content drip promo banner to settings [#4822](https://github.com/Automattic/sensei/pull/4822)
- New: Add conditional content block to lessons [#4850](https://github.com/Automattic/sensei/pull/4850)
- Tweak: Extend quiz settings inspector panel [#4826](https://github.com/Automattic/sensei/pull/4826)
- Tweak: Open links in new tab for WooCommerce & Content Drip settings promos [#4855](https://github.com/Automattic/sensei/pull/4855)
- Tweak: Add lesson actions and navigation to the bottom of the content, for screen reader only [#4861](https://github.com/Automattic/sensei/pull/4861)
- Tweak: Remove unneeded notices [#4862](https://github.com/Automattic/sensei/pull/4862)
- Fix: Issue causing debug text on activate [#4824](https://github.com/Automattic/sensei/pull/4824)
- Fix: Course ordering not working on admin dashboard and shortcode pages [#4837](https://github.com/Automattic/sensei/pull/4837)
- Fix: Allow user to re-enroll even when removed [#4848](https://github.com/Automattic/sensei/pull/4848)
- Fix: Legacy quiz styles in Learning Mode [#4849](https://github.com/Automattic/sensei/pull/4849)
- Fix: addEventListener when no element is found [#4858](https://github.com/Automattic/sensei/pull/4858)

## 4.0.2 - 2022-02-17

- New: Add theme style support to Learning Mode [#4775](https://github.com/Automattic/sensei/pull/4775)
- Tweak: Redirect logged-out user to the course after login when clicking on Take Course button in the Course page [#4792](https://github.com/Automattic/sensei/pull/4792)
- Tweak: Update Take course button from lesson notices to redirect to course [#4793](https://github.com/Automattic/sensei/pull/4793)
- Fix: Lesson pagination [#4686](https://github.com/Automattic/sensei/pull/4686)
- Fix: Add check to module teacher term filter [#4726](https://github.com/Automattic/sensei/pull/4726)
- Fix: Course archive page when there's no custom permalink structure [#4748](https://github.com/Automattic/sensei/pull/4748)
- Fix: Improve course theme accessibility [#4749](https://github.com/Automattic/sensei/pull/4749)
- Fix: Edit Lesson link in admin bar [#4765](https://github.com/Automattic/sensei/pull/4765)
- Fix: PHP 8.0 compatibility issue when importing data [#4770](https://github.com/Automattic/sensei/pull/4770)
- Fix: Question description losing blocks [#4773](https://github.com/Automattic/sensei/pull/4773)
- Fix: Different default option on boolean questions [#4774](https://github.com/Automattic/sensei/pull/4774)
- Fix: Add missing quiz translations [#4776](https://github.com/Automattic/sensei/pull/4776)
- Fix: Learning mode notices in preview lessons [#4778](https://github.com/Automattic/sensei/pull/4778)
- Fix: PHP Warning when exporting questions without wrong answers [#4779](https://github.com/Automattic/sensei/pull/4779)
- Fix: URL for the "Manage students" link [#4788](https://github.com/Automattic/sensei/pull/4788)
- Fix: CSV importing on PHP 8 [#4790](https://github.com/Automattic/sensei/pull/4790)
- Fix: JavaScript Error on the grading page [#4804](https://github.com/Automattic/sensei/pull/4804)
- Fix: Widgets editor style for Sensei theme blocks [#4806](https://github.com/Automattic/sensei/pull/4806)
- Fix: Move the Course Completed page to Trash when uninstalling the plugin [#4808](https://github.com/Automattic/sensei/pull/4808)
- Fix: Remove empty answers check from quiz submit [#4818](https://github.com/Automattic/sensei/pull/4818)
- Fix: Course outline and quiz appenders on 5.9 [#4825](https://github.com/Automattic/sensei/pull/4825)

## 4.0.1 - 2022-02-03

- Fix: Link styles in Learning Mode  [#4730](https://github.com/Automattic/sensei/pull/4730)
- Fix: Learning mode with localized post type slugs  [#4745](https://github.com/Automattic/sensei/pull/4745)

## 4.0.0 - 2022-02-01

Sensei 4.0 is here! This is a major release, which includes a new theme for your courses and a rework of the WordPress dashboard menu navigation. [Read the announcement post here.](https://senseilms.com/wordpress-course-theme/)

- New: The menus for Courses, Lessons and all Sensei-related pages in the WordPress dashboard have been combined into one Sensei menu.
    - Update menu structure  [#4618](https://github.com/Automattic/sensei/pull/4618)
    - Fix lesson ordering  [#4708](https://github.com/Automattic/sensei/pull/4708)
    - Fix menu highlighting for Student Management pages  [#4717](https://github.com/Automattic/sensei/pull/4717)
    - Fix persistence of menu highlights  [#4722](https://github.com/Automattic/sensei/pull/4722)
    - Add indicator to Grading menu that displays the number of ungraded quizzes  [#4671](https://github.com/Automattic/sensei/pull/4671)
    - Move Import and Export to the Tools page  [#4634](https://github.com/Automattic/sensei/pull/4634)
    - Update courses page navigation  [#4672](https://github.com/Automattic/sensei/pull/4672)
    - Add a students column to the courses list table  [#4663](https://github.com/Automattic/sensei/pull/4663)
    - Consolidate course module columns  [#4646](https://github.com/Automattic/sensei/pull/4646)
    - Add usage tracking for Sensei LMS submenus  [#4695](https://github.com/Automattic/sensei/pull/4695)
    - Add a "more" link to the course modules column  [#4666](https://github.com/Automattic/sensei/pull/4666)
    - Lessons page submenu items  [#4687](https://github.com/Automattic/sensei/pull/4687)
    - Add custom navigation to Questions menu item  [#4692](https://github.com/Automattic/sensei/pull/4692)
    - Update settings URL when changing a tab  [#4699](https://github.com/Automattic/sensei/pull/4699)
    - Update modules navigation  [#4693](https://github.com/Automattic/sensei/pull/4693)
    - Fix incorrect menu being highlighted on Lessons page  [#4700](https://github.com/Automattic/sensei/pull/4700)
    - Hide custom header when editing taxonomies  [#4707](https://github.com/Automattic/sensei/pull/4707)
    - Fix menu highlighting for Grading pages  [#4714](https://github.com/Automattic/sensei/pull/4714)
    - Add course type to analysis links  [#4712](https://github.com/Automattic/sensei/pull/4712)
- New: Learning Mode, a new course theme option for a distraction-free learner experience.
    - Add blocks from quiz template  [#4647](https://github.com/Automattic/sensei/pull/4647)
    - Hide admin bar for non editor users on Learning Mode pages.  [#4652](https://github.com/Automattic/sensei/pull/4652)
    - Update color customization  [#4650](https://github.com/Automattic/sensei/pull/4650)
    - Fix/Learning Mode a11y  [#4665](https://github.com/Automattic/sensei/pull/4665)
    - Add site logo block fallback  [#4655](https://github.com/Automattic/sensei/pull/4655)
    - Fix quiz buttons styles  [#4676](https://github.com/Automattic/sensei/pull/4676)
    - Add "New" badge to Learning Mode  [#4681](https://github.com/Automattic/sensei/pull/4681)
    - Fix various course theme styling issues  [#4670](https://github.com/Automattic/sensei/pull/4670)
    - Fix font and content styling issues  [#4698](https://github.com/Automattic/sensei/pull/4698)
    - Update Learning Mode texts  [#4690](https://github.com/Automattic/sensei/pull/4690)
    - Fix responsive styles and tweak prev/next links  [#4684](https://github.com/Automattic/sensei/pull/4684)
    - Improve focus mode toggle button  [#4706](https://github.com/Automattic/sensei/pull/4706)
    - Improve admin notice button alignment  [#4713](https://github.com/Automattic/sensei/pull/4713)
    - Use course theme in the editor when needed  [#4697](https://github.com/Automattic/sensei/pull/4697)
    - Fix template post type filtering  [#4716](https://github.com/Automattic/sensei/pull/4716)
    - Fix block spacing when using course theme in the editor  [#4719](https://github.com/Automattic/sensei/pull/4719)
    - Update Learning Mode banner copy  [#4723](https://github.com/Automattic/sensei/pull/4723)
    - Add quiz progress bar and exit course blocks  [#4668](https://github.com/Automattic/sensei/pull/4668)
    - Fix quiz question number on Learning Mode  [#4679](https://github.com/Automattic/sensei/pull/4679)
    - Fix collapsible height with a loaded font  [#4677](https://github.com/Automattic/sensei/pull/4677)
    - Fix preview Learning Mode in a course with disabled Learning Mode  [#4678](https://github.com/Automattic/sensei/pull/4678)
- Remove deprecated functionality  [#4667](https://github.com/Automattic/sensei/pull/4667)
- Fix quiz answer notes issues  [#4685](https://github.com/Automattic/sensei/pull/4685)

## 3.15.2 - 2022-01-20

- Fix: Quiz block not rendering in certain cases  [#4657](https://github.com/Automattic/sensei/pull/4657)
- Fix: PHP notice when retrieving some of the settings  [#4658](https://github.com/Automattic/sensei/pull/4658/files)

## 3.15.1 - 2022-01-19

- Fix: Fix PHP 7.0 and 7.1 compatibility

## 3.15.0 - 2022-01-18

- New: Quiz Pagination
    - Add toolbar pagination settings  [#4429](https://github.com/Automattic/sensei/pull/4429)
    - Implement the quiz pagination backend  [#4492](https://github.com/Automattic/sensei/pull/4492)
    - Implement the quiz pagination frontend  [#4502](https://github.com/Automattic/sensei/pull/4502)
    - Save the quiz pagination form state between pages  [#4521](https://github.com/Automattic/sensei/pull/4521)
    - Reorganize quiz pagination settings  [#4523](https://github.com/Automattic/sensei/pull/4523)
    - Rename CourseProgress to more generic ProgressBar  [#4572](https://github.com/Automattic/sensei/pull/4572)
    - Make the quiz buttons consistent  [#4579](https://github.com/Automattic/sensei/pull/4579)
    - Add a button to the quiz block that opens the quiz settings  [#4597](https://github.com/Automattic/sensei/pull/4597)
    - Frontend for progress bar related to pagination   [#4606](https://github.com/Automattic/sensei/pull/4606)
    - Remove quiz pagination feature flag  [#4610](https://github.com/Automattic/sensei/pull/4610)
    - Update design of progress bar  [#4620](https://github.com/Automattic/sensei/pull/4620)
    - Show pagination progress bar in lesson edit view  [#4625](https://github.com/Automattic/sensei/pull/4625)
    - Add quiz button color settings  [#4629](https://github.com/Automattic/sensei/pull/4629)
    - Fix quiz settings link not centered on Astra  [#4635](https://github.com/Automattic/sensei/pull/4635)
    - Fix lesson course metabox request infinite loop  [#4637](https://github.com/Automattic/sensei/pull/4637)
    - Minor tweaks to quiz and video settings  [#4639](https://github.com/Automattic/sensei/pull/4639)
- New: Video-based Course Progression
    - Add Video-Based Course Progression settings  [#4519](https://github.com/Automattic/sensei/pull/4519)
    - Extend standard YouTube embed block  [#4546](https://github.com/Automattic/sensei/pull/4546)
    - Extend standard Vimeo video embed  [#4561](https://github.com/Automattic/sensei/pull/4561)
    - Extend standard video block  [#4562](https://github.com/Automattic/sensei/pull/4562)
    - Add VideoPress extension  [#4573](https://github.com/Automattic/sensei/pull/4573)
    - Add a 3-second delay before autocompleting the lesson  [#4611](https://github.com/Automattic/sensei/pull/4611)
    - Add styles for the disabled button in the lesson template  [#4612](https://github.com/Automattic/sensei/pull/4612)
    - Add Video settings panel to the lesson sidebar  [#4624](https://github.com/Automattic/sensei/pull/4624)
    - Remove video based course progression feature flag  [#4627](https://github.com/Automattic/sensei/pull/4627)
    - Check pause method exists for given object  [#4628](https://github.com/Automattic/sensei/pull/4628)
- New: Grading display filter for custom question types  [#4415](https://github.com/Automattic/sensei/pull/4415)
- New: Add course navigation extra icons  [#4577](https://github.com/Automattic/sensei/pull/4577)
- New: Add filters and actions to support quiz timer  [#4594](https://github.com/Automattic/sensei/pull/4594)
- New: Add course theme notice  [#4616](https://github.com/Automattic/sensei/pull/4616)
- Tweak: Make the lesson prerequisite metabox dropdown show lessons from the selected course  [#4410](https://github.com/Automattic/sensei/pull/4410)
- Tweak: Refresh the module selection after changing the course  [#4421](https://github.com/Automattic/sensei/pull/4421)
- Tweak: Tweak wording for incomplete quiz question warning  [#4474](https://github.com/Automattic/sensei/pull/4474)
- Tweak: Renamed learner -> student in all user-facing occurrences  [#4501](https://github.com/Automattic/sensei/pull/4501)
- Tweak: Improve wording of the lessons prerequisite metabox  [#4507](https://github.com/Automattic/sensei/pull/4507)
- Tweak: Allow only before or after text on the gap question  [#4533](https://github.com/Automattic/sensei/pull/4533)
- Tweak: Add "by default" sort order to Courses archive page  [#4534](https://github.com/Automattic/sensei/pull/4534)
- Tweak: Hide incomplete questions in preview mode  [#4543](https://github.com/Automattic/sensei/pull/4543)
- Tweak: Change icons folder  [#4578](https://github.com/Automattic/sensei/pull/4578)
- Tweak: Remove quizStructureStore filter  [#4598](https://github.com/Automattic/sensei/pull/4598)
- Fix: Update quiz status and title on lesson update  [#4359](https://github.com/Automattic/sensei/pull/4359)
- Fix: Restrict the order lessons menu to teachers, authors, and above  [#4452](https://github.com/Automattic/sensei/pull/4452)
- Fix: Fix sidebar icon not picking up admin scheme colors  [#4471](https://github.com/Automattic/sensei/pull/4471)
- Fix: Add check so that Authors can only order their own lessons  [#4475](https://github.com/Automattic/sensei/pull/4475)
- Fix: Fix invalid type issue when questions options empty  [#4491](https://github.com/Automattic/sensei/pull/4491)
- Fix: Fix npm 8 issues  [#4506](https://github.com/Automattic/sensei/pull/4506)
- Fix: WP_User_Query can't be called with 'who' parameter in WP versions >= 5.9.0  [#4513](https://github.com/Automattic/sensei/pull/4513)
- Fix: Casting `lesson_length` value to integer in the backend  [#4525](https://github.com/Automattic/sensei/pull/4525)
- Fix: Remove ID attribute to prevent duplication  [#4526](https://github.com/Automattic/sensei/pull/4526)
- Fix: Fix multiple pages due to page breaks in unsupported Sensei themes  [#4527] https://github.com/Automattic/sensei/pull/4527)
- Fix: Fix Lesson template when creating a new lesson through WP-admin menu  [#4557](https://github.com/Automattic/sensei/pull/4557)
- Fix: Fix course theme start lesson  [#4580](https://github.com/Automattic/sensei/pull/4580)
- Fix: Fix grade message with decimals  [#4602](https://github.com/Automattic/sensei/pull/4602)
- Fix: Fix comments pagination on lesson page  [#4609](https://github.com/Automattic/sensei/pull/4609)
- Fix: Return wp_nonce_field result instead of outputting it immediately  [#4641](https://github.com/Automattic/sensei/pull/4641)

## 3.14.0 - 2021-11-25

- New: Answer feedback improvements
    - Add answer feedback editor settings  [#4344](https://github.com/Automattic/sensei/pull/4344)
    - Update answer feedback display to use new options  [#4349](https://github.com/Automattic/sensei/pull/4349)
    - Revitalisation of Answer Feedback  [#4313](https://github.com/Automattic/sensei/pull/4313)
    - Update grading screen with answer feedback changes  [#4427](https://github.com/Automattic/sensei/pull/4427)
    - Refine answer feedback blocks  [#4354](https://github.com/Automattic/sensei/pull/4354)
    - Re-style answer feedback frontend  [#4408](https://github.com/Automattic/sensei/pull/4408)
- Fix: Remove pagination from legacy course results page  [#4328](https://github.com/Automattic/sensei/pull/4328)
- Fix: Update Quiz title when parent Lesson title is updated. #4292  [#4331](https://github.com/Automattic/sensei/pull/4331)
- Fix: Add is_array check to avoid warnings  [#4340](https://github.com/Automattic/sensei/pull/4340)
- Tweak: Remove experimental rest api  [#4191](https://github.com/Automattic/sensei/pull/4191)
- Tweak: Remove old WP version checks  [#4194](https://github.com/Automattic/sensei/pull/4194)
- Fix: Do not show "View results" in course summary if course is not complete  [#4330](https://github.com/Automattic/sensei/pull/4330)
- Fix: Omit className attribute from quiz structure sync  [#4347](https://github.com/Automattic/sensei/pull/4347)
- Fix: Fix is_sensei() false positives  [#4343](https://github.com/Automattic/sensei/pull/4343)
- Fix: Fix PHPCS issues  [#4352](https://github.com/Automattic/sensei/pull/4352)
- Fix: Fix random order for new questions with multiple choice  [#4356](https://github.com/Automattic/sensei/pull/4356)
- Fix: Fix custom URL slug for course results link  [#4358](https://github.com/Automattic/sensei/pull/4358)
- Tweak: Add a custom appender in course outline block  [#4350](https://github.com/Automattic/sensei/pull/4350)
- Fix: Use flexbox to display the analysis page correctly on wide and narrow screens  [#4360](https://github.com/Automattic/sensei/pull/4360)
- Fix: Fix random order for new questions with multiple choice  [#4364](https://github.com/Automattic/sensei/pull/4364)
- Fix: $taxonomies can be null, don't always treat it as an array  [#4329](https://github.com/Automattic/sensei/pull/4329)
- Fix: Fix single page blocks script loading on the front-end  [#4402](https://github.com/Automattic/sensei/pull/4402)
- Fix: Fix PHP linter throws an error when the project folder has spaces  [#4403](https://github.com/Automattic/sensei/pull/4403)
- Tweak: Add course ID class to lesson pages  [#4388](https://github.com/Automattic/sensei/pull/4388)
- Tweak: Update README.md to link to senseilms.com  [#4418](https://github.com/Automattic/sensei/pull/4418)
- Fix: Load less User data for Teacher metabox  [#4417](https://github.com/Automattic/sensei/pull/4417)
- Tweak: Add quiz block in the lessons when the block is not there  [#4420](https://github.com/Automattic/sensei/pull/4420)
- Tweak: Update readme.txt with new description content  [#4423](https://github.com/Automattic/sensei/pull/4423)
- Fix: Fix missing space for 'Extensions' heading  [#4424](https://github.com/Automattic/sensei/pull/4424)
- Tweak: Improve performance on course ordering  [#4422](https://github.com/Automattic/sensei/pull/4422)
- Fix: Fix course complete emails not being sent  [#4425](https://github.com/Automattic/sensei/pull/4425)

## 3.13.3 - 2021-10-12

- New: Additional hooks for course expiration
    - Add clock notice type  [#4302](https://github.com/Automattic/sensei/pull/4302)
    - Add filters to show enrollment actions and view results block  [#4318](https://github.com/Automattic/sensei/pull/4318)
    - Add filters to extend learner courses page  [#4319](https://github.com/Automattic/sensei/pull/4319)
    - Update learner courses priorities  [#4322](https://github.com/Automattic/sensei/pull/4322)
- Tweak: Add Sensei icon to admin notices  [#4314](https://github.com/Automattic/sensei/pull/4314)
- Tweak: Allow expansion of manual enrollments  [#4317](https://github.com/Automattic/sensei/pull/4317)
- Tweak: Update Sensei LMS icon in WordPress admin sidebar  [#4310](https://github.com/Automattic/sensei/pull/4310)
- Fix: Fix learner management alignment  [#4333](https://github.com/Automattic/sensei/pull/4333)
- Fix: Allow sorting of lessons with other fields  [#4323](https://github.com/Automattic/sensei/pull/4323)
- Fix: Fix notice of blocks state (have or not Sensei blocks) in dynamic lesson  [#4309](https://github.com/Automattic/sensei/pull/4309)
- Fix: Update sample course  [#4308](https://github.com/Automattic/sensei/pull/4308)
- Fix: Learner Courses block styling issues  [#4298](https://github.com/Automattic/sensei/pull/4298)

## 3.13.2 - 2021-10-01

- Fix: Handle extensions fetch error  [#4324](https://github.com/Automattic/sensei/pull/4324)

## 3.13.1 - 2021-08-26

- New: Add filters to customize the My Courses and Course Completed page content  [#4286](https://github.com/Automattic/sensei/pull/4286),  [#4290](https://github.com/Automattic/sensei/pull/4290)
- New: Add "Find More Courses" block variation  [#4293](https://github.com/Automattic/sensei/pull/4293)
- Tweak: Rename Take Course block to Course Sign Up  [#4288](https://github.com/Automattic/sensei/pull/4288)
- Tweak: Update Learner Courses block styles  [#4291](https://github.com/Automattic/sensei/pull/4291)
- Tweak: Clarify editor notice when adding first Sensei block or removing last Sensei block  [#4276](https://github.com/Automattic/sensei/pull/4276)
- Fix: "No lessons message" on Order Lessons page when lessons exist  [#4269](https://github.com/Automattic/sensei/pull/4269) 👏 @timwiel
- Fix: Custom color selector in Learner Courses block  [#4289](https://github.com/Automattic/sensei/pull/4289)

## 3.13.0 - 2021-08-12

- New: Course Completed Page
    - Add Course Completed page  [#4254](https://github.com/Automattic/sensei/pull/4254),  [#4280](https://github.com/Automattic/sensei/pull/4280)
    - Add Course Completed Actions block  [#4266](https://github.com/Automattic/sensei/pull/4266)
    - Add Course Results block  [#4267](https://github.com/Automattic/sensei/pull/4267),  [#4273](https://github.com/Automattic/sensei/pull/4273),  [#4279](https://github.com/Automattic/sensei/pull/4279)
    - Update View Results button link  [#4270](https://github.com/Automattic/sensei/pull/4270)
    - Add default blocks to Course Completed page  [#4281](https://github.com/Automattic/sensei/pull/4281)
- Fix: Use new filter for block categories in WordPress 5.8  [#4264](https://github.com/Automattic/sensei/pull/4264)

## 3.12.0 - 2021-07-19

- New: Add grid view to Learner Courses block and update list view  [#4243](https://github.com/Automattic/sensei/pull/4243)
- New: PHP 8 compatibility  [#4244](https://github.com/Automattic/sensei/pull/4244)
- Tweak: Don't set minimum width for course progress bar on front end  [#4247](https://github.com/Automattic/sensei/pull/4247)
- Tweak: Add notice when adding first Sensei block or removing last block for a course or lesson  [#4246](https://github.com/Automattic/sensei/pull/4246)
- Fix: Caching course structure order  [#4326](https://github.com/Automattic/sensei/pull/4236)
- Fix: Use standard way of getting quiz ID on grading page  [#4240](https://github.com/Automattic/sensei/pull/4240)

## 3.11.1 - 2021-06-23

- Tweak: Update SenseiLMS.com notices integration  [#4233](https://github.com/Automattic/sensei/pull/4233)

## 3.11.0 - 2021-05-10

- New: Extensions Page Redesign
    - Add counter to Extensions menu to display the number of available plugin updates  [#4156](https://github.com/Automattic/sensei/pull/4156)
    - Add missing WooCommerce.com connection notice  [#4161](https://github.com/Automattic/sensei/pull/4161)
    - Add extensions page structure  [#4162](https://github.com/Automattic/sensei/pull/4162)
    - Improve extensions page responsive styles  [#4163](https://github.com/Automattic/sensei/pull/4163)
    - Add filters to the Extensions page  [#4164](https://github.com/Automattic/sensei/pull/4164)
    - Add extensions update banner  [#4167](https://github.com/Automattic/sensei/pull/4167)
    - Add extension card logic  [#4180](https://github.com/Automattic/sensei/pull/4180)
    - Integrate extensions page with real data  [#4183](https://github.com/Automattic/sensei/pull/4183)
    - Tweak extensions page design  [#4185](https://github.com/Automattic/sensei/pull/4185)
    - Create Extensions page dynamically  [#4197](https://github.com/Automattic/sensei/pull/4197)
    - Minor tweaks to copy on Extensions page  [#4199](https://github.com/Automattic/sensei/pull/4199)
    - Add images to extensions page  [#4201](https://github.com/Automattic/sensei/pull/4201)
    - Add extension update endpoint  [#4203](https://github.com/Automattic/sensei/pull/4203)
    - Get extensions layout from SenseiLMS.com  [#4204](https://github.com/Automattic/sensei/pull/4204)
    - Enable updating plugins on Extensions page  [#4205](https://github.com/Automattic/sensei/pull/4205)
    - Add changelog links to extensions with update available  [#4210](https://github.com/Automattic/sensei/pull/4210)
    - Handle connecting to WooCommerce.com from Extensions page  [#4213](https://github.com/Automattic/sensei/pull/4213)
    - Enable installing plugins on Extensions page  [#4214](https://github.com/Automattic/sensei/pull/4214)
    - Handle activating / installing WooCommerce from the Extensions page  [#4215](https://github.com/Automattic/sensei/pull/4215)
    - Preload extensions data  [#4217](https://github.com/Automattic/sensei/pull/4217)
    - Simplify ExtensionActions component styles  [#4219](https://github.com/Automattic/sensei/pull/4219)
    - Add space between featured cards  [#4221](https://github.com/Automattic/sensei/pull/4221)
    - Log when extensions are installed or updated on the Extensions page  [#4222](https://github.com/Automattic/sensei/pull/4222)
    - Update extensions error message to be formatted  [#4225](https://github.com/Automattic/sensei/pull/4225)
- New: Add Lesson Properties block  [#4196](https://github.com/Automattic/sensei/pull/4196)
- Tweak: Ignore "Course Archive Image" setting when rendering featured image in Learner Courses block  [#4184](https://github.com/Automattic/sensei/pull/4184)
- Tweak: Remove WooCommerce Components dependency  [#4189](https://github.com/Automattic/sensei/pull/4189)
- Tweak: Deprecate experimental REST API  [#4190](https://github.com/Automattic/sensei/pull/4190)
- Tweak: Filter arguments when duplicating a Sensei post  [#4198](https://github.com/Automattic/sensei/pull/4198)
- Fix: Fix sporadic unit test failure  [#4195](https://github.com/Automattic/sensei/pull/4195)

## 3.10.0 - 2021-04-14

- New: Learner Courses block (My Courses)  [#4126](https://github.com/Automattic/sensei/pull/4126)
- New: Add View Results block  [#4155](https://github.com/Automattic/sensei/pull/4155)
- New: Add blocks to My Courses page on setup  [#4137](https://github.com/Automattic/sensei/pull/4137)
- New: Add learner messages button block  [#4134](https://github.com/Automattic/sensei/pull/4134)
- Tweak: Improve conditional content description  [#4115](https://github.com/Automattic/sensei/pull/4115)
- Tweak: Print the first lesson in a prerequisite chain  [#4114](https://github.com/Automattic/sensei/pull/4114)
- Tweak: Remove Gutenberg compatibility assets  [#4132](https://github.com/Automattic/sensei/pull/4132)
- Tweak: Show teacher's questions only when using category questions  [#4148](https://github.com/Automattic/sensei/pull/4148)

## 3.9.1 - 2021-03-31

- New: Show validation in single question editor  [#4087](https://github.com/Automattic/sensei/pull/4087)
- New: Log template overrides  [#4113](https://github.com/Automattic/sensei/pull/4113)
- Tweak: Add input as answer when unfocusing gap fill question  [#4119](https://github.com/Automattic/sensei/pull/4119)
- Tweak: Round course progress percentage to nearest integer  [#4131](https://github.com/Automattic/sensei/pull/4131)
- Tweak: Add points suffix to question grade controls  [#4120](https://github.com/Automattic/sensei/pull/4120)
- Tweak: Remove placeholder text from category question selector  [#4144](https://github.com/Automattic/sensei/pull/4144)
- Tweak: Make invalid category question save message more descriptive  [#4145](https://github.com/Automattic/sensei/pull/4145)
- Tweak: Add Sensei version to extension messages transient  [#4143](https://github.com/Automattic/sensei/pull/4143)
- Fix: Enable updateSelection to prevent block crashes  [#4125](https://github.com/Automattic/sensei/pull/4125)
- Fix: Create module taxonomy before cleaning data  [#4128](https://github.com/Automattic/sensei/pull/4128)
- Fix: Enable legacy quiz meta boxes if the Classic Editor plugin is activated  [#4147](https://github.com/Automattic/sensei/pull/4147)
- Fix: Error when manually adding course outline block  [#4141](https://github.com/Automattic/sensei/pull/4141)

## 3.9.0 - 2021-03-25

- New: Quiz Block
    - Add Quiz and Question blocks  [#3936](https://github.com/Automattic/sensei/pull/3936)
    - Prepare structure store for quiz block  [#3950](https://github.com/Automattic/sensei/pull/3950)
    - Add quiz block structure store and sync  [#3958](https://github.com/Automattic/sensei/pull/3958)
    - Add Quiz block settings  [#3987](https://github.com/Automattic/sensei/pull/3987)
    - Normalize quiz options attribute coming from the REST API  [#3996](https://github.com/Automattic/sensei/pull/3996)
    - Add Quiz block to block template and ensure only one Quiz block can be added to a lesson  [#3983](https://github.com/Automattic/sensei/pull/3983)
    - Update block descriptions and quiz settings helper text  [#4000](https://github.com/Automattic/sensei/pull/4000)
    - Add existing questions modal  [#4003](https://github.com/Automattic/sensei/pull/4003)
    - Handle adding existing questions to quiz  [#4014](https://github.com/Automattic/sensei/pull/4014)
    - Add icon for quiz block  [#4017](https://github.com/Automattic/sensei/pull/4017)
    - Handling saving quiz  [#4011](https://github.com/Automattic/sensei/pull/4011)
    - Add the quiz block when the quiz is enabled for lesson  [#4018](https://github.com/Automattic/sensei/pull/4018)
    - Unescape question category term names in existing question modal  [#4041](https://github.com/Automattic/sensei/pull/4041)
    - Fix question type dropdown in existing question modal for teachers  [#4040](https://github.com/Automattic/sensei/pull/4040)
    - Fix resetting the "Number of Questions" quiz setting  [#4037](https://github.com/Automattic/sensei/pull/4037)
    - Implement saving for single question block editor  [#4032](https://github.com/Automattic/sensei/pull/4032)
    - Update inserter for quiz block  [#4038](https://github.com/Automattic/sensei/pull/4038)
    - Handle quiz status based on block presence and question count  [#4033](https://github.com/Automattic/sensei/pull/4033)
    - Migrate question media  [#4035](https://github.com/Automattic/sensei/pull/4035),  [#4064](https://github.com/Automattic/sensei/pull/4064)
    - Disable block based question editor when question category is used in any quiz  [#4054](https://github.com/Automattic/sensei/pull/4054)
    - Fix existing questions not loading in WP 5.7  [#4069](https://github.com/Automattic/sensei/pull/4069)
    - Limit "Number of Questions" setting to number of questions in quiz  [#4063](https://github.com/Automattic/sensei/pull/4063)
    - Fix editor undo for auto-inserted blocks & quiz block  [#4074](https://github.com/Automattic/sensei/pull/4074)
    - Fix existing questions modal auto-closing after block insertion  [#4084](https://github.com/Automattic/sensei/pull/4084)
    - Avoid overriding non-editable question  [#4086](https://github.com/Automattic/sensei/pull/4086),  [#4093](https://github.com/Automattic/sensei/pull/4093)
    - Add quiz block validation  [#4077](https://github.com/Automattic/sensei/pull/4077)
    - Include category questions when calculating the upper limit of the "Number of Questions" setting  [#4090](https://github.com/Automattic/sensei/pull/4090)
    - Fix questions not loading for teachers  [#4094](https://github.com/Automattic/sensei/pull/4094)
    - Fix draft question block focus and visibility  [#4091](https://github.com/Automattic/sensei/pull/4091)
    - Fix error with quiz appender  [#4096](https://github.com/Automattic/sensei/pull/4096),  [#4098](https://github.com/Automattic/sensei/pull/4098)
    - Fix page jump when clicking the quiz appender  [#4100](https://github.com/Automattic/sensei/pull/4100)
    - Fix minor quiz block issues  [#4103](https://github.com/Automattic/sensei/pull/4103)
    - Only include questions in the existing questions modal that haven't already been added to the quiz  [#4109](https://github.com/Automattic/sensei/pull/4109)
- New: Question Block
    - Add question type selector  [#3940](https://github.com/Automattic/sensei/pull/3940)
    - Add question numbering  [#3941](https://github.com/Automattic/sensei/pull/3941)
    - Add Single Line and Multi Line answer boxes  [#3963](https://github.com/Automattic/sensei/pull/3963)
    - Add Gap Fill question block  [#3974](https://github.com/Automattic/sensei/pull/3974)
    - Add Multiple Choice and True/False question blocks  [#3967](https://github.com/Automattic/sensei/pull/3967)
    - Add File Upload question block  [#3975](https://github.com/Automattic/sensei/pull/3975)
    - Improve question block navigation  [#3976](https://github.com/Automattic/sensei/pull/3976)
    - Add common Question block settings  [#3979](https://github.com/Automattic/sensei/pull/3979)
    - Update default answers for multiple choice question  [#3992](https://github.com/Automattic/sensei/pull/3992)
    - Ensure question block types are the same as the types in the question bank  [#3997](https://github.com/Automattic/sensei/pull/3997)
    - Remove Question Categories section from question block settings  [#4008](https://github.com/Automattic/sensei/pull/4008)
    - Add points assignment to question block toolbar  [#3999](https://github.com/Automattic/sensei/pull/3999)
    - Add shared question notice  [#4001](https://github.com/Automattic/sensei/pull/4001)
    - Adjust question block controls  [#4012](https://github.com/Automattic/sensei/pull/4012)
    - Synchronize question API and block attribute schema  [#4029](https://github.com/Automattic/sensei/pull/4029)
    - Minor tweaks to question blocks  [#4031](https://github.com/Automattic/sensei/pull/4031)
    - Add read-only question blocks  [#4061](https://github.com/Automattic/sensei/pull/4061)
    - Fix React warning about null `textarea`  [#4070](https://github.com/Automattic/sensei/pull/4070)
    - Don't add question block when it already exists (auto-draft)  [#4071](https://github.com/Automattic/sensei/pull/4071)
    - Changes for question type extensibility  [#4066](https://github.com/Automattic/sensei/pull/4066)
    - Change gap fill before/after to plain text input  [#4082](https://github.com/Automattic/sensei/pull/4082)
    - Update question block validation visuals  [#4104](https://github.com/Automattic/sensei/pull/4104)
- New: Category Question block
    - Add settings and basic UI to category question block  [#4080](https://github.com/Automattic/sensei/pull/4080)
    - Remove category question feature flag  [#4088](https://github.com/Automattic/sensei/pull/4088)
- New: REST API
    - Add API endpoint for fetching a quiz  [#3959](https://github.com/Automattic/sensei/pull/3959)
    - Expand multiple_question post type in quiz REST API  [#3966](https://github.com/Automattic/sensei/pull/3966)
    - Add API endpoints for questions  [#3993](https://github.com/Automattic/sensei/pull/3993)
    - Implement saving quiz and questions via the REST API  [#3972](https://github.com/Automattic/sensei/pull/3972)
    - Retrieve individual question options from REST API  [#4013](https://github.com/Automattic/sensei/pull/4013)
    - Add editable flag to question REST API responses  [#4036](https://github.com/Automattic/sensei/pull/4036)
    - Add lesson quiz question protection to REST API  [#4039](https://github.com/Automattic/sensei/pull/4039)
    - Add multiple/category questions to REST API  [#4072](https://github.com/Automattic/sensei/pull/4072)
- New: Add filter to allow for changing uploaded file prefix  [#3986](https://github.com/Automattic/sensei/pull/3986)
- New: Display enrollment provider exceptions in the logs  [#3989](https://github.com/Automattic/sensei/pull/3989)
- New: Add filter to disable block based quiz editor  [#4009](https://github.com/Automattic/sensei/pull/4009)
- New: Log the quiz editor being used on a site  [#4022](https://github.com/Automattic/sensei/pull/4022)
- New: Log legacy flags in system usage tracking  [#4056](https://github.com/Automattic/sensei/pull/4056)
- New: Log sensei_plugin_update event on plugin update  [#4058](https://github.com/Automattic/sensei/pull/4058)
- New: Add single question block editor  [#4025](https://github.com/Automattic/sensei/pull/4025)
- New: Filter the block templates  [#4026](https://github.com/Automattic/sensei/pull/4026)
- New: Only use block based editor in question bank if enabled  [#4055](https://github.com/Automattic/sensei/pull/4055)
- New: Fix previous questions that have changed teachers  [#4030](https://github.com/Automattic/sensei/pull/4030)
- Tweak: Generalize lesson block inserters  [#3952](https://github.com/Automattic/sensei/pull/3952)
- Tweak: Clean up course outline hooks  [#3953](https://github.com/Automattic/sensei/pull/3953)
- Tweak: Flatten structure for course outline schema references in the REST API  [#4015](https://github.com/Automattic/sensei/pull/4015)
- Tweak: Change question author when possible on teacher change  [#4024](https://github.com/Automattic/sensei/pull/4024)
- Tweak: Use block button styles for quiz actions  [#4023](https://github.com/Automattic/sensei/pull/4023)
- Tweak: Allow draft questions if they are not in a quiz  [#4076](https://github.com/Automattic/sensei/pull/4076)
- Tweak: Update lessons in sample course  [#4083](https://github.com/Automattic/sensei/pull/4083)
- Tweak: Preload course and quiz structure  [#3995](https://github.com/Automattic/sensei/pull/3995)
- Tweak: Remove abandoned `multiple_question` posts  [#4060](https://github.com/Automattic/sensei/pull/4060)
- Tweak: Add Sensei blocks to the top of the block inserter  [#4112](https://github.com/Automattic/sensei/pull/4112)
- Tweak: Prevent enrolment calculations on each update  [#4121](https://github.com/Automattic/sensei/pull/4121)
- Fix: Infinite loop when saving course structure  [#4027](https://github.com/Automattic/sensei/pull/4027)
- Fix: Fatal error when `post_password_required` is called early  [#4006](https://github.com/Automattic/sensei/pull/4006)
- Fix: Prevent teachers from being able to add other teachers' questions  [#4085](https://github.com/Automattic/sensei/pull/4085)
- Fix: Don't show breadcrumb to teachers on Grading page for courses or lessons they don't own  [#4085](https://github.com/Automattic/sensei/pull/4085)
- Fix: Check if the user can edit a course before adding a lesson to it  [#4085](https://github.com/Automattic/sensei/pull/4085)
- Fix: Validate question owner before adding a question  [#4085](https://github.com/Automattic/sensei/pull/4085)
- Fix: Only show courses belonging to the current teacher on the Analysis page  [#4085](https://github.com/Automattic/sensei/pull/4085)
- Fix: Quiz nonce checks  [#4085](https://github.com/Automattic/sensei/pull/4085)
- Fix: Email not sending when a learner starts a course  [#4089](https://github.com/Automattic/sensei/pull/4089)

## 3.8.1 - 2021-02-17

- Fix: Fix lesson module metabox saving with Yoast installed  [#3982](https://github.com/Automattic/sensei/pull/3982)
- Fix: Fix course lessons in modules not appearing on analysis screen  [#3971](https://github.com/Automattic/sensei/pull/3971)
- Fix: Allow template field to be edited by teachers  [#3985](https://github.com/Automattic/sensei/pull/3985)
- Fix: Add post type and access checks to main view on learner management  [#3984](https://github.com/Automattic/sensei/pull/3984) 👏 foobar7
- Fix: Check for edit access for course in bulk learner management  [#3984](https://github.com/Automattic/sensei/pull/3984) 👏 foobar7
- Fix: Make sure users who aren't participants can't see private messages  [#3984](https://github.com/Automattic/sensei/pull/3984) 👏 foobar7
- Fix: Escape HTML in gap fill editor preview  [#3984](https://github.com/Automattic/sensei/pull/3984) 👏 foobar7
- Fix: Hide REST API lesson content and remove lesson and question feeds  [#3984](https://github.com/Automattic/sensei/pull/3984)

## 3.8.0 - 2021-02-09

- New: Conditional Content block
    - Add Restricted Course Content block  [#3849](https://github.com/Automattic/sensei/pull/3849)
    - Rename Restricted Content block to Conditional Content  [#3939](https://github.com/Automattic/sensei/pull/3939)
- New: Lesson Actions block
    - Isolate course blocks  [#3885](https://github.com/Automattic/sensei/pull/3885)
    - Add basic setup for lesson actions block  [#3886](https://github.com/Automattic/sensei/pull/3886)
    - Add Lesson Actions block settings  [#3887](https://github.com/Automattic/sensei/pull/3887)
    - Fix button alignment in lesson actions block  [#3895](https://github.com/Automattic/sensei/pull/3895)
    - Style selected state of buttons in editor for the lesson actions block  [#3903](https://github.com/Automattic/sensei/pull/3903)
    - Fix issues with selecting different buttons in the lesson actions block  [#3907](https://github.com/Automattic/sensei/pull/3907)
    - Add Sensei LMS block category for lessons  [#3908](https://github.com/Automattic/sensei/pull/3908)
    - Add `View quiz` button to lesson actions block  [#3910](https://github.com/Automattic/sensei/pull/3910)
    - Fix alignment of buttons in Lesson Actions block  [#3913](https://github.com/Automattic/sensei/pull/3913)
    - Disable Complete Lesson button in editor for an in-progress lesson if passmark must be achieved  [#3914](https://github.com/Automattic/sensei/pull/3914)
    - Add shared block foundation  [#3917](https://github.com/Automattic/sensei/pull/3917)
    - Display Lesson Actions block in the frontend  [#3929](https://github.com/Automattic/sensei/pull/3929)
    - Fix opacity of disabled buttons in Lesson Actions block  [#3932](https://github.com/Automattic/sensei/pull/3932)
    - Handle lesson hooks for lessons which contain a block  [#3935](https://github.com/Automattic/sensei/pull/3935)
    - Add block template to the lesson editor  [#3937](https://github.com/Automattic/sensei/pull/3937)
    - Fully hide inactive buttons in Lesson Actions block and add state separator  [#3943](https://github.com/Automattic/sensei/pull/3943)
    - Update block descriptions for Lesson Actions blocks  [#3944](https://github.com/Automattic/sensei/pull/3944)
    - Show View Quiz button in Lesson Actions block even after quiz is completed  [#3946](https://github.com/Automattic/sensei/pull/3946)
    - Update Reset Lesson block description  [#3948](https://github.com/Automattic/sensei/pull/3948)
    - Use quiz state to determine if complete lesson is allowed  [#3949](https://github.com/Automattic/sensei/pull/3949)
    - Fix: Don't initialize lesson blocks if they don't exist on the page  [#3960](https://github.com/Automattic/sensei/pull/3960)
    - Fix Lesson Actions styles  [#3961](https://github.com/Automattic/sensei/pull/3961)
- New: Add toolbar dropdown component for use with blocks  [#3904](https://github.com/Automattic/sensei/pull/3904)
- New: Log when lessons are updated  [#3920](https://github.com/Automattic/sensei/pull/3920)
- Tweak: Use Sensei_Notices in Take Course block  [#3901](https://github.com/Automattic/sensei/pull/3901)
- Tweak: Update question field names  [#3905](https://github.com/Automattic/sensei/pull/3905)
- Tweak: Update text in Lesson Actions and Restricted Course Content blocks  [#3927](https://github.com/Automattic/sensei/pull/3927)
- Tweak: Update blocks architecture  [#3928](https://github.com/Automattic/sensei/pull/3928)
- Tweak: Add icons for Conditional Content and Lesson Actions blocks  [#3954](https://github.com/Automattic/sensei/pull/3954)
- Fix: Enable translating blocks  [#3919](https://github.com/Automattic/sensei/pull/3919)
- Fix: Do not allow duplicate notices to be displayed  [#3923](https://github.com/Automattic/sensei/pull/3923)
- Fix: Fix lesson order being changed when saving lesson  [#3951](https://github.com/Automattic/sensei/pull/3951) 👏 @hansschuijff
- Fix: Fix block translations  [#3962](https://github.com/Automattic/sensei/pull/3962)

## 3.7.0 - 2021-01-21

- New: Add filter to only allow some mime types to quiz file upload answers  [#3828](https://github.com/Automattic/sensei/pull/3828)
- New: Remove REST API Test Harness code  [#3475](https://github.com/Automattic/sensei/pull/3475)
- New: Show admin notice if Sensei hasn't been built correctly  [#3775](https://github.com/Automattic/sensei/pull/3775) 👏 @merkushin
- New: Log course completion rate  [#3777](https://github.com/Automattic/sensei/pull/3777)
- New: Add Remove Progress button in Learner Management for lessons  [#3857](https://github.com/Automattic/sensei/pull/3857)
- New: Add basic integrations with Site Health  [#3834](https://github.com/Automattic/sensei/pull/3834)
- New: Add Tools page and deprecate Data Updates page  [#3842](https://github.com/Automattic/sensei/pull/3842)
- New: Add course enrollment debugger to Tools menu  [#3843](https://github.com/Automattic/sensei/pull/3843)
- New: Add hook to filter meta keys when duplicating courses  [#3830](https://github.com/Automattic/sensei/pull/3830)
- New: Add comment table indexes on upgrade  [#3861](https://github.com/Automattic/sensei/pull/3861)
- New: Add notice to install WooCommerce Paid Courses  [#3876](https://github.com/Automattic/sensei/pull/3876),  [#3884](https://github.com/Automattic/sensei/pull/3884)
- Tweak: Enable translating more Sensei content using Polylang and WPML  [#3840](https://github.com/Automattic/sensei/pull/3840)
- Tweak: Ensure all data is removed when uninstalling the plugin  [#3864](https://github.com/Automattic/sensei/pull/3864)
- Tweak: Minor tool fixes and additions  [#3896](https://github.com/Automattic/sensei/pull/3896)
- Tweak: Rename `Grading Notes` to `Answer Feedback` in grading tool  [#3897](https://github.com/Automattic/sensei/pull/3897)
- Fix: Fix empty Courses page on multi-site install  [#3827](https://github.com/Automattic/sensei/pull/3827)
- Fix: Fix linter issues  [#3833](https://github.com/Automattic/sensei/pull/3833)
- Fix: Fix some columns not showing in courses, lessons and questions lists  [#3273](https://github.com/Automattic/sensei/pull/3273) 👏 @hansschuijff
- Fix: Prevent double form submission  [#3838](https://github.com/Automattic/sensei/pull/3838)
- Fix: Fix teacher/admin module slug conflicts in course outline block  [#3846](https://github.com/Automattic/sensei/pull/3846)
- Fix: Fix some colors not being applied on front end for course blocks  [#3844](https://github.com/Automattic/sensei/pull/3844)
- Fix: Fix teacher change issue on saving block editor meta boxes  [#3829](https://github.com/Automattic/sensei/pull/3829)
- Fix: Remove duplicate progress entries after inserting a new one  [#3855](https://github.com/Automattic/sensei/pull/3855)
- Fix: Fix module renaming in course outline block  [#3862](https://github.com/Automattic/sensei/pull/3862)
- Fix: Teachers should only be able to access their own courses  [#3873](https://github.com/Automattic/sensei/pull/3873)
- Fix: Fix order that lessons in a module are retrieved in  [#3879](https://github.com/Automattic/sensei/pull/3879)
- Fix: Always use numeric grade when grading manually  [#3755](https://github.com/Automattic/sensei/pull/3755)
- Fix: Hide Modules metabox after changing course teacher to prevent module conflicts  [#3869](https://github.com/Automattic/sensei/pull/3869)

## 3.6.1 - 2021-01-06

- Fix: Fix not being able to save course when Yoast SEO is activated  [#3866](https://github.com/Automattic/sensei/pull/3866)
- Fix: Ensure exit survey is displayed after deactivating Sensei with WooCommerce Paid Courses  [#3871](https://github.com/Automattic/sensei/pull/3871)

## 3.6.0 - 2020-12-10

- New: Course Outline block
    - Add "Edit lesson" link to lesson block settings  [#3637](https://github.com/Automattic/sensei/pull/3637)
    - Add "Not Started" option to module block status setting  [#3678](https://github.com/Automattic/sensei/pull/3678)
    - Add Edit Lesson button to course outline block toolbar  [#3708](https://github.com/Automattic/sensei/pull/3708)
    - Add ability to expand/collapse modules  [#3628](https://github.com/Automattic/sensei/pull/3628)
    - Add chevron to lesson block  [#3679](https://github.com/Automattic/sensei/pull/3679)
    - Add course outline block icons  [#3630](https://github.com/Automattic/sensei/pull/3630)
    - Add course outline empty state  [#3594](https://github.com/Automattic/sensei/pull/3594)
    - Add course structure API integration  [#3600](https://github.com/Automattic/sensei/pull/3600)
    - Add endpoints for getting and saving course structure  [#3593](https://github.com/Automattic/sensei/pull/3593)
    - Add font size setting to lesson block  [#3634](https://github.com/Automattic/sensei/pull/3634)
    - Add lesson block color customization  [#3620](https://github.com/Automattic/sensei/pull/3620)
    - Add lesson block status setting  [#3643](https://github.com/Automattic/sensei/pull/3643)
    - Add module block status setting  [#3613](https://github.com/Automattic/sensei/pull/3613)
    - Add outline and module block styles  [#3650](https://github.com/Automattic/sensei/pull/3650)
    - Add saving of course structure  [#3602](https://github.com/Automattic/sensei/pull/3602)
    - Add setting to course outline block that disables module animation  [#3641](https://github.com/Automattic/sensei/pull/3641)
    - Add support for course outline block to importer  [#3698](https://github.com/Automattic/sensei/pull/3698)
    - Add support for inner block attributes  [#3615](https://github.com/Automattic/sensei/pull/3615)
    - Add transform that enables grouping selected lessons into a module  [#3651](https://github.com/Automattic/sensei/pull/3651)
    - Allow for different context when getting course structure  [#3621](https://github.com/Automattic/sensei/pull/3621)
    - Allow line wrapping for module, lesson titles   [#3692](https://github.com/Automattic/sensei/pull/3692)
    - Create quiz when saving new lesson in course outline block  [#3629](https://github.com/Automattic/sensei/pull/3629)
    - Display all lessons and modules in preview mode in the outline block  [#3699](https://github.com/Automattic/sensei/pull/3699)
    - Don't show Edit Lesson link in toolbar for empty lessons  [#3720](https://github.com/Automattic/sensei/pull/3720)
    - Escape outline block HTML  [#3681](https://github.com/Automattic/sensei/pull/3681)
    - Extract inner block attributes on server-side   [#3625](https://github.com/Automattic/sensei/pull/3625)
    - Fix Course Outline block for WordPress 5.3  [#3623](https://github.com/Automattic/sensei/pull/3623)
    - Fix PHP notice when saving new lesson in course outline block  [#3660](https://github.com/Automattic/sensei/pull/3660)
    - Fix SVG usage and replace collapsible module icon with SVG image  [#3683](https://github.com/Automattic/sensei/pull/3683)
    - Fix lesson link style  [#3687](https://github.com/Automattic/sensei/pull/3687)
    - Fix module and lesson text colors in course outline block on WordPress 5.4  [#3799](https://github.com/Automattic/sensei/pull/3799)
    - Fix module and lesson title styles  [#3797](https://github.com/Automattic/sensei/pull/3797)
    - Fix module status on frontend  [#3644](https://github.com/Automattic/sensei/pull/3644)
    - Fix placeholder icon and buttons for WordPress 5.3  [#3669](https://github.com/Automattic/sensei/pull/3669)
    - Fix some issues with saving the course structure  [#3648](https://github.com/Automattic/sensei/pull/3648)
    - Refactor outline block files  [#3697](https://github.com/Automattic/sensei/pull/3697)
    - Refine display of post status in the lesson block  [#3680](https://github.com/Automattic/sensei/pull/3680)
    - Remove inserter from module block and adjust how empty lesson block is added  [#3684](https://github.com/Automattic/sensei/pull/3684)
    - Remove module animation setting and replace with collapsible modules setting  [#3675](https://github.com/Automattic/sensei/pull/3675)
    - Set a default value for `outlineClassName` in the module block  [#3806](https://github.com/Automattic/sensei/pull/3806)
    - Show draft status in lesson block  [#3653](https://github.com/Automattic/sensei/pull/3653)
    - Standardize module style and border settings in course outline and module blocks  [#3749](https://github.com/Automattic/sensei/pull/3749)
    - Update lesson block status setting  [#3663](https://github.com/Automattic/sensei/pull/3663)
    - Update placeholder text for course outline block module description, and course and lesson title  [#3642](https://github.com/Automattic/sensei/pull/3642)
    - Update text in block settings and reorder the panels in the lesson block  [#3657](https://github.com/Automattic/sensei/pull/3657)
    - Use block.json for metadata shared between JS and PHP  [#3635](https://github.com/Automattic/sensei/pull/3635)
    - Use outline block style if no style is set in the module block  [#3803](https://github.com/Automattic/sensei/pull/3803)
    - Add a message for course outline block without published content  [#3721](https://github.com/Automattic/sensei/pull/3721)
    - Add course outline basic setup  [#3560](https://github.com/Automattic/sensei/pull/3560)
    - Add lesson preview badge to the course outline  [#3732](https://github.com/Automattic/sensei/pull/3732)
    - Base for course outline content  [#3584](https://github.com/Automattic/sensei/pull/3584)
    - Change course outline styling to distinguish lessons that belong to a module and lessons that do not  [#3726](https://github.com/Automattic/sensei/pull/3726)
    - Change outline block error messages  [#3707](https://github.com/Automattic/sensei/pull/3707)
    - Focus the module title input when adding a new module  [#3676](https://github.com/Automattic/sensei/pull/3676)
    - Hide module description on the front end when there is no description  [#3710](https://github.com/Automattic/sensei/pull/3710)
    - Hide modules and lessons meta boxes in course editor when outline block is present  [#3649](https://github.com/Automattic/sensei/pull/3649)
    - Make it easier to select the course outline block in the editor  [#3756](https://github.com/Automattic/sensei/pull/3756)
    - Refactor modules collapsing script to use domReady  [#3722](https://github.com/Automattic/sensei/pull/3722)
    - Add module link to the course outline block when the module has a description  [#3723](https://github.com/Automattic/sensei/pull/3723)
    - Fix collapsible modules not working when animation is disabled  [#3665](https://github.com/Automattic/sensei/pull/3665)
    - Improve animation for expanding and collapsing modules  [#3646](https://github.com/Automattic/sensei/pull/3646)
    - Add support for default theme colors to Course Outline block  [#3741](https://github.com/Automattic/sensei/pull/3741)
    - Add support for default theme colors to the module border color setting  [#3805](https://github.com/Automattic/sensei/pull/3805)
    - Make border rules for "Minimal" module style less specific to allow overrides  [#3802](https://github.com/Automattic/sensei/pull/3802)
    - Fix race condition when saving  [#3800](https://github.com/Automattic/sensei/pull/3800)
    - Fix how "Edit Lesson" link displays in WordPress 5.4  [#3816](https://github.com/Automattic/sensei/pull/3816)
    - Fix undo in module block  [#3820](https://github.com/Automattic/sensei/pull/3820)
- New: Take Course block
    - Add Take Course block  [#3703](https://github.com/Automattic/sensei/pull/3703)
    - Add `wp-block-button` class to button block  [#3795](https://github.com/Automattic/sensei/pull/3795)
    - Add render callback filter for Take Course block  [#3762](https://github.com/Automattic/sensei/pull/3762)
    - Fix issue with cleared alignment in Take Course block  [#3764](https://github.com/Automattic/sensei/pull/3764)
    - Minor improvements to Take Course block  [#3761](https://github.com/Automattic/sensei/pull/3761)
    - Fix error being logged to the console for the Take Course block  [#3770](https://github.com/Automattic/sensei/pull/3770)
- New: Contact Teacher block
    - Add Contact Teacher block  [#3702](https://github.com/Automattic/sensei/pull/3702)
    - Move private message form to Contact Teacher block  [#3717](https://github.com/Automattic/sensei/pull/3717)
    - Change Contact Teacher button default style  [#3787](https://github.com/Automattic/sensei/pull/3787)
- New: Course Progress block
    - Introduce course progress block  [#3689](https://github.com/Automattic/sensei/pull/3689)
    - Add course progress block color settings  [#3695](https://github.com/Automattic/sensei/pull/3695)
    - Add progress bar border radius and height settings to course progress block  [#3733](https://github.com/Automattic/sensei/pull/3733)
    - Fix alignment of progress bar settings in WordPress 5.4  [#3807](https://github.com/Automattic/sensei/pull/3807)
    - Integrate course progress in the frontend  [#3731](https://github.com/Automattic/sensei/pull/3731)
    - Integrate module and lesson status with course progress block  [#3712](https://github.com/Automattic/sensei/pull/3712)
    - Refinements to course progress block  [#3735](https://github.com/Automattic/sensei/pull/3735)
    - Update the description for the course progress block  [#3730](https://github.com/Automattic/sensei/pull/3730)
    - Update default border radius in the course progress block  [#3781](https://github.com/Automattic/sensei/pull/3781)
- New: Add base button block  [#3686](https://github.com/Automattic/sensei/pull/3686)
- New: Add block icons  [#3750](https://github.com/Automattic/sensei/pull/3750)
- New: Add filter to disable single course template  [#3706](https://github.com/Automattic/sensei/pull/3706)
- New: Enforce minimum PHP version of 7.0  [#3592](https://github.com/Automattic/sensei/pull/3592)
- New: Ensure sensei_course_start hook works without custom template for single course  [#3765](https://github.com/Automattic/sensei/pull/3765)
- New: Handle block based and legacy single course frontend rendering  [#3647](https://github.com/Automattic/sensei/pull/3647)
- New: Improve base button extendability  [#3748](https://github.com/Automattic/sensei/pull/3748)
- New: Remove underline from `ins` element in button block  [#3780](https://github.com/Automattic/sensei/pull/3780)
- New: Tweak block descriptions  [#3792](https://github.com/Automattic/sensei/pull/3792)
- New: Update block category icon  [#3798](https://github.com/Automattic/sensei/pull/3798)
- New: Add block checks to the `course_update` event log  [#3727](https://github.com/Automattic/sensei/pull/3727)
- New: Add filter for customizing block arguments  [#3782](https://github.com/Automattic/sensei/pull/3782)
- New: Add new blocks to the course block template  [#3734](https://github.com/Automattic/sensei/pull/3734)
- New: Add spacing between course blocks  [#3757](https://github.com/Automattic/sensei/pull/3757)
- New: Fix message alignment in Twenty Twenty theme  [#3766](https://github.com/Automattic/sensei/pull/3766)
- New: Hide course video meta box for courses using Sensei blocks  [#3779](https://github.com/Automattic/sensei/pull/3779)
- New: Log when a course is updated  [#3652](https://github.com/Automattic/sensei/pull/3652)
- New: Move Contact Teacher below Take Course in the course block template  [#3804](https://github.com/Automattic/sensei/pull/3804)
- New: Remove optional templates feature flag  [#3791](https://github.com/Automattic/sensei/pull/3791)
- New: Remove the temporary feature flag for the course blocks  [#3754](https://github.com/Automattic/sensei/pull/3754)
- New: Standardize button styles  [#3788](https://github.com/Automattic/sensei/pull/3788)
- New: Update alignment component used in button blocks  [#3783](https://github.com/Automattic/sensei/pull/3783)
- New: Add validation to post object before logging course update event  [#3709](https://github.com/Automattic/sensei/pull/3709)
- New: Ensure Lessons and Modules meta boxes are displayed for legacy courses  [#3661](https://github.com/Automattic/sensei/pull/3661)
- New: Add isPreview flag to button blocks  [#3811](https://github.com/Automattic/sensei/pull/3811)
- New: Don't show "Course Video" metabox when any Sensei block is added to the course page  [#3818](https://github.com/Automattic/sensei/pull/3818)
- New: Use Sensei logo in block inserter  [#3823](https://github.com/Automattic/sensei/pull/3823)
- Tweak: Center text within Setup Wizard buttons  [#3575](https://github.com/Automattic/sensei/pull/3575)
- Tweak: Make detail fields required on exit survey  [#3786](https://github.com/Automattic/sensei/pull/3786)
- Tweak: Update sample course to include blocks  [#3808](https://github.com/Automattic/sensei/pull/3808),  [#3831](https://github.com/Automattic/sensei/pull/3831)
- Tweak: Refactor "Order Lessons" page to use the Sensei_Course_Structure class  [#3664](https://github.com/Automattic/sensei/pull/3664)
- Tweak: Refactor "Order Modules" page to use the Sensei_Course_Structure class  [#3672](https://github.com/Automattic/sensei/pull/3672)
- Fix: Ensure analysis export works with RTL languages  [#3751](https://github.com/Automattic/sensei/pull/3751)
- Fix: Ensure learners who have already viewed a quiz see the latest updates the next time they view it  [#2887](https://github.com/Automattic/sensei/pull/2887) 👏 @JuanchoPestana
- Fix: Remove wrapper elements from templates  [#3772](https://github.com/Automattic/sensei/pull/3772)
- Fix: Strip HTML from plugin installation error message  [#3753](https://github.com/Automattic/sensei/pull/3753)
- Fix: Fix incorrect rounding of maximum file size for file upload questions  [#3673](https://github.com/Automattic/sensei/pull/3673)

## 3.5.3 - 2020-10-29

- Fix: Visibility of quiz passmark percentage field  [#3715](https://github.com/Automattic/sensei/pull/3715)
- Fix: PHP notices on taxonomy pages for unsupported themes  [#3704](https://github.com/Automattic/sensei/pull/3704)
- New: Exit survey when the plugin is deactivated  [#3729](https://github.com/Automattic/sensei/pull/3729)

## 3.5.2 - 2020-09-30

- Fix: Fix course being duplicated when lesson has no quiz and teacher is updated   [#3654](https://github.com/Automattic/sensei/pull/3654)
- Fix: Fix resetting a learner's lesson progress removes learner from list  [#3626](https://github.com/Automattic/sensei/pull/3626)
- Fix: Target the correct element when resetting input fields in quiz questions  [#3604](https://github.com/Automattic/sensei/pull/3604)
- Fix: Close unordered list element in sensei_course_categories shortcode  [#3622](https://github.com/Automattic/sensei/pull/3622)
- Fix: Fix PHP notice when viewing course category page on unsupported themes  [#3608](https://github.com/Automattic/sensei/pull/3608)
- Fix: Multiple choice question is correct only when all right answers are checked  [#3617](https://github.com/Automattic/sensei/pull/3617)
- Fix: Fix fatal error on activating Discount Rules for WooCommerce plugin  [#3616](https://github.com/Automattic/sensei/pull/3616)
- Fix: Don't overwrite lesson meta with defaults on update  [#3589](https://github.com/Automattic/sensei/pull/3589)
- Fix: Fix deprecated function call  [#3633](https://github.com/Automattic/sensei/pull/3633)
- Fix: Exclude right/wrong prefix in exported answers' escaped values  [#3640](https://github.com/Automattic/sensei/pull/3640)
- Fix: Fix quiz settings  [#3632](https://github.com/Automattic/sensei/pull/3632)
- New: Include category in heading for sensei_courses shortcode when filtering by category  [#3627](https://github.com/Automattic/sensei/pull/3627)
- New: Use archive-lesson template on lesson archive page  [#3614](https://github.com/Automattic/sensei/pull/3614)
- New: Add filter login required  [#3631](https://github.com/Automattic/sensei/pull/3631)
- New: Sort course filter on Lessons page in alphabetical order  [#3605](https://github.com/Automattic/sensei/pull/3605)
- New: Show scheduled lessons in Prerequisite dropdown  [#3609](https://github.com/Automattic/sensei/pull/3609)

## 3.5.1 - 2020-09-10

- Tweak: Update usage tracking for sample courses
    - Add sample_course property to publish event  [#3596](https://github.com/Automattic/sensei/pull/3596)
    - Include flag for sample data on import events  [#3588](https://github.com/Automattic/sensei/pull/3588)
- Tweak: Only add "first" and "last" CSS classes for grid layouts on course archive page  [#3467](https://github.com/Automattic/sensei/pull/3467)

## 3.5.0 - 2020-08-27

- New: Exporter
    - Add error handling to exporter  [#3541](https://github.com/Automattic/sensei/pull/3541)
    - Export multiple choice answers in correct order  [#3558](https://github.com/Automattic/sensei/pull/3558)
    - Fix "Randomise answer order" checkbox being exported incorrectly  [#3550](https://github.com/Automattic/sensei/pull/3550)
    - Fix incorrect handling of media when exporting questions  [#3551](https://github.com/Automattic/sensei/pull/3551)
    - Add content types to export page  [#3412](https://github.com/Automattic/sensei/pull/3412)
    - Add export page  [#3409](https://github.com/Automattic/sensei/pull/3409)
    - Add exporter REST API and job  [#3442](https://github.com/Automattic/sensei/pull/3442)
    - Add progress and results pages  [#3413](https://github.com/Automattic/sensei/pull/3413)
    - Change export progress Cancel link to button  [#3516](https://github.com/Automattic/sensei/pull/3516)
    - Export courses CSV  [#3462](https://github.com/Automattic/sensei/pull/3462)
    - Export lessons CSV  [#3513](https://github.com/Automattic/sensei/pull/3513)
    - Export list of lessons in courses CSV and remove Course column from lessons CSV  [#3531](https://github.com/Automattic/sensei/pull/3531)
    - Export questions CSV  [#3506](https://github.com/Automattic/sensei/pull/3506)
    - Export the correct order when lessons belong to modules  [#3537](https://github.com/Automattic/sensei/pull/3537)
    - Fix reordering of checkboxes in export page on Safari  [#3518](https://github.com/Automattic/sensei/pull/3518)
    - Log when an export job completes  [#3526](https://github.com/Automattic/sensei/pull/3526)
    - Log when the Export submenu is clicked  [#3528](https://github.com/Automattic/sensei/pull/3528)
    - Log when users click the Continue button in exporter  [#3527](https://github.com/Automattic/sensei/pull/3527)
    - Make the error more descriptive when the attachment fetch request fails  [#3559](https://github.com/Automattic/sensei/pull/3559)
    - Merge data port model with import model  [#3521](https://github.com/Automattic/sensei/pull/3521)
    - Package exported CSVs into a ZIP file when possible  [#3519](https://github.com/Automattic/sensei/pull/3519)
    - Remove data port task clean_up methods  [#3525](https://github.com/Automattic/sensei/pull/3525)
    - Reverse the exported value of course notifications  [#3543](https://github.com/Automattic/sensei/pull/3543)
    - Update copy used in exporter  [#3529](https://github.com/Automattic/sensei/pull/3529)
- Fixes: Importer
    - Run import job batches in polling requests  [#3455](https://github.com/Automattic/sensei/pull/3455)
    - Use Lessons column in courses CSV to associate courses with lessons when importing  [#3536](https://github.com/Automattic/sensei/pull/3536)
    - Fix division by zero when there are no associated import tasks  [#3557](https://github.com/Automattic/sensei/pull/3557)
    - Fix duplicate content sometimes being imported  [#3538](https://github.com/Automattic/sensei/pull/3538)
- Fix: Error in setup wizard when navigating to a previous step  [#3533](https://github.com/Automattic/sensei/pull/3533)
- New: Add sample course installation to the Setup Wizard  [#3507](https://github.com/Automattic/sensei/pull/3507)
- Tweak: Redirect to sample course after importing it  [#3545](https://github.com/Automattic/sensei/pull/3545)
- New: Use preloading for initial requests in importer and setup wizard  [#3446](https://github.com/Automattic/sensei/pull/3446)
- Tweak: Show courses with any status in Course Prerequisite dropdown  [#3555](https://github.com/Automattic/sensei/pull/3555)

## 3.4.1 - 2020-08-11

- Fix: Question editor compatibility with WordPress 5.5  [#3510](https://github.com/Automattic/sensei/pull/3510)
- Fix: Trigger setting updated events only when changed  [#3503](https://github.com/Automattic/sensei/pull/3503)

## 3.4.0 - 2020-08-06

- New: Remove / Restore Enrollments
    - Add meta handler for removing and restoring a learner's enrollment  [#3402](https://github.com/Automattic/sensei/pull/3402)
    - Change learner management actions from buttons to links  [#3404](https://github.com/Automattic/sensei/pull/3404)
    - Implement enrollment actions in Learner Management  [#3410](https://github.com/Automattic/sensei/pull/3410)
    - Update text in confirmation dialogs when removing or restoring enrollments  [#3456](https://github.com/Automattic/sensei/pull/3456)
    - Vertically align column data in Learner Management tables  [#3476](https://github.com/Automattic/sensei/pull/3476)
    - Add the ability to remove and restore enrollments in bulk learner management  [#3473](https://github.com/Automattic/sensei/pull/3473)
    - Update learner management enrollment notices to be more generic  [#3466](https://github.com/Automattic/sensei/pull/3466)
    - Log enrollment and progress actions in Learner Management  [#3465](https://github.com/Automattic/sensei/pull/3465)

## 3.3.1 - 2020-07-30

- Fix: Setup wizard and importer in WordPress 5.0 - 5.3  [#3482](https://github.com/Automattic/sensei/pull/3482)

## 3.3.0 - 2020-07-23

- New: Importer
    - Add byte order mark removal  [#3365](https://github.com/Automattic/sensei/pull/3365)
    - Add delimiter detection  [#3364](https://github.com/Automattic/sensei/pull/3364)
    - Add import attachments validation  [#3358](https://github.com/Automattic/sensei/pull/3358)
    - Add "Import content" option to the setup wizard  [#3340](https://github.com/Automattic/sensei/pull/3340),  [#3350](https://github.com/Automattic/sensei/pull/3350)
    - Add passmark range validation  [#3342](https://github.com/Automattic/sensei/pull/3342)
    - Add title and link to the import logs  [#3403](https://github.com/Automattic/sensei/pull/3403)
    - Display importer failures and partial imports in their own sections on the Done page  [#3379](https://github.com/Automattic/sensei/pull/3379)
    - Hide import counters when nothing is imported  [#3396](https://github.com/Automattic/sensei/pull/3396)
    - Log when Sensei LMS > Import is clicked  [#3348](https://github.com/Automattic/sensei/pull/3348)
    - Log when the Continue button is clicked on the Import Content page  [#3366](https://github.com/Automattic/sensei/pull/3366)
    - Tweaks to importer Done step  [#3407](https://github.com/Automattic/sensei/pull/3407)
    - Add Import base UI  [#3191](https://github.com/Automattic/sensei/pull/3191)
    - Add a class to read a CSV file  [#3256](https://github.com/Automattic/sensei/pull/3256)
    - Add a class which manages data port jobs  [#3107](https://github.com/Automattic/sensei/pull/3107)
    - Add base data port model class and foundation for questions model  [#3259](https://github.com/Automattic/sensei/pull/3259)
    - Add create user utility  [#3221](https://github.com/Automattic/sensei/pull/3221)
    - Add data port base class  [#3099](https://github.com/Automattic/sensei/pull/3099)
    - Add data port logs REST API endpoint  [#3325](https://github.com/Automattic/sensei/pull/3325)
    - Add documentation link to first step of importer  [#3452](https://github.com/Automattic/sensei/pull/3452)
    - Add endpoint to start a data port job  [#3213](https://github.com/Automattic/sensei/pull/3213)
    - Add garbage collection to data port manager  [#3242](https://github.com/Automattic/sensei/pull/3242)
    - Add importer UI data manager  [#3306](https://github.com/Automattic/sensei/pull/3306)
    - Add importer done page  [#3305](https://github.com/Automattic/sensei/pull/3305)
    - Add importer progress step  [#3315](https://github.com/Automattic/sensei/pull/3315)
    - Add page for uploading CSV import files  [#3211](https://github.com/Automattic/sensei/pull/3211)
    - Add results to import job  [#3328](https://github.com/Automattic/sensei/pull/3328)
    - Add sample data for importer  [#3450](https://github.com/Automattic/sensei/pull/3450)
    - Add string utilities for data port  [#3289](https://github.com/Automattic/sensei/pull/3289)
    - Add support for translating strings in JavaScript files in Importer  [#3319](https://github.com/Automattic/sensei/pull/3319)
    - Add utilities to add an attachment to a post  [#3286](https://github.com/Automattic/sensei/pull/3286)
    - Add warnings in cases where the email will be ignored  [#3451](https://github.com/Automattic/sensei/pull/3451)
    - Adjust Import submenu position  [#3408](https://github.com/Automattic/sensei/pull/3408)
    - Check post type when translating import ID  [#3444](https://github.com/Automattic/sensei/pull/3444)
    - Fix CSS for upload button  [#3243](https://github.com/Automattic/sensei/pull/3243)
    - Fix more issues with question import and deal with empty categories  [#3391](https://github.com/Automattic/sensei/pull/3391)
    - Fix passmark issues  [#3432](https://github.com/Automattic/sensei/pull/3432)
    - Fix question import issues  [#3387](https://github.com/Automattic/sensei/pull/3387)
    - Implement course import task  [#3247](https://github.com/Automattic/sensei/pull/3247)
    - Implement question import task  [#3281](https://github.com/Automattic/sensei/pull/3281)
    - Add helper to allow for warnings during import  [#3351](https://github.com/Automattic/sensei/pull/3351)
    - Add taxonomy utility  [#3225](https://github.com/Automattic/sensei/pull/3225)
    - Attempt to convert encoding to UTF-8  [#3346](https://github.com/Automattic/sensei/pull/3346)
    - Cast boolean-like strings to boolean  [#3341](https://github.com/Automattic/sensei/pull/3341)
    - Delete existing files immediately on upload attempt  [#3222](https://github.com/Automattic/sensei/pull/3222)
    - Delete uploaded files  [#3336](https://github.com/Automattic/sensei/pull/3336)
    - Fix delete icon shrinking with long filenames  [#3374](https://github.com/Automattic/sensei/pull/3374)
    - Fix reducer mutation  [#3343](https://github.com/Automattic/sensei/pull/3343)
    - Link prerequisites for courses and lessons  [#3338](https://github.com/Automattic/sensei/pull/3338)
    - Log file upload errors  [#3367](https://github.com/Automattic/sensei/pull/3367)
    - Log notices instead of failing imports entirely  [#3360](https://github.com/Automattic/sensei/pull/3360)
    - Log warnings and errors  [#3381](https://github.com/Automattic/sensei/pull/3381)
    - Add data validation and default handling in base model  [#3284](https://github.com/Automattic/sensei/pull/3284)
    - Include log information in Import command  [#3317](https://github.com/Automattic/sensei/pull/3317)
    - Log when an import job completes  [#3377](https://github.com/Automattic/sensei/pull/3377)
    - No longer match files with just the same parent post  [#3393](https://github.com/Automattic/sensei/pull/3393)
    - Order import logs by content type and then by line number  [#3445](https://github.com/Automattic/sensei/pull/3445)
    - REST API: Add Importer base endpoints  [#3188](https://github.com/Automattic/sensei/pull/3188)
    - REST API: Add file upload/delete for importer  [#3199](https://github.com/Automattic/sensei/pull/3199)
    - Refactor attachment utilities to support different types of attachments  [#3290](https://github.com/Automattic/sensei/pull/3290)
    - Remove file source URL from imported media description  [#3384](https://github.com/Automattic/sensei/pull/3384)
    - Remove unnecessary component button styles in Importer  [#3316](https://github.com/Automattic/sensei/pull/3316)
    - Update Importer REST API with `{job_id}` prefix to most endpoints  [#3324](https://github.com/Automattic/sensei/pull/3324)
    - Update importer visuals  [#3406](https://github.com/Automattic/sensei/pull/3406)
    - Consolidate process_line to parent file process class  [#3291](https://github.com/Automattic/sensei/pull/3291)
    - Add lesson length validation  [#3438](https://github.com/Automattic/sensei/pull/3438)
    - Add number of questions validation  [#3449](https://github.com/Automattic/sensei/pull/3449)
    - Add validation to multiple choice questions without a right answer  [#3397](https://github.com/Automattic/sensei/pull/3397)
    - Defer warnings until post is created and add warnings on sanitization  [#3443](https://github.com/Automattic/sensei/pull/3443)
    - Fix 404 error when importing more content  [#3419](https://github.com/Automattic/sensei/pull/3419)
    - Fix error message overflowing parent container on import upload screen  [#3344](https://github.com/Automattic/sensei/pull/3344)
    - Fix import CSV with HTML content  [#3430](https://github.com/Automattic/sensei/pull/3430)
    - Fix title in the import logs  [#3423](https://github.com/Automattic/sensei/pull/3423)
    - Fix validation for question type method  [#3425](https://github.com/Automattic/sensei/pull/3425)
    - Update default right answer to true  [#3424](https://github.com/Automattic/sensei/pull/3424)
- New: Add filter to customize the query arguments used to fetch the courses a learner is enrolled in  [#3347](https://github.com/Automattic/sensei/pull/3347),  [#3369](https://github.com/Automattic/sensei/pull/3369)
- New: Log when paid extensions are selected to be installed in setup wizard  [#3398](https://github.com/Automattic/sensei/pull/3398)
- New: Log `sensei_plugin_install` on WCCOM plugin activation  [#3373](https://github.com/Automattic/sensei/pull/3373)
- Tweak: Make usage tracking pixel calls non-blocking  [#3378](https://github.com/Automattic/sensei/pull/3378)
- Tweak: Add random string to uploaded files for file upload questions  [#3359](https://github.com/Automattic/sensei/pull/3359)
- Fix: Add CSS classes for completed and preview lessons not in a module  [#3333](https://github.com/Automattic/sensei/pull/3333)
- Fix: Setup Wizard features step not being saved when nothing is selected  [#3361](https://github.com/Automattic/sensei/pull/3361)
- Fix linter issues with full-screen setup wizard code  [#3418](https://github.com/Automattic/sensei/pull/3418)

## 3.2.0 - 2020-06-30

- New: Add paid extensions to the setup wizard  [#3297](https://github.com/Automattic/sensei/pull/3297),  [#3309](https://github.com/Automattic/sensei/pull/3309),  [#3323](https://github.com/Automattic/sensei/pull/3323),  [#3322](https://github.com/Automattic/sensei/pull/3322),  [#3326](https://github.com/Automattic/sensei/pull/3326),  [#3329](https://github.com/Automattic/sensei/pull/3329),  [#3332](https://github.com/Automattic/sensei/pull/3332),  [#3331](https://github.com/Automattic/sensei/pull/3331),  [#3330](https://github.com/Automattic/sensei/pull/3330)
- New: Enable admins and lesson author to view quiz for lesson with an unmet prerequisite  [#3080](https://github.com/Automattic/sensei/pull/3080) 👏 @JuanchoPestana
- New: Deprecate sensei_the_excerpt function  [#3248](https://github.com/Automattic/sensei/pull/3248) 👏 @truongwp
- Tweak: Add "Educate students" option to Purpose step of setup wizard  [#3311](https://github.com/Automattic/sensei/pull/3311)
- Tweak: Setup Wizard: Allow purpose options to be translated  [#3320](https://github.com/Automattic/sensei/pull/3320)
- Tweak: Add "sensei" CSS class to all Sensei LMS pages  [#3275](https://github.com/Automattic/sensei/pull/3275) 👏 @hansschuijff
- Tweak: Use semantic heading structure on course results page  [#3271](https://github.com/Automattic/sensei/pull/3271) 👏 @hansschuijff
- Tweak: Add missing taxonomy labels  [#3276](https://github.com/Automattic/sensei/pull/3276) 👏 @hansschuijff
- Tweak: Fail gracefully if no extensions found in the setup wizard  [#3283](https://github.com/Automattic/sensei/pull/3283)
- Fix: Fix incorrect parameter being passed to has_term function  [#3274](https://github.com/Automattic/sensei/pull/3274) 👏 @hansschuijff

## 3.1.1 - 2020-06-05

- Fix: Clear setup wizard user data option on uninstall  [#3263](https://github.com/Automattic/sensei/pull/3263)
- Fix: Mark setup wizard as completed at the "Ready" step  [#3265](https://github.com/Automattic/sensei/pull/3265)

## 3.1.0 - 2020-06-04

- New: Setup wizard for new users -  [#3066](https://github.com/Automattic/sensei/pull/3066),  [#3085](https://github.com/Automattic/sensei/pull/3085),  [#3093](https://github.com/Automattic/sensei/pull/3093),  [#3082](https://github.com/Automattic/sensei/pull/3082),  [#3101](https://github.com/Automattic/sensei/pull/3101),  [#3103](https://github.com/Automattic/sensei/pull/3103),  [#3096](https://github.com/Automattic/sensei/pull/3096),  [#3117](https://github.com/Automattic/sensei/pull/3117),  [#3118](https://github.com/Automattic/sensei/pull/3118),  [#3119](https://github.com/Automattic/sensei/pull/3119),  [#3102](https://github.com/Automattic/sensei/pull/3102),  [#3157](https://github.com/Automattic/sensei/pull/3157),  [#3106](https://github.com/Automattic/sensei/pull/3106),  [#3121](https://github.com/Automattic/sensei/pull/3121),  [#3172](https://github.com/Automattic/sensei/pull/3172),  [#3175](https://github.com/Automattic/sensei/pull/3175),  [#3174](https://github.com/Automattic/sensei/pull/3174),  [#3176](https://github.com/Automattic/sensei/pull/3176),  [#3189](https://github.com/Automattic/sensei/pull/3189),  [#3184](https://github.com/Automattic/sensei/pull/3184),  [#3156](https://github.com/Automattic/sensei/pull/3156),  [#3181](https://github.com/Automattic/sensei/pull/3181),  [#3190](https://github.com/Automattic/sensei/pull/3190),  [#3239](https://github.com/Automattic/sensei/pull/3239),  [#3227](https://github.com/Automattic/sensei/pull/3227),  [#3198](https://github.com/Automattic/sensei/pull/3198),  [#3241](https://github.com/Automattic/sensei/pull/3241),  [#3194](https://github.com/Automattic/sensei/pull/3194),  [#3250](https://github.com/Automattic/sensei/pull/3250),  [#3246](https://github.com/Automattic/sensei/pull/3246),  [#3258](https://github.com/Automattic/sensei/pull/3258)
- New: Filter for enabling/disabling enrolment related background jobs  [#3182](https://github.com/Automattic/sensei/pull/3182)
- New: Add "Date Completed" field to the Learner Management page  [#3064](https://github.com/Automattic/sensei/pull/3064) 👏 @timwiel
- Tweak: Add Sensei and WCPC version directly in usage stats  [#3094](https://github.com/Automattic/sensei/pull/3094)
- Tweak: Remove old setup notices in favour of the new wizard  [#3155](https://github.com/Automattic/sensei/pull/3155)
- Tweak: Remove mailing list signup modal in favour of the setup wizard  [#3167](https://github.com/Automattic/sensei/pull/3167)
- Tweak: Include email classes in autoloader  [#3098](https://github.com/Automattic/sensei/pull/3098)
- Tweak: Remove mass database invalidation of enrolment results on course recalculation  [#3183](https://github.com/Automattic/sensei/pull/3183)
- Tweak: Send usage tracking data as soon as the user opts in  [#3220](https://github.com/Automattic/sensei/pull/3220)
- Tweak: Remove "Most Used" course modules  [#3224](https://github.com/Automattic/sensei/pull/3224)
- Tweak: Bump minimum WordPress version to 5.0  [#3244](https://github.com/Automattic/sensei/pull/3244)
- Tweak: Change "Lessons" to "Lesson" if there is only a single lesson in a course  [#3145](https://github.com/Automattic/sensei/pull/3145) 👏 @truongwp
- Tweak: Fix translatable string  [#3185](https://github.com/Automattic/sensei/pull/3185) 👏 @truongwp
- Fix: Update meta box header when question type of new question is changed  [#3008](https://github.com/Automattic/sensei/pull/3008)
- Fix: PHP notice for logged out user when viewing quiz of free preview lesson  [#2980](https://github.com/Automattic/sensei/pull/2980)
- Fix: PHP warning on single course page  [#3136](https://github.com/Automattic/sensei/pull/3136)
- Fix: Course dropdown width on the lessons page  [#3223](https://github.com/Automattic/sensei/pull/3136)

## 3.0.1 - 2020-04-29

- Tweak: Prevent some queries from running unnecessarily  [#3022](https://github.com/Automattic/sensei/pull/3022)
- Fix: Skip enrollment checking completely for guests  [#3086](https://github.com/Automattic/sensei/pull/3086)

## 3.0.0 - 2020-04-27

- New: Add Recalculate Enrolment data update  [#2998](https://github.com/Automattic/sensei/pull/2998)
- New: Add a filter for the course archive page URL  [#2899](https://github.com/Automattic/sensei/pull/2899)
- New: Add course enrollment indicator to learner management  [#2838](https://github.com/Automattic/sensei/pull/2838)
- New: Add course enrolment recalculation scheduler  [#2874](https://github.com/Automattic/sensei/pull/2874)
- New: Add learner management filter for manually enrolled users  [#2987](https://github.com/Automattic/sensei/pull/2987),  [#2996](https://github.com/Automattic/sensei/pull/2996)
- New: Add manual enrollment provider  [#2848](https://github.com/Automattic/sensei/pull/2848)
- New: Add missing deprecation notices  [#2974](https://github.com/Automattic/sensei/pull/2974)
- New: Enable filtering by "Enrolled Learners" and "Unenrolled Learners" in Learner Management  [#2981](https://github.com/Automattic/sensei/pull/2981),  [#2988](https://github.com/Automattic/sensei/pull/2988)
- New: Allow frontend enrolment form to be handled by other providers  [#2973](https://github.com/Automattic/sensei/pull/2973)
- New: Block access to module when not signed up  [#2952](https://github.com/Automattic/sensei/pull/2952)
- New: Block frontend manual enrollment if there is a handling provider  [#2862](https://github.com/Automattic/sensei/pull/2862)
- New: Courses must be published to have enrolment  [#2877](https://github.com/Automattic/sensei/pull/2877)
- New: Create generic enrolment job scheduler and introduce course recalculation  [#2909](https://github.com/Automattic/sensei/pull/2909)
- New: Defer triggering recalculation until the end of the request  [#2905](https://github.com/Automattic/sensei/pull/2905),  [#2914](https://github.com/Automattic/sensei/pull/2914)
- New: Deprecate Sensei_Utils::user_started_course  [#2984](https://github.com/Automattic/sensei/pull/2984)
- New: Deprecate filters used by legacy WCPC memberships  [#2979](https://github.com/Automattic/sensei/pull/2979)
- New: Filter defer enrolment check behavior  [#2942](https://github.com/Automattic/sensei/pull/2942)
- New: Introduce enrolment manager  [#2844](https://github.com/Automattic/sensei/pull/2844)
- New: Introduce provider state storage and stored status providers  [#2888](https://github.com/Automattic/sensei/pull/2888)
- New: Manually enrol student on frontend when they sign up for course  [#2854](https://github.com/Automattic/sensei/pull/2854)
- New: Pass the comment ID to the `sensei_is_legacy_enrolled` filter  [#2872](https://github.com/Automattic/sensei/pull/2872)
- New: Recalculate course enrolment when moving from published to not published  [#2990](https://github.com/Automattic/sensei/pull/2990)
- New: Recalculate when any provider version changes  [#2916](https://github.com/Automattic/sensei/pull/2916)
- New: Refactor so that providers are instantiated by their handler  [#2875](https://github.com/Automattic/sensei/pull/2875)
- New: Remove deprecated functionality for 3.0  [#2969](https://github.com/Automattic/sensei/pull/2969)
- New: Remove enrolments on user deletion  [#2898](https://github.com/Automattic/sensei/pull/2898)
- New: Remove the taxonomy sensei_learner terms and new user meta on uninstall  [#2897](https://github.com/Automattic/sensei/pull/2897)
- New: Deprecate Sensei_Lesson::user_not_taking_course_message  [#2953](https://github.com/Automattic/sensei/pull/2953),  [#2978](https://github.com/Automattic/sensei/pull/2978)
- New: Remove user meta on uninstall  [#2907](https://github.com/Automattic/sensei/pull/2907)
- New: Run plugin update checker and tasks on every request  [#2967](https://github.com/Automattic/sensei/pull/2967)
- New: Split course progress from course enrolment  [#2799](https://github.com/Automattic/sensei/pull/2799)
- New: Split scheduler to seperate classes for easier testing  [#2991](https://github.com/Automattic/sensei/pull/2991)
- New: Switch to storing enrolment results in user meta  [#2903](https://github.com/Automattic/sensei/pull/2903)
- New: Update enrolled courses queries to use learner term  [#2946](https://github.com/Automattic/sensei/pull/2946)
- New: Use Action Scheduler for enrolment async jobs when available  [#2930](https://github.com/Automattic/sensei/pull/2930)
- New: Add filter to bypass enrolment functionality  [#3011](https://github.com/Automattic/sensei/pull/3011)
- New: Allow providers to provide debug information  [#3020](https://github.com/Automattic/sensei/pull/3020)
- New: Fire actions on enrolment status change and manual enrolment status change  [#3035](https://github.com/Automattic/sensei/pull/3035)
- New: Add a filter for the batch size of the learner calculation job  [#3054](https://github.com/Automattic/sensei/pull/3054)
- New: Introduce a provider journal store  [#3027](https://github.com/Automattic/sensei/pull/3027)
- New: Add multisite support for enrolment data  [#3072](https://github.com/Automattic/sensei/pull/3072)
- New: Delete provider journal data on uninstall  [#3073](https://github.com/Automattic/sensei/pull/3073)
- Tweak: Append post status to prerequisite lesson on Lessons page  [#2853](https://github.com/Automattic/sensei/pull/2853) 👏 @JuanchoPestana
- Tweak: Change user_started_course in quiz and email code  [#2968](https://github.com/Automattic/sensei/pull/2968)
- Tweak: Add support for enrolments in bulk learner management  [#2965](https://github.com/Automattic/sensei/pull/2965)
- Tweak: Move enrolment files to own directory  [#2881](https://github.com/Automattic/sensei/pull/2881)
- Tweak: Replace usages of Sensei_Utils::user_started_course in course methods  [#2962](https://github.com/Automattic/sensei/pull/2962)
- Tweak: Replace usages of Sensei_Utils::user_started_course in templates  [#2951](https://github.com/Automattic/sensei/pull/2951)
- Tweak: Rename "Remove progress" bulk learner action  [#2985](https://github.com/Automattic/sensei/pull/2985)
- Tweak: Update usage tracking for enrolment count  [#2958](https://github.com/Automattic/sensei/pull/2958)
- Tweak: Hide "Manually Enrolled Learners" filter when not needed  [#3014](https://github.com/Automattic/sensei/pull/3014)
- Tweak: Remove logging functionality from provider state  [#3021](https://github.com/Automattic/sensei/pull/3021)
- Tweak: Refactor removal of Sensei comments from total counts  [#3009](https://github.com/Automattic/sensei/pull/3009)
- Tweak: Switch to using a handler when a learner starts taking a course  [#3000](https://github.com/Automattic/sensei/pull/3000)
- Tweak: Allow for not storing enrolment results when they don't provide enrolment  [#3028](https://github.com/Automattic/sensei/pull/3028)
- Tweak: Update course calculation job to paginate using last calculated user ID  [#3029](https://github.com/Automattic/sensei/pull/3029)
- Tweak: Don't manually enrol learners who don't have course progress  [#3030](https://github.com/Automattic/sensei/pull/3030)
- Tweak: Ensure courses share the same provider state meta per learner  [#3033](https://github.com/Automattic/sensei/pull/3033)
- Tweak: Replace "student" with "learner" in methods and frontend hook  [#3038](https://github.com/Automattic/sensei/pull/3038)
- Tweak: Use `time` instead of `microtime` function when logging enrolment results  [#3034](https://github.com/Automattic/sensei/pull/3034)
- Tweak: Switch to using a filter when storing enrolment results  [#3031](https://github.com/Automattic/sensei/pull/3031)
- Tweak: Use new strategy for looping through last user ID for learner calculation job  [#3055](https://github.com/Automattic/sensei/pull/3055)
- Tweak: Use a less filtered method for checking if user has started course  [#3065](https://github.com/Automattic/sensei/pull/3065)
- Tweak: Block enrolment checking and display notice with WCPC v1   [#3070](https://github.com/Automattic/sensei/pull/3070)
- Fix: Add clear background to TinyMCE buttons  [#2833](https://github.com/Automattic/sensei/pull/2833) 👏 @JuanchoPestana
- Fix: Add missing question ID to hidden question field  [#2871](https://github.com/Automattic/sensei/pull/2871) 👏 @traed
- Fix: Add module admin scripts on course edit page  [#2918](https://github.com/Automattic/sensei/pull/2918)
- Fix: Check sensei_user_can_register_for_course filter when My Courses Page is not set  [#2865](https://github.com/Automattic/sensei/pull/2865) 👏 @JuanchoPestana
- Fix: Enable teachers to remove / reset progress and edit the start date for a learner  [#2922](https://github.com/Automattic/sensei/pull/2922)
- Fix: Fix PHP 7.4 issues  [#2876](https://github.com/Automattic/sensei/pull/2876)
- Fix: Fix bulk editing lessons  [#2917](https://github.com/Automattic/sensei/pull/2917)
- Fix: Fix display of "Next Lesson" button in notice  [#2949](https://github.com/Automattic/sensei/pull/2949)
- Fix: Improve theme support for TwentyTwenty  [#2902](https://github.com/Automattic/sensei/pull/2902)
- Fix: Only enqueue user-dashboard.js where required  [#2882](https://github.com/Automattic/sensei/pull/2882) 👏 @coleshaw
- Fix: Fix PHP notices when viewing course archive page on certain themes  [#2911](https://github.com/Automattic/sensei/pull/2911)
- Fix: Fix JS error on Lessons page  [#2910](https://github.com/Automattic/sensei/pull/2910)
- Fix: Set lesson status to ungraded after reset  [#2919](https://github.com/Automattic/sensei/pull/2919)
- Fix: Limit triggering of sensei_single_title in single quiz the_title hook for quiz posts  [#2920](https://github.com/Automattic/sensei/pull/2920)
- Fix: Ensure lesson comments are not displayed if user isn't allowed to view lesson  [#2840](https://github.com/Automattic/sensei/pull/2840) 👏 @JuanchoPestana
- Fix: Fix lesson order for courses that are duplicated with lessons  [#2883](https://github.com/Automattic/sensei/pull/2883)
- Fix: Fix video playback for question media attachments  [#2886](https://github.com/Automattic/sensei/pull/2886)
- Fix: Add fail-safes on update version check  [#3019](https://github.com/Automattic/sensei/pull/3019)
- Fix: Fix comment template not displaying for messages  [#3024](https://github.com/Automattic/sensei/pull/3024)

## 2.4.0 - 2020-01-23

- New: Replace Twitter button with Create Course button after activation - #2850
- Fix: PHP warning for multiple choice questions - #2843
- Fix: Default settings cleared after clicking "Install Sensei LMS Pages" button - #2847
- Fix: Add transparent background to TinyMCE editor buttons for multi line questions (@JuanchoPestana) - #2855

## 2.3.0 - 2020-01-14

- New: Configure Renovate - #2805
- New: Remove Sensei_WP_Cli class - #2814
- New: Upgrade WPCS to 2.2 - #2793
- New: Add REST endpoint for messages - #2809
- New: Initial setup needed for blocks - #2810
- Tweak: Optimize JS script file loading - #2815
- Fix: Auto-grading of manually graded questions - #2816
- Fix: Add closing span tag in gap fill question template (@traed) - #2824
- Fix: Duplicated course maintaining original prerequisites - #2821
- Fix: Lesson order when duplicating course with lessons - #2827

## 2.2.1 - 2019-10-23

- New: Allow HTML in question titles - #2780
- Tweak: Optimize loading of teacher dropdown on Courses page (@mostafaabd) - #2750
- Tweak: Update extension parameters passed to Google Analytics - #2783
- Tweak: Move upsell higher in ReadMe - #2782
- Fix: No longer flush rewrite rules on course and lesson save - #2718
- Fix: Fix layout issue with Academia theme - #2773
- Fix: Remove default wrapper around single post renderer on unsupported theme - #2786
- Fix: Do not limit message comments on single post comment feeds - #2776

## 2.2.0 - 2019-09-03

- New: Add `sensei_course_meta_before_save` and `sensei_course_meta_default_save` hooks for saving course meta - #2761
- New: Add `sensei_course_show_lessons` filter to conditionally hide lessons on single course page - #2763
- New: Add `sensei_modules_title` filter for modifying the module title HTML - #2737
- New: Remove ability to add a course from the lesson page - #2758
- New: Deprecate `Sensei_Lesson::lesson_save_course` function - #2769
- New: Deprecate `Sensei_Lesson::lesson_add_course` function - #2760
- New: Add support for custom fields on REST API requests - #2747
- Tweak: Log product count when a course is published - #2755
- Tweak: Update layout of course meta on relevant pages - #2751
- Fix: Items not showing up on plugin activation via WP CLI (@kakoma) - #2766
- Fix: Ensure WooCommerce notices are displayed for unsupported themes - #2756
- Fix: Clean up modules when course teacher is changed - #2472
- Fix: Conflict with WP Ultimate Recipe plugin - #2749
- Fix: Show draft, private, future lessons on the Order Lessons page (@mostafaabd) - #2746, #2371
- Fix: PHP notice when trashing / restoring a course (@mostafaabd) - #2721
- Fix: Alignment issue on single course page when lesson has a featured image (@mostafaabd) - #2719

## 2.1.2 - 2019-06-26

- Fix: Modules not displaying in WP admin - #2742
- Fix: Multiple correct answers being removed from question editor - #2743
- Fix: Filtering of allowed CSS attributes for bulk learner actions - #2744

## 2.1.1 - 2019-06-25

- New: Bump minimum supported WordPress version to 4.9 - #2725
- Tweak: Rename event logging JS file to match file naming standards - #2730
- Tweak: Fix PHPCS issues with undefined variables - #2731
- Tweak: Remove unused variables from codebase - #2732
- Tweak: Fix PHPCS issues with global variable overrides - #2733
- Fix: Remove global cache flush - #2682
- Fix: Don't call non-static method statically - #2729
- Fix: PHP fatal error on WordPress versions < 5.0 - #2736

## 2.1.0 - 2019-06-17

- New: Add "Edit Course" button when in classic editor - #2514
- New: Add `sensei_complete_lesson_redirect_url` filter for disabling the redirect after completing a lesson - #2510
- New: Add event logging to the WordPress dashboard - #2672, #2673, #2675, #2686, #2696, #2695, #2700, #2697, #2702, #2684, #2687, #2707, #2706, #2709, #2715
- Tweak: Make queries on Analysis page more performant - #2359
- Tweak: Ensure module status does not overlap module name - #2699, #2713
- Tweak: Allow more HTML elements in Sensei notices - #2712
- Tweak: Adjust alignment of value inside progress bar - #2701
- Tweak: Adjust vertical gap for quiz tabs - #2523
- Tweak: Update lesson preview checkbox text - #2711
- Fix: Enable teachers to save course settings in the block editor - #2658
- Fix: Don't prefill fields with empty characters on the registration form - #2622
- Fix: Add label and description for a message that is related to a quiz - #2521
- Fix: PHP notice on the Order Courses page when there are no courses - #2689
- Fix: PHP notice on the Grading page when there are no submitted quizzes - #2691
- Fix: Fix SSI directive error on the quiz page - #2704
- Fix: Hide private messages from comment feed - #2726

## 2.0.1 - 2019-05-01

- New: Rename plugin to Sensei LMS - #2511, #2516
- New: Deprecate `manage_sensei_page_sensei_learners_sortable_columns` in favour of `manage_sensei-lms_page_sensei_learners_sortable_columns` - #2516
- New: Deprecate `manage_sensei_page_sensei_grading_sortable_columns` in favour of `manage_sensei-lms_page_sensei_grading_sortable_columns` - #2516
- New: Deprecate `manage_sensei_page_sensei_analysis_sortable_columns` in favour of `manage_sensei-lms_page_sensei_analysis_sortable_columns` - #2516
- Tweak: Change text domain from `sensei` to `sensei-lms` - #2511
- Tweak: Update footer text in `templates/emails/footer.php` - #2516
- Fix: Allow "Learner Admin" link to be translated - #2516

## 2.0.0 - 2019-04-02

- New: Extract all WooCommerce integration functionality
- New: Add dependency check for minimum PHP version (5.6)
- New: Email signup modal appears on initial activation
- New: Sensei Extensions page
- New: Filter `sensei_lesson_course_create_form_top` was added
- New: Filter `sensei_lesson_course_create_form_bottom` was added
- New: Action `sensei_lesson_course_created` was added
- New: Filter `sensei_course_content_has_access` was added
- New: Filter `sensei_output_course_enrolment_actions` was added
- New: Filter `sensei_lesson_show_course_signup_notice` was added
- New: Filter `sensei_lesson_course_signup_notice_message` was added
- New: Filter `sensei_lesson_course_signup_notice_level` was added
- New: Filter `sensei_quiz_course_signup_notice_message` was added
- New: Action `sensei_course_meta_inside_before` was added
- New: Action `sensei_course_meta_inside_after` was added
- New: Filter `sensei_shortcode_classes` was added
- New: Filter `sensei_widget_course_component_components_list` was added
- New: Filter `sensei_widget_course_component_get_courses_{$component} ` was added
- New: Filter `sensei_widget_course_component_no_courses_message_{$component}` was added
- New: Run plugin updates when needed - #2497
- New: Sensei_Main::sensei_woocommerce_email_course_details has been deprecated in favour of Sensei_WC::email_course_details
- New: Sensei_Main::sensei_woocommerce_reactivate_subscription has been deprecated in favour of Sensei_WC::reactivate_subscription
- New: Sensei_Main::sensei_woocommerce_subscription_ended has been deprecated in favour of Sensei_WC::end_subscription
- New: Sensei_Main::sensei_woocommerce_complete_order has been deprecated in favour of Sensei_WC::complete_order
- New: Sensei_Main::sensei_woocommerce_cancel_order has been deprecated in favour of Sensei_WC::cancel_order
- New: Sensei_Main::sensei_activate_subscription has been deprecated in favour of Sensei_WC::activate_subscription
- New: Sensei_Main::woocommerce_course_update has been deprecated in favour of Sensei_WC::course_update
- New: Sensei_Main::sensei_get_woocommerce_product_object has been deprecated in favour of Sensei_WC::get_product_object
- New: Sensei_Main::disable_guest_checkout has been deprecated in favour of Sensei_WC::disable_guest_checkout
- New: Sensei_Main::virtual_order_payment_complete has been deprecated in favour of Sensei_WC::virtual_order_payment_complete
- New: Sensei_Main::check_user_permissions has been deprecated with no replacement
- New: Sensei_Utils::sensei_is_woocommerce_present has been deprecated in favour of Sensei_WC::is_woocommerce_present
- New: Sensei_Utils::sensei_is_woocommerce_activated has been deprecated in favour of Sensei_WC::is_woocommerce_active
- New: Sensei_Utils::sensei_customer_bought_product has been deprecated in favour of Sensei_WC::has_customer_bought_product
- New: Sensei_Frontend::activate_purchased_courses has been deprecated in favour of \Sensei_WC_Paid_Courses\Courses::activate_purchased_courses
- New: Sensei_Frontend::activate_purchased_single_course has been deprecated in favour of \Sensei_WC_Paid_Courses\Courses::activate_purchased_single_course
- New: Sensei_Frontend::sensei_woocommerce_in_cart_message has been deprecated in favour of Sensei_WC::course_in_cart_message
- New: Sensei_Course::get_product_courses has been deprecated in favour of Sensei_WC_Paid_Courses\Courses::get_product_courses
- New: Sensei_Course::get_product_courses_query_args has been deprecated in favour of Sensei_WC_Paid_Courses\Courses::get_product_courses_query_args
- New: Sensei_WC_Utils::wc_version_less_than has been deprecated in favour of version_compare( WC()->version, $str, '<'  )
- New: Sensei_WC_Utils::is_product_variation has been deprecated in favour of $product->is_type( 'variation'  )
- New: Sensei_WC_Utils::get_order_id has been deprecated in favour of $order->get_id()
- New: Sensei_WC_Utils::get_product has been deprecated in favour of wc_get_product
- New: Sensei_WC_Utils::get_parent_product has been deprecated in favour of wc_get_product
- New: Sensei_WC_Utils::get_formatted_variation has been deprecated in favour of wc_get_formatted_variation
- New: Sensei_WC_Utils::get_product_variation_data has been deprecated in favour of \Sensei_WC_Utils::get_variation_data
- New: Sensei_WC_Utils::get_product_from_item has been deprecated in favour of $item->get_product()
- New: Sensei_WC_Utils::get_checkout_url has been deprecated in favour of wc_get_checkout_url
- New: sensei_wc_add_to_cart has been deprecated in favour of Sensei_WC::the_add_to_cart_button_html
- New: sensei_check_if_product_is_in_cart has been deprecated in favour of Sensei_WC::is_product_in_cart
- New: sensei_simple_course_price has been deprecated in favour of Sensei_WC_Paid_Courses\Frontend\Courses::output_course_price
- New: is_woocommerce_active has been deprecated with no replacement.
- New: sensei_check_woocommerce_version has been deprecated with no replacement
- New: The `newcourses` shortcode has been deprecated
- New: The `featuredcourses` shortcode has been deprecated
- New: The `freecourses` shortcode has been deprecated
- New: The `paidcourses` shortcode has been deprecated
- New: The `usercourses` shortcode has been deprecated
- New: The `allcourses` shortcode has been deprecated
- New: The `sensei_show_delete_course_button` hook has been deprecated and will be removed in Sensei 4.0
- New: The `sensei_merge_courses_with_parent_product` hook has been deprecated in favour of `sensei_wc_paid_courses_merge_courses_with_parent_product`
- Tweak: Access Permissions setting only controls Lesson content
- Tweak: Change text domain from `woothemes-sensei` to `sensei`
- Tweak: In `templates/content-course.php`, call Sensei_Course::get_course_loop_content_class instead of WooThemes_Sensei_Course::get_course_loop_content_class
- Tweak: In `templates/single-quiz/question-type-*.php`, call Sensei_Question::get_template_data instead of WooThemes_Sensei_Question::get_template_data
- Tweak: Update version numbers and add `ABSPATH` checks in templates - #2488
- Fix: Conflict with Jetpack shortcodes module causing Sensei videos to not display
- Fix: Bug causing the Lesson order to change on Lesson update
- Fix: Completed modules being displayed as "In Progress"
- Fix: Fix permalink/rewrite rule issue on plugin activation - #2492
- Fix: Allow for late additions to data updates - #2490
- Fix: Fix issues with coding standards

## 1.12.3 - 2019-03-27

- New: Restrict future updates for sites running a version of PHP less than 5.6 - #2502
- Fix: Conflict with Jetpack shortcodes module and Sensei videos - #2426
- Fix: Change progress status to "Completed" in modules (@tonytettinger) - #2342
- Fix: Lesson order changes when lesson is updated using Classic Editor - #2471
- Fix: Update version number on plugin update - #2503

## 1.12.2 - 2018-11-29

- New: Add usage tracking for course enrolments
- Fix: PHP warnings when ordering courses, modules or lessons
- Fix: PHP warnings on Sensei Analysis page
- Fix: PHP warning on Course Results page
- Fix: Add missing translations on Messages screen
- Fix: Enable translating "more" text on Bulk Learner Actions screen
- Fix: Show post content for paid courses on single course page
- Fix: Show course categories in WordPress 5.0
- Fix: Coding standard and security violations
- Fix: Use updated lesson data when updating quiz
- Tweak: Removed underscores from filenames

## 1.12.1 - 2018-11-01

- Fix: Comments not displaying on Lesson page on unsupported themes
- Fix: I18n problems
- Fix: AJAX requests sent too frequently
- Fix: Comments displaying where they shouldn't on some unsupported themes

## 1.12.0 - 2018-10-22

- New: Better support for non-Sensei themes
- New: Redirect to next lesson after completing a lesson
- New: Show comments for preview lessons
- New: Add `sensei_course_image_html` filter to enable altering HTML output of a course image
- Tweak: Start lesson when student first views lesson page
- Tweak: Remove _Single Course page displays_ setting
- Tweak: Minify sensei.css
- Tweak: Upgrade Select2 to latest version
- Fix: Bulk Learner Actions showing all users in the network
- Fix: JavaScript error on Lessons page

## 1.11.0 - 2018-06-13

- Fix: Fix display of all other lessons after module is removed
- Fix: Fix when force completing lessons with quizzes with questions
- Fix: Course score based on quizzes that have graded questions
- Tweak: Improve performance of fetching the learner count for usage tracking
- Tweak: Use domain as value of Tracks userid parameter
- Tweak: Delete user's messages when the user is deleted
- Tweak: Update URL and Twitter account in tweet that can be sent after activating
- New: Add filter for successful payment statuses - sensei_wc_order_statuses
- New: Add (Free) Preview label to lesson title
- New: Add usage tracking for quiz settings
- New: Add stats for number of quizzes and quiz questions
- New: Add email column to Analysis screen

## 1.10.1 - 2018-04-11

- Fix: Fix error in data updates when there are no quizzes
- Tweak: Add setting for data deletion

## 1.10.0 - 2018-04-04

- Fix: Fixes associating courses after purchase of a variable subscription product
- Fix: Allow certain HTML tags on quiz correct answer result
- Fix: ​Fix number parameter not working for [sensei_user_courses] shortcode
- Fix: Ensure answers to true / false questions are translated for students
- Fix: Fix PHP notices when viewing or adding a lesson and there are no courses
- Fix: Fix PHP 7.2.x warnings
- Fix: Fix get_class warning on PHP 7.2.x
- Fix: Check if WC_VERSION constant is defined before using it
- Fix: Fix CSS class name translation
- Fix: Hardcode DAY_IN_SECONDS to avoid continuous sending of data on old WP installations
- Fix: Fix PHP notices when purchasing non-course product as a guest
- Tweak: Remove WooThemes branding on settings page
- Tweak: On single course page, link to module only if we should
- Tweak: Conditionally link to module in lesson breadcrumb
- Tweak: Exclude modules from course navigation when not appropriate
- Tweak: Send usage data immediately when enabled through opt-in dialog
- Tweak: Clean up extended settings in Gutenberg Lesson editor
- New: Delete plugin data on uninstall
- New: Add revisions support to courses, lessons and questions
- New: Add sensei_start_course_redirect_url filter when starting course
- New: Add usage tracking for active and completed courses
- New: Show lesson tags in Gutenberg editor
- New: Add usage tracking for system info

## 1.9.20 - 2018-02-06

- New: Course navigation moves between both lessons and modules
- New: Page template for modules
- New: Filters for customizing quiz answer text and CSS class names
- New: Usage tracking
- Tweak: Remove Sensei Welcome screen
- Tweak: Remove theme check notice
- Fix: Tabbed navigation for `sensei_user_courses` shortcode
- Fix: Setting course start date for all students
- Fix: Only authorized users can view messages
- Fix: Only users with appropriate permissions can duplicate courses and lessons

## 1.9.19 - 2017-11-07

- Fix: Fix JS bugs introduced by minification process
- Add: ESLint support

## 1.9.18 - 2017-11-01

- Fix: Can't preview draft lessons in draft course
- Fix: Show Draft Lessons when Previewing course draft
- Fix: Issue with lesson excerpts
- Fix: Incorrect heading structure, Use h1s for headings on Module, Course and Lesson Order
- Add: sensei_learner_admin_get_row_data Filter. Managing table columns on Managing learners
- Fix: Learner Profiles: display correct url pattern when wp in custom folder. Learner Profiles Settings showing wrong learner URL Pattern when WP installation in custom location
- Fix: Ordering courses using "menu_order" and Courses > Order Courses doesn't work. WC: Don't construct WC_Orders
- Fix: Replace 'new WC_Order' with wc_get_order() function.
- Fix: Course not showing in My Courses if order is manually Completed
- Fix: Simplify CSS for displaying answer feedback
- Change purchase button text when a course is free. Change "purchase this course" for free products. Change "purchase this course" for free products
- Fix: Link course to a single variation of a variable WooCommerce product.
- Fix: Removed learner from Course comeback if see course single page
- Fix: Scheduled lessons not added to course page. Scheduled lessons should be added to course page
- Fix: Always show answers filter doesn't work for zero grade questions
- Fix: Single quotes in video embed HTML breaks on save
- Fix: WP_Query not getting reset on My Courses page. Reset postdata after resetting $wp_query
- Fix: Messaging issue on preview lessons. Correct the phrasing for lesson previews on Purchasable courses.
- Add: Learner Bulk Actions: Make Learner search more flexible.
- Add: filter sensei_send_message_link
- Fix: Learner Profiles can handle email-like usernames.
- Fix: Lesson: Allow Completing if Quiz has no questions
- Fix: "Complete Lesson" button missing
- Fix: Videos visible when prerequisites have not been completed
- Fix: Modification to users displayed in Analysis?
- Fix: some of the columns to be sortable for Learners in Analysis overview
- Fix: Weird html in shortcodes. Fixes excerpts in template to properly nest within paragraphs.
- Fix: New lesson: cannot assign to a module unless a draft is saved first. Lesson Admin: Populate modules on course change
- Fix: Pagination not working on course archive front page
- Fix: Featured course filter gives 404 on home page
- Fix: Multi Line Quiz responses displayed as HTML if saved and resumed
- Fix: Can't delete answer feedback
- Fix: Courses page sorting dropdown problems
- Fix: Autocomplete processing virtual orders not working
- Fix: "Free" Course filter displays courses linked to product variations
- Fix: Menu should not collapse when navigated to Messages
- Fix: Quiz Multiline as HTML is saved for teacher as plaintext-
- Fix: Sensei/WC Variable product: Start courses only when their variation is purchased
- Fix: issue preventing course author from syncing with lesson author
- Fix: Update name of WooThemes Updater plugin in notices
- Fix: Course Admin: Show the add lesson link even when the course has lessons
- Fix: Unpublished products should never be purchasable1
- Fix: issue with slashes in gap fill question answers
- Fix: Lock down wp-admin access when editing post_type quiz.
- Add: My Courses: Convert Tabs to filters
- Fix: My Courses Pagination broken
- Fix: Remove "All" filtering from settings
- Fix: Preserve lesson order w/ modules when changing course author
- And many more fixes and improvements

## 1.9.17 - 2017-09-07

- Fix Add learner to course and complete course sends two duplicate emails
- Fix Modules: WooCommerce 2.6.x Select2 compatibility fix
- Fix Incorrect heading structure: Use proper headings hierarchy for settings and data updates
- Fix Usernames with a . or @ don't work for loading user profiles (Get learner profiles by login, not slug)
- Fix Fatal Jetpack removing module taxonomy
- Add bulk recalculate completion
- Fix Modules: Teachers should only view their own modules
- Fix: Lesson image does not display on single course page [Pri] Low [Type] Bug
- Add User Courses Shortcode: Filter for conditionally displaying toggles
- Fix Memberships: Query all restricted content
- Fix Lesson image does not respect size setting
- Fix Remove trailing whitespaces from translatable strings [Pri] Low [Type] Bug
- Fix Unable to add Existing Questions to Quiz with Search Filter (PHP 7.1.4)

## 1.9.16 - 2017-07-10

- Fix - Prevent multiple emails being sent to learners already started on a course.
- Fix - Course content disappears
- Fix - Prevent certain scenarios where course start date was resetting when visiting my-courses
- Fix - Don't send confusing registration emails to users
- Fix - Learner Profile White screen
- Fix - Prevent users from buying duplicate courses
- Admins can now edit learner course start dates

## 1.9.15 - 2017-06-20

- Improve handling of get_bloginfo( ‘admin_email’ ) #1809
- Fix With [sensei_courses] short code on product page, up-sells disappear #1800
- Fix Users not being added to purchased courses again #1808 1810
- Fix Select2 (Can’t add course when editing Module)
- Better 2017 Theme Support
- Even Better Memberships Integration
- Other small bugfixes and improvements

## 1.9.14 - 2017-04-25

- Fix minor syntax in course categories widget #1786
- Add filter for permitted data update functions #1783
- WC 3.0 Compat: Fix admin course notices #1788
- WC 3.0 Compat: Ignore orphaned product variations #1789
- Make sure sensei_message save hook runs after CPT is registered #1770. Fixes Compatibility issue with Safe Redirect Manager
- Fix non-localization friendly quiz title #1768
- use $wpdb->users and $wpdb->comments instead of $wpdb->prefix on Bulk Learner Action Query

## 1.9.13 - 2017-04-07

- Add Experimental Course Admin REST API (disabled by default)
- Add Allow user to change question points text formatting
- Add support for `source` tag for videos
- Allow admin to reset quiz for single student
- Warn users when admin_email not a wp admin email
- Fix random HTML rendering into REST endpoints for course shortcodes
- Fix Fatal error when viewing Sensei course in combination with the Products Bundle plugin
- Fix Module description not displayed on course page
- Fix Login form sanitizes password
- Fix Teacher not able to see the graded quizzes
- Fix Single Course Page: Displaying "Lessons" header when there are no lessons
- Fix issue when username is an email, but user has different email [Pri] Normal [Type] Enhancement
- Fix WC >= 2.7-beta and WC 3.0 Compat in Lesson Admin
- Fix WC 3.0 Select2 conflict by Upgrading to Select2 v4
- Fix Allow Memberships cache control on start_courses_associated_with_membership
- Fix 'reset' learner bulk action not resetting all courses
- Add filter for learner profile permalink
- Fix empty CSV analysis export for learners
- Various fixes and improvements

## 1.9.12 - 2017-03-01

- Bulk Learner Actions - Initial version. You can now assign, unassign and reset multiple users on (multiple) courses.
- Compatibility with Woocommerce 2.7
- Initial support for the new user defined locale settings on wp 4.7
- Fix - Jetpack Compat: Add Beautiful Math Support on quiz feedback
- Fix - Correctly display answer feedback on quizzes
- Fix - Cancelled trial subscriptions do not retain course access after trial expires.
- Fix - Purchased course doesn’t show on learner profile
- Fix - Error when updating course as a teacher in WP 4.7
- Bugfixes, improvements

## 1.9.11 - 2017-01-10

- Improved WC Memberships integration. Added option to "Auto-start" courses belonging to memberships when activated
- Improved robustness of quiz save/submit when using random questions
- Added option to disable HTML sanitization on video embeds to support legacy video providers
- Fix - Logged out users get correct message on courses protected by memberships
- Fix - Course results <head> title displayed
- Fix - Only consider published lessons for completion percentages
- Fix - Get rid several division by zero warnings
- Fix - Display Course prerequisite message
- Fix - Ensure a teacher cannot change the product associated with a course
- Fix - correctly assign free subscription courses

## 1.9.10 - 2016-12-20

- WordPress 4.7 Compatibility release

## 1.9.9 - 2016-10-19

- Hotfix - Address possible fatal on older PHP versions

## 1.9.8 - 2016-10-18

- Fix - Removed HTML output on lesson complete message
- Fix - The video HTML tag now works properly in the video embed field
- Fix - Deleted/non-existant courses showing in course order list
- Fix - Completed lessons showing 'in progress' label
- Fix - Missing link in log in message
- Fix - Conflict with Heroic Knowledge Base
- Fix - HTML showing in grading for uploaded files
- Fix - Lessons show 'please complete the previous course'
- Fix - Conflict with Jetpack: iframe video embeds converting to shortcodes
- Fix - Parse errors on PHP <5.3
- Fix - typo in sensei_has_user_completed_prerequisite_lesson
- Fix - Conflict with Wishlist Member

## 1.9.7 - 2016-09-29

- Improve Module taxonomy labels
- Fix - Lesson doesn't appear on Course archive until ordering is resaved
- Fix - Errors when duplicating course with lessons
- Fix - Add modules-frontend.css to sensei_disable_styles filter
- Fix - Grade unanswered questions too
- Fix - Paypal "Cancel and return" causing a fatal error
- Fix - Do not create duplicate membership rules on save
- Fix - Random users not being assigned to courses after purchase
- Fix - "Quiz saved" notice not appearing
- Various security fixes

## 1.9.6 - 2016-05-05

- Fix - Fixed an issue prevent Modern Tribe's The Event Calendar from functioning properly.
- Fix - Ensure the question grade is shown inline with questions.
- Fix - Prevent a PHP notice when calling question results.
- Fix - Prevent a situation where quiz answers are revealed prior to submission.
- Fix - Use the course ID when building the permalink for the start course form.

## 1.9.5 - 2016-04-26

- Fix   - The purchase course button wasn't showing up on some courses.
- Fix   - Ensure courses are activated when order status is processing or completed.
- Fix   - Ensure course linked to a subscription is activated immediately after purchase.
- Fix   - Ensure the [sensei_course_page] shortcode displays lessons in modules.
- Fix   - Fixed a few potential fatal errors when adding a learner to a course.
- Fix   - Fixed the learner profile url when WordPress is installed in a separate folder.
- Fix   - Ensure purchased courses don't display a price on the My Courses page.
- Fix   - Remove link from lesson image on single lesson page.
- Fix   - Ensure is_sensei() returns true on module archive pages.
- Fix   - Ensure comments display on lessons for registered learners, if enabled.
- Fix   - Ensure quiz shows correct message when submitted for manual grading.
- Fix   - Ensure links in results page link to lesson pages.
- Fix   - Ensure module is not removed from course when editing module via quick edit.
- Fix   - Ensure quick editing a lesson does not remove any of its settings.
- Fix   - Fixed input ids on multiple choice questions.
- Fix   - Show appropriate message in Learner Management when a search returns no results.
- Fix   - Ensure lesson/course completion emails are not sent to learners before completion.
- Fix   - Prevent questions being deleted from original lesson, when deleting them from a duplicated lesson.
- Fix   - When updating a lesson slug, ensure the corresponding quiz slug is also updated.
- Fix   - When a lesson is permanently deleted, also delete the corresponding quiz.
- Fix   - Ensure deleted lessons are not displayed on the course page.
- Fix   - Course archive page now works if set as front page.
- Fix   - Fixed up some formatting issues on the module archive page.
- Fix   - When learner does not achieve the passmark, ensure the required passmark is displayed.
- Fix   - Ensure correct/incorrect answers are indicated, according to https://docs.woothemes.com/document/sensei-quiz-settings-flowchart/
- Tweak - Removed empty span tag from single course page.
- Tweak - Added some new hooks to the [sensei_user_courses] shortcode.
- Tweak - Removed two redundant settings from the WooCommerce settings section.
- Tweak - Course archive page now displays the number of courses per page as specified in Settings > Reading (Blog pages show at most...)
- Tweak - Improved the login message when a guest visitor views a course page.
- Tweak - Changed heading tags in admin pages to conform to WordPress standards.
- Tweak - Moved arrows after the text in course/lesson/quiz navigation.
- Tweak - Improved string formatting for a few strings to make translation easier.
- New   - Added "menu_order" as an orderby parameter on [sensei_courses] to order courses as specified in Courses > Order Courses

## 1.9.4 - 2016-04-04

- Fix   - Ensure current quiz grade is displayed when submitting autograded quizzes.
- Fix   - Ensure grading notes are always displayed when quiz is manually graded.
- Fix   - Prevent fatal error when adding learner to a course.
- Fix   - Prevent Uncaught ReferenceError when removing learner from a course.
- Fix   - Ensure questions don't change after submission when using a subset of questions in a quiz.
- Fix   - Fixed label text on search button in Learner Management.
- Fix   - Fixed incorrect WC order status.
- Fix   - Fixed an issue with is_course_purchasable()
- New   - Added support for WP QuickLaTeX plugin.
- New   - Added new 'sensei_courses_shortcode_course_data' filter in courses.
- New   - Added a 'sensei_load_default_supported_theme_wrappers' filter to allow disabling custom theme wrappers.
- Tweak - Updated support link in Plugins page.

## 1.9.3 - 2016-03-03

- Fix   - Message titles now link to the individual messages.
- Fix   - Make sure Sensei does not affect the display of blog posts.
- Fix   - Fixed a few php warnings.
- Fix   - Courses linked to product variations can now be purchased.
- Fix   - Make "Free Preview" translation ready.
- Fix   - Make sure lessons can't be viewed until the prerequisite is complete.
- Fix   - Fixed the course component widget for active and completed courses.
- Fix   - Ensure courses can't be accessed if linked to a subscription that is on-hold, cancelled, or expired.
- Tweak - Improved appearance of tabs when using [sensei_user_courses]
- New   - Added 'Configure', 'Docs', and 'Support' links to Sensei on Plugins page.

## 1.9.2 - 2016-02-11

- Fix   - Access permissions restored to the way it worked in version 1.8.8, totally removing the no-permissions templates.
- Fix   - Using $wpdb to prefix mysql queries, missed one instance in version 1.9.1
- Fix   - Use the correct wc statuses when checking if an order is acceptable.
- Fix   - Ensure wc_get_product is wrapped inside a is WooCommerce active check to ensure the function exists.
- Fix   - Avoid checking if a user is on a course if the user is not logged in, removing an error notice.
- Fix   - ensure the take course button shows up for logged in user on the no-permissions template.
- Fix   - Boolean questions should not have default values.
- Fix   - Fix up the course component widget.
- Fix   - Add the missing preview label for preview lessons that appear in modules on a single course.
- Fix   - Remove users saved data from lesson when they are removed.
- Fix   - Hide complete lesson button on lesson when the current user is not taking the lessons course.
- Fix   - Hide preview if user is already taking course.
- Fix   - Creating sensei pages now updated correctly within settings.
- Tweak - Hide add to cart if the course is already in cart.
- Tweak - Get user saved answers to return null of none was saved as false values could also be answer values.
- Tweak - Function sensei_can_user_view_lesson will now also work from the quiz template context.
- Tweak - Fix up the frontend notification system to use the notification functionality built into Sensei.
- New   - Introduce a new function for checking if a course is purchasable.

## 1.9.1 - 2016-02-07

- Fix   - Use strtolower function on hosts that do not support mb_stringtolower.
- Fix   - Use $wpdb prefix for mysql queries where it wasn't added.
- Fix   - Avoid division by zero error.
- Fix   - Do not hide embedded videos for admins and when a lesson is in preview mode.
- Fix   - The Woocommerce class should only be added to no-permissions template.
- Fix   - Ensure we check for is_object before trying to access the object property.
- Fix   - Add strings manually to allow for easier translation.
- Fix   - Fatal error on certain hosts by providing a direct path to woocommerce hooks loading file.
- Fix   - Fix the no permissions template when displaying a single course should also show lessons and possible modules.
- Fix   - Fix the preview lesson to ensure the message shown is the same as it was in 1.8.8
- Fix   - Modules status was now shows the correct status message and css class.
- Fix   - Boolean question type html shows both false and true option correctly.
- Fix   - Update POT file to ensure no error are present.
- Fix   - Single course full or excerpt settings now show up exactly as it was set.
- Fix   - Hide view quiz button from users not taking the lesson
- Fix   - Hide login message from users who are already logged in
- Fix   - WooCommerce bug where users couldn't purchases a course
- Fix   - Ensure that users manually added to a paid course still have access.
- Tweak - Remove the delete course button from my-course while still allowing developers to show it with a filter.

## 1.9 - 2016-01-02

For a list of files changed please see: https://github.com/woothemes/sensei/compare/version/1.8.9-beta-1...master#files_bucket

- New   - Templates system completely overhauled. The templates now contain almost no logic, just hooks and html. Most functionality
          is hooked in which allows for even more customization and easier update fixes. It is also easier to read. This
          also includes the use of more functions to enforce greater code reuse.
- New   - Shortcode all the things. We've heard you here and we've added more shortcodes so can worry less about templates.
          the new shortcodes are on our support documentation. The old shortcodes works fine.
- New   - Course Archives template now overtakes the selected page giving you a new filterable list of courses.
- New   - A Next lesson button for easier flow while students progress through a course.
- New   - Custom round function that can be filtered, for developers to choose the decimals.
- New   - Sensei() now officialy replaces $woothemes_sensei, which will be deprecated soon.
- New   - php classes are now auto loaded when needed instead of loading all classes for every request.
- New   - New filters for all sensei core post type for easier customization.
- New   - Allow for zero graded questions, so you can ask things questions just for fun :)
- New   - Option to send email to teacher when a learner completes a lesson
- New   - Course management metabox to Edit Course screen so you can jump to learner management and grading directly.
- New   - Renamed frontend.css to sensei.scss to avoid conflict and confusion with other plugins and themes.
- New   - Course in progress icon change so that it doesn't look like it's loading all the time.
- New   - Admin WordPress notice styles to align with core.
- New   - Support for Twentysixteen WordPress default theme
- Fix   - Integration support for WooCommerce subscriptions extension.
- Fix   - File upload popup didn't work on the single question edit screen.
- Fix   - A call to the wrong get user function.
- Fix   - Encoding issues when using strtolower fixed. The function now returns utf-8.
- Fix   - Corrected a few typos.
- Fix   - No more forced updates. You are free to do them when you choose.
- Fix   - Broken html In certain places.
- Fix   - Use slug when adding question type and not the name.
- Fix   - Moved course details outside of H2 heading.
- Fix   - Ensure that grading notes show up for gap fill questions.
- Fix   - Remove extra forward slash when loading templates.
- Fix   - Multi-line question answers not showing in admin grading.
- Fix   - File upload paths on Multi-site.
- Fix   - No more double "Quiz Quiz" on your single quiz.
- Fix   - Sensei now handles url rule flushing so you don't see 404 for Sensei specific page and post types.
- Fix   - Fix a few critical issues where we we <? instead of <?php
- Fix   - The admin url 404 after installing sensei pages.
- Tweak - Purchased courses now show up on top of the order review page in a WooCommerce notice.
- Tweak - Many functions have been deprecated in favor of better named functions.
- Tweak - We've removed all apply_filters around strings because they are redundant when string can already be alterd
          by using translation filters.
- Tweak - Deprecated all of the old template hooks in order to make place for new, more generic hooks.
- Tweak - New congratulations messaging for when a user completed a lesson that doesn't require a pass to complete.
- Tweak - Removed the CSS variations for Sensei messages.
- Tweak - Set wp-login.php as a fallback in case a my courses page is not set.
- Tweak - Sensei user capabilities now loaded plugin activation.
- Tweak - Quiz post type title can't be edited any more as it is auto generated.
- Tweak - Teachers are no redirected to admin url when they log in.
- Tweak - Show admin bar to users who can 'edit_courses'.
- Tweak - Better support for variable WooCommerce products.
- Tweak - Improved help text on video embed field.
- Tweak - A new class to handle all template related functionality.
- Tweak - Template specific hooks moved to a separate file under includes/hooks/template.php.
- Tweak - Add with_front property to rewrite rules for better url customization.
- Tweak - All internal php classes files and names have been renamed to conform to our new naming structure
          class-sensei-class-name.php, removing woothemes.
- Tweak - Sensei moved over to Select 2 completely. No more chosen. This means better mobile support.
- Tweak - All sensei scripts now load the script with the installed Sensei version appended.
- Tweak - Better class and function comments to assist developer IDE with discovery.
- Tweak - General code cleanup.

## 1.8.8 - 2015-09-09

- Fixed - Administrator does not have access to the Sensei settings on new installs
- Fixed - Drop downs not working correctly on certain admin screens.

## 1.8.7 - 2015-09-07

- Fixed - Course created email sent twice
- Fixed - Error notices on the lesson edit screen
- Fixed - WP_Widget constructors updated as within WordPress Core
- Fixed - Menu items with blank URL disappeared when the private messages functionality were disabled in settings.
- Fixed - Answers disappear after adding a question
- Fixed - Multiple Choice random order was applied by default even if the user didn't select this.
- Fixed - TextArea question answers not displaying correctly in grading.
- Fixed - Question type contains author name
- Fixed - "Other Lessons" title always shows, even with no lessons under it.
- Fixed - auto-grading not working for gap fill
- Fixed - Double forward slash when loading templates
- Fixed - Invalid prompt message when trying to leave the Add Question page
- Fixed - Installing the sensei pages, the dropdowns for both pages are still empty on the first load.
- Fixed - allow for course products to be part WooCommerce product bundles
- Fixed - removed WordPress 4.3 table list notices
- Tweak - Give the teacher the right access to Lesson comments
- Tweak - Users with teacher role will now be sent to admin after login.
- Tweak - Show admin bar to users who can 'edit_courses'

## 1.8.6 - 2015-07-15

- Fix   - Failure to load the JS in admin page because there was an extra dot in the file name.
- Fix   - a few Typos in comments and strings
- Fix   - Remove special character and replace with \' instead
- Fix   - change site_transients to normal transients and decrease the time from 30 days to 10
- Fix   - Create a fallback for round with 3 parameters. Added a check to use to use only 2 parameter for php version below 5.3
- Tweak - Output course order via php instead of relying on JS to re-order on the front-end.

## 1.8.5 - 2015-06-18

- Fix   - Save the lesson preview checkbox unchecked state as well. The bug was that unchecked boxes does not get passed via $_POST in certain cases.
- Tweak - Allow the quiz results rounding to be filtered. So you can now have decimal points shown to the user instead of the rounded up amount.
- Fix   - Module order screen now working. The fix is to remove chosen from the select box. This will be replaced by select2.
- Fix   - Update the modules order link on all courses admin page. The link went to the wrong place.
- Fix   - Add contact teacher button to lessons and quizzes.
- Fix   - Allow gap-fill questions to be auto graded again.

## 1.8.4 - 2015-06-11

- Fix   - Query post type changes for non Sensei queries. Added better checking to ensure this
          query filter only applies to teachers.
- Fix   - Performance issues on the all courses page with a large user base.
- Fix   - Performance: user ajax search timed out due to large user base. Enforce minimum string search length.
- Fix   - Update all instances of 'numberofposts' with 'posts_per_page'. Also adding and upper
        limit as '-1' (unlimited) is not good.

## 1.8.3 - 2015-06-05

- Fix   - Fixed an issue where only 10 questions could be seen in quizzes
- Tweak - Correctly pluralise the string 'Currently completed x lesson(s) of y in total'

## 1.8.2 - 2015-06-02

- Fix   - Sensei quiz settings not retrieved correctly
- Fix   - Modules management course selection Javascript error causing courses to be unselectable
- Fix   - Error notices showing up on the front end for non logged in users

## 1.8.1 - 2015-05-28

- Tweak - Teacher role have to submit courses for review by default
- Tweak - Language file updated.
- Fix   - Internal calls to WooCommerce active checking function changed to static

## 1.8.0 - 2015-05-28

- New   - Update the teacher role to give teachers more control. Also added further notifications for course ownership changes.
- New   - Sensei Modules extensions merged into Sensei Core
- New   - Disable notification on a per course basis
- New   - Bulk and Quick Edit support for some of the lessons properties
- New   - Bulk Editing for some of the lessons properties
- New   - Global Sensei instance function `Sensei()`
- New   - Plugin install welcome screen
- Tweak - Increase min width of find learner drop down and remove inline styles.
- Tweak - Dummy content updated
- Tweak - Within some hooked functions, use the values passed in instead of global values.
- Tweak - Code Documentation updates and a few refactor a few functions.
- Tweak - Set quiz type taxonomy public setting to false to avoid it showing up in theme bread crumbs
- Fix   - Remove error notices on on the analysis screen
- Fix   - Bug where lessons can’t be removed from module
- Fix   - Minify all scripts to avoid javascript errors
- Fix   - Remove error notices on on the grading screen
- Fix   - Errors on the single course front-end page
- Fix   - Remove error notices on on the grading screen
- Fix   - All questions were not available in he existing questions section
- Fix   - Remove error notice on the single quiz page when trying to access lessons status
- Fix   - Avoid errors fro the learner when the course has not yet been saved
- Fix   - Learner Management and Analysis page pagination
- Fix   - Correctly escape multi-line question answers to ensure they don’t save with and extra new line character after every list item.
- Fix   - fix bug where the selected module was not showing for none admin users
- Fix   - Fix error on the WP login page

## 1.7.7 - 2015-04-23

- Fix - Security loophole introduce in WP. Escaping all urls.

## 1.7.6 - 2015-04-20

- Fix - Missing learner management search missing.
- Fix - Remove learner from course popup message missing.

## 1.7.5 - 2015-04-14

- Fix - Admin learner course completion no longer redirects to the lesson screen.
- Tweak - Use update meta instead of add meta for the quiz lesson meta
- Fix - Edit single question answer feedback is now saved the first time
- Tweak - Update language strings to use the main Sensei language string and update the POT file
- Tweak - Remove the default comment emails sent when using the sensei messages feature
- Tweak - Remove the purchase notice if a user is already taking a course
- Fix - Upload file button error on the single question edit screen.
- Fix - Maintain quiz question order when duplicating a lesson.
- Fix - Grading feedback now shows up for automatic and manual graded quizzes.
- Tweak - Use home_url instead of site_url
- Fix - Show user confirmation when the private message was sent
- Tweak - The single course register button links to my courses and not WP register screen.

## 1.7.4 - 2015-03-31

- Fix - Allow users to save their answers uniquely for questions shared across multiple quizzes
- Fix - Bug that blocked teacher to access the admin area when WooCommerce is active
- Tweak - Allow contact teach button to be localized
- Fix - Sensei start lesson function error if the data argument is not passed in.

## 1.7.3 - 2015-03-03

- Tweak - Removing Canvas them wrappers (this will now be handled in the theme directly)
- Tweak - Decapitalising 'Total Grade' text on Course Results page
- Tweak - Moving course logic from frontend class to its proper place in the course class
- Tweak - Moving lesson logic from frontend class to its proper place in the lesson class
- Tweak - Removing `comments_rss_item_filter` as it is no longer needed - this should improve frontend performace
- Tweak - Making sure the `sensei_user_course_end` action is only fired at the correct times
- Tweak - Ensuring consistency on course prerequisite checks
- Tweak - Ensuring consistency of course completion checks
- Tweak - Adding sanity checks to ensure that data received by `sensei_check_for_activity()` is always valid
- Tweak - Removing 'by' from course author link
- Fix - Removing HTML container element for course video when no video is present
- Fix - Making sure gap fill questions work even if you leave out the pre- and/or post-gap text
- Fix - Allowing 'Analysis' menu label and page heading to be translated
- Fix - Ensures course component widget works correctly when 'limit' is not set

## 1.7.2 - 2015-02-17

- Update - Adding database table indexes to comments table to improve performance
- Update - Adding manual update to allow removal of legacy Sensei activity data
- Tweak - Removing localisation from empty strings
- Tweak - Adding localistion to Sensei menu items
- Fix - Preventing completion of first lesson from marking entire course as complete
- Fix - Fixing Course Component widget item loading and display
- Fix - Preventing 'Delete Course' button from displaying on purchased courses
- Fix - Fixing occassional javascript error when editing lesson quizzes
- Fix - Reinstating filter that allowed certificate link on single course page
- Fix - Ensuring duplicated lessons use the correct timezone for publication date
- Fix - Ensuring only valid unragded quizzes are displayed in the grading dashboard
- Fix - Standardising excerpt display on lesson tag archives
- Fix - Making sure that lesson preview title text only runs in correct locations
- Fix - Restores lesson statuses on lesson archive page
- Fix - Updating for WooCommerce 2.3 compatibility

## 1.7.1 - 2015-02-04

- Tweak - Improving detection for whether critical updates are needed or not
- Tweak - Updating code for WooCommerce 2.2+
- Fix - Fixing display of 'Delete Course' button on paid courses

## 1.7.0 - 2015-02-02

- New - Completely new data structure that improves site performace and fixes numerous data-consistency issues
- New - Multiple choice questions can now accept multiple correct answers
- New - LaTeX support for all questions, answers and answer notes (requires Jetpack's Beautiful Math module)
- New - Gap Fill questions can now be auto-graded
- New - New 'Question Description' field to give your learners more clarity
- New - Loads of new actions and filters to make Sensei more extensible

## 1.6.9 - 2014-12-18

- Fix - Fixing Chosen drop down menus on course edit screen
- Fix - Fixing Analysis export to select entire data set
- Fix - Fixing quiz duplication when lessons are published
- Fix - Ensure question edit screen shows the quizzes that the question is used in
- Fix - Updating theme integration guide link in unsupported theme notice
- Tweak - Adding view links after saving courses & lessons
- Tweak - Updating 'course' post type so that it shows in the admin bar

## 1.6.8 - 2014-12-05

- Fix   - The “View Quiz” button now shows up for all lessons that have a quiz attached.
- Fix   - When a learner submits a quiz the email will now be sent to the course teacher and not the admin account.
- Fix   - The login|logout now accounts for all languages where login/logout each can be multiple words.

## 1.6.7 - 2014-11-06

- Fix   - Lesson complete class assigned to the right lessons.
- Fix   - Remove pagination from the courses widget component
- Fix   - Remove php notice on accessing lesson_completion and using undefined variables
- Tweak - Prevents sending email when a lesson has no quiz questions.
- Tweak - Update the quiz author when to be the same as the lesson author.
- Tweak - Add existing filter to the sign up message
- Tweak - Hide reset and view quiz button for non logged in users and Update the access settings text to reflect the correct logic

## 1.6.6 - 2014-10-09

- Fix - bug where in certain cases the next lesson doesn't become available when the pre requisite is completed
- Fix - Resolved php notices and warnings
- Fix - My Courses login issues on certain server setup
- Fix - Move misplaced div tag on the login page
- Fix - Prevent sending a quiz graded email when there is no quiz
- Tweak - Replaces back links with a single breadcrumb trail.
- Tweak - Ensure contact teacher button still shows on lessons.
- Tweak - Standardises sensei_view_lesson_quiz_text filter
- Tweak - Allow users to login with email
- Tweak - When updating a quiz title, update the quiz title immediately without the need for a page refresh
- Tweak - Makes private message textarea full width
- New - More hooks and filters
- New - Sensei theme notices for theme unsupported themes and a link to the documentation theme page

## 1.6.5 - 2014-08-21

- Fix - Fixing chosen input width in New Course panel in Lesson edit screen
- Fix - Adds a missing sensei_please_purchase_course_text filter
- Fix - Fixes a potential error in the page titles of course results and learner profiles
- Fix - Fixes an issue with search when Sensei is activated
- Tweak - Adds a 'send-message-button' class to the contact teacher button
- Tweak - Prevents Sensei settings from being deleted when the plugin is uninstalled

## 1.6.4 - 2014-08-13

- Fix - Fixing chosen input width in Category Questions tab

## 1.6.3 - 2014-08-05

- New - Single class to manage Sensei notices
- Tweak - Adding missing text filter
- Tweak - Adding 'button' class to course results link for more consistent display
- Tweak - Significant improvements to Sensei activity functions that improve all-round performance (kudos David Page)
- Tweak - Retaining learner question & quiz data when they are removed from lessons & courses due to expired/cancelled subscriptions/orders
- Tweak - Improving function that checks for user course completion (kudos David Page)
- Fix - Improving registration to make sure duplicate email addresses are not allowed
- Fix - Improving login and registration redirects and feedback notices
- Fix - Ensuring that grades do not show over 100% for any courses or lessons
- Fix - Fixing Analysis export to fetch correct page
- Fix - Fixing PHP Strict Standards warnings
- Fix - Fixing course price display
- Fix - Stopping question duplication when lessons are duplicated
- Fix - Fixing occasional 404 errors after after clicking 'more' link on course overview page
- Fix - Fixing excerpts on course archive pages
- Template files modified: /templates/loop-course.php, /templates/single-course/course-lessons.php

## 1.6.2 - 2014-07-28

- New - Adding WPML compatibility
- Tweak - Hide the 'You have already added this Course to your cart' message if the user is enrolled in the course and add a new 'hide_sensei_woocommerce_in_cart_message' filter to remove the notice completely
- Fix - Fixing incorrect text domain references
- Fix - Fixing chosen input widths
- Fix - Fixing learner profile URL when site URL is different from home URL
- Fix - Fixing question order meta data update (kudos David Page)
- Fix - Fixing answer ID generation on quiz edit panel to ensure all answer types will be displayed (kudos David Page)
- Fix - Fixing answer feedback saving and generation (kudos David Page)
- Fix - Fixing ordering of questions loaded from existing questions (kudos David Page)
- Fix - Failed logins now redirect back to the frontend login page
- Fix - Ensuring all frontend Sensei messages are correctly styled
- Fix - Fixing Analysis export to export correct page

## 1.6.1 - 2014-06-30

- Fix - Making sure Learner Management page shows for users with 'manage_sensei_grades' capability
- Fix - Fixing bug that prevented all email notifications from being deactivated
- Fix - Fixing lesson order in single lesson next/previous lesson navigation
- Fix - Ensuring that modules display on single course page for courses with prerequisites
- Fix - Making sure learner management user search works without WooCommerce activated

## 1.6.0 - 2014-06-25

- New - Comprehensive question bank functionality including question categories, the ability to re-use questions in multiple quizzes and bulk adding questions from a category
- New - New Learner Management dashboard that allows administrators to add/remove learners to/from any course or lesson
- New - Secure private message functionality that allows learners to contact and interact with course & lesson teachers
- New - Email notifications for learner and teacher activity
- New - Adding 'manage_sensei' and 'manage_sensei_grades' capabilities to govern how users interact with dashboard pages
- New - New 'Teacher' role that has the 'manage_sensei_grades' capability giving access to Grading, Analysis & Learner Management
- New - Ability to set preview lessons that are available before starting a course
- New - Ability to reorder all courses & lessons via drag-and-drop
- New - Moving global quiz settings into new quiz settings panel to enable them to be configured per quiz
- New - Grading notes for auto-graded questions
- New - Sensei menu item control moved to Appearance > Menus for fine-grained control over menu items
- Tweak - Displaying lesson excerpt on single lesson page for unregistered users
- Tweak - Converting all Less files to SASS
- Fix - Making sure that courses are no longer available after subscription ends
- Fix - Ensuring that only valid users are shown in the grading dashboard
- Fix - Fixing filter for quiz results link

## 1.5.4 - 2014-03-21

- Fix - Fixing content formatting in TwentyTwelve theme
- Fix - Fixing warning when number of questions to show is 1
- Fix - Start a Course link on My Courses page now links to custom Course Archive page if specified in settings.
- Fix - Fixing Javascript error on lesson and course edit pages
- Fix - Fixing file upload question type when no other types are included in the quiz
- Fix - Ensuring that all ungraded quizzes show up in the grading dashboard

## 1.5.3 - 2014-03-21

- New - Moving global Sensei functions to new file to make them accessible everywhere
- Fix - Fixing CSS conflict with WooCommerce forms
- Fix - Fixing login form on My Courses page
- Fix - Making sure multiple choice answers that contain apostrophes wil always work on any server
- Fix - Fixing occasional WooCommerce error on single course pages

## 1.5.2 - 2014-03-12

- New - Adding support for RTL languages in the dashboard
- New - Minifying all Javascript files and enabling SCRIPT_DEBUG script expansion
- Tweak - Updating Chosen Javascript & CSS libraries to v1.1
- Tweak - Auto-scrolling to complete lesson button after button has been clicked
- Fix - Fixing all queries so that other page queries are not affected by Sensei settings

## 1.5.1 - 2014-03-07

- New - Adding utility function to check if a user has completed a lesson
- Fix - Fixing PHP errors on My Courses page
- Fix - Fixing course progress bars on My Courses page

## 1.5.0 - 2014-03-04

- New - Completely refactored the quiz edit panel
- New - Adding 'File Upload' question type
- New - Adding ability to manually order quiz questions via drag-and-drop along with option to randomly order questions
- New - Adding option to have any number of multiple choice answers
- New - Adding ability to manually order multiple choice answers via drag-and-drop along with option to randomly order answers
- New - Adding function to upload media files to quiz questions
- New - Adding option to only show a limited number of quiz questions to each student
- Tweak - Displaying grading notes on graded quizzes if quiz reset is disabled
- Fix - Hiding grading notes with Javascript to cater for disabled CSS
- New - Adding ablity to duplicate courses
- New - Adding option to filter lessons by course in the dashboard
- New - Adding pagination to My Courses page
- Fix - Fixing number of courses shown on My Course page
- Fix - Preventing purchased courses with incomplete prerequisites from being completed
- Fix - Removing 'view results' link when no quizzes are present
- Fix - Removing prerequisite course field when a prerequisite course is moved to trash
- New - Adding ablity to duplicate lessons
- New - Adding 'lesson tags' taxonomy for broader grouping of lessons
- Tweak - Removing numbering from lessons and adding filter to put them back
- Tweak - Moving videos to top of lessons and adding filter to choose the video location
- Fix - Making lesson archive display consistent in all areas
- Fix - Removing PHP notices from lesson archives
- Fix - Removing prerequisite lesson field when a prerequisite lesson is moved to trash
- New - Enhancing grading dashboard to allow filtering by grade status
- Tweak - Improving user search in grading dashboard
- New - Adding courses and lessons to the 'At a Glance' dashboard widget
- Tweak - Removing unused images and CSS
- Tweak - Updating deprecated functions for WooCommerce 2.1
- Fix - Fixing adding variable product course to cart
- Tweak - Switching profile URLs to use 'nicename' instead of 'username'
- New - Adding registration form to login page
- Tweak - Improving styling of login page
- Fix - Fixing image display in widgets
- New - Adding is_sensei() conditional to check for Sensei pages
- New - Adding 'sensei' class to body tag for all Sensei pages
- New - Adding update to clean up Sensei activity for deleted users
- Fix - Ensuring that user Sensei activity is deleted when a user is deleted from WordPress

## 1.4.9 - 2014-02-13

- Fix - Fixing WooCommerce taxonomy templates when Sensei is active
- Fix - Fixing bug that was causing grades to be higher than 100%
- Fix - Clearing floats on Sensei front-end messages
- Fix - Making sure chosen drop down is always used on course product selection

## 1.4.8 - 2014-01-23

- New - Allowing access to courses when WooCommerce order is marked as processing
- Fix - Ensuring that all purchased courses show up on the My Courses page
- Fix - Fixing auto grading when all user's answers are incorrect
- Fix - IE compatibility fix for course completion
- Fix - Fixing update script so that all questions are not reset to multiple choice on update
- Fix - Fixing sanitisation of answer input fields
- Fix - Fixing saving of true/false questions
- Fix - Ensuring that new questions do not contain data from previous question added
- Fix - Preventing completed courses widget from showing all courses if none are completed
- Tweak - General CSS tweaks

## 1.4.7 - 2013-12-13

- Fix - Fixing add question function for WordPress 3.8+

## 1.4.6 - 2013-12-12

- New - Adding Chosen Ajax library
- Tweak - Updating Chosen CSS
- Tweak - Moving nav arrows from markup to CSS (affects pagination wrappers)
- Tweak - Removing absolute positioning from course action buttons on single course page
- Tweak - Updating admin icons and styling for WordPress 3.8
- Tweak - Allowing Sensei updater to run functions from extensions
- Tweak - Preventing grouped products from being selected as course products
- Fix - Removing PHP warnings
- Fix - Fixing course excerpt display on Courses page

## 1.4.5 - 2013-12-04

- /classes/class-woothemes-sensei-frontend.php - Ensures course content displays when user starts taking course
- /classes/class-woothemes-sensei-course.php,
   /classes/class-woothemes-sensei-frontend.php,
   /templates/loop-course.php,
   /widgets/widget-woothemes-sensei-category-courses.php,
   /widgets/widget-woothemes-sensei-course-component.php - Fixes lesson count when lesson and course have different authors
- /assets/js/lesson-metadata.js - Fixes display of course name when adding from within a lesson
- /classes/class-woothemes-sensei-frontend.php - Adds course link to order thank you and details pages
- /classes/class-woothemes-sensei-course.php,
   /classes/class-woothemes-sensei-frontend.php,
   /classes/class-woothemes-sensei-learner-profiles.php,
   /templates/loop-course.php,
   /templates/loop-lesson.php,
   /templates/single-course/course-lessons.php - Removes empty 'fix' divs
- /widgets/widget-woothemes-sensei-lesson-component.php,
   /classes/class-woothemes-sensei-course.php,
   /classes/class-woothemes-sensei-frontend.php - Markup fixes
- /classes/class-woothemes-sensei-learner-profiles.php - Enables auto paragraphs on learner profile description
- /assets/css/frontend.css,
   /classes/class-woothemes-sensei-course-results.php,
   /classes/class-woothemes-sensei-course.php,
   /classes/class-woothemes-sensei-frontend.php,
   /inc/woothemes-sensei-template.php,
   /templates/content-no-permissions.php,
   /templates/single-quiz/quiz-questions.php,
   /templates/woocommerce/add-to-cart.php - Adds unique classes on sensei messages
- /classes/class-woothemes-sensei-analysis-course.php,
   /classes/class-woothemes-sensei-analysis-lesson.php,
   /classes/class-woothemes-sensei-analysis-overview.php,
   /classes/class-woothemes-sensei-analysis.php,
   /classes/class-woothemes-sensei-grading-main.php - Uses display name instead of username in Analysis/Grading sections
- /templates/content-single-lesson.php,
   /classes/class-woothemes-sensei-frontend.php - Ensures lesson comments are only visible to users with access
- /classes/class-woothemes-sensei.php,
   /classes/class-woothemes-sensei-frontend.php - Ensures courses are deactivated when an order is refunded/cancelled
- /classes/class-woothemes-sensei-course.php,
   /classes/class-woothemes-sensei-lesson.php,
   /classes/class-woothemes-sensei-settings-api.php,
   /classes/class-woothemes-sensei-settings.php,
   /classes/class-woothemes-sensei.php - Registers new image sizes for Sensei images, with hard crop setting
- /classes/class-woothemes-sensei.php - Ensures guest checkout is disabled if Sensei products in cart
- /classes/class-woothemes-sensei-frontend.php - Only display excerpts for lessons/courses in search results

## 1.4.4 - 2013-11-20

- /templates/course-results/course-info.php - Updating markup for course results page
- /templates/learner-profile/learner-info.php - Updating markup for learner profile page
- /templates/content-single-lesson.php - Fixing lesson prerequisite check
- /widgets/widget-woothemes-sensei-course-component.php - Fixing 'My Active Courses' & 'Featured Courses' widgets
- /classes/class-woothemes-sensei-course-results.php - Updating markup & fixing rewrite rules for course results page
- /classes/class-woothemes-sensei-learner-profiles.php - Updating markup & fixing rewrite rules for learner profiles
- /classes/class-woothemes-sensei-course.php - Updating markup for lesson quiz meta buttons & fixing limits on course queries
- /classes/class-woothemes-sensei-frontend.php - Updating markup, fixing lesson prerequisites & adding function to check for completed lessons
- /classes/class-woothemes-sensei-utils.php - Updating button markup
- /classes/class-woothemes-sensei.php - Fixing rewrite rules for learner profiles and course results page & improving guest checkout check

## 1.4.3 - 2013-10-24

- /assets/css/frontend.css - Responsive layout tweaks & fixes.
- /classes/class-woothemes-sensei-frontend.php - fixes missing complete course hook, fixes missing lesson complete message and reset lesson buttons, fixes 'delete course' function.
- /classes/class-woothemes-sensei-utils.php - fixes lesson complete message on single lesson page if there are no quiz questions.

## 1.4.2 - 2013-10-15

- /assets/js/lesson-metadata.js - fixes post issues with multiline and boolean add and edit ajax functions.
- /templates/woocommerce/add-to-cart.php - fixes adding of variable subscription courses to cart.
- /templates/single-quiz/question_type-boolean.php,
   /templates/single-quiz/question_type-essay-paste.php,
   /templates/single-quiz/question_type-gap-fill.php,
   /templates/single-quiz/question_type-multi-line.php,
   /templates/single-quiz/question_type-multiple-choice.php,
   /templates/single-quiz/question_type-single-line.php - sets default grade of 1 to every question for cases where no grade is set
- /classes/class-woothemes-sensei-admin.php - fixes issue where sensei comment types were visible to authors in the backend.
- /classes/class-woothemes-sensei-grading.php - fixes layout issue in the grading admin interface where the footer was misplaced.
- /classes/class-woothemes-sensei-updates.php - fixes array sort method error notices on the updates screen.
- /classes/class-woothemes-sensei-utils.php - fixes quiz submitted link translation string on single lesson page & auto grading issue when some questions are left unanswered.
- /classes/class-woothemes-sensei-frontend.php - fixes object instantiation PHP warning, and issue on quiz button incorrectly displaying on single lesson page.
- /classes/class-woothemes-sensei-lesson.php - fixes save function to handle changes made in lessons ajax.

## 1.4.1 - 2013-10-10

- /templates/single-course/course-lessons.php - Fixing typo in lessons template
- /assets/css/frontend.less,
   /assets/css/frontend.css - Updating layout of lesson buttons
- /classes/class-woothemes-sensei-frontend.php - Ensuring 'complete lesson' and 'take quiz' buttons display correctly
- /classes/class-woothemes-sensei-lesson.php - Fixing adding of multiple choice questions
- /classes/class-woothemes-sensei-course.php - Changing 'chapters' to 'lessons' for consistency
- /classes/class-woothemes-sensei-list-table.php - fixes user query and pagination for scaling
- /classes/class-woothemes-sensei-analysis-overview.php,
   /classes/class-woothemes-sensei-analysis-course.php,
   /classes/class-woothemes-sensei-analysis-lesson.php,
   /classes/class-woothemes-sensei-grading.php,
   /classes/class-woothemes-sensei-grading-main.php - fixes user query for scaling

## 1.4.0 - 2013-09-24

- /templates/learner-profile.php,
   /templates/learner-profile/learner-info.php - Adding new templates to display learner profiles
- /templates/course-results.php,
   /templates/course-results/course-info.php,
   /templates/course-results/course-lessons.php - Adding new templates to display course results page
- /templates/user/my-courses.php - Moving courses output to global function
- /templates/loop-course.php - Changing 'Lectures' to 'Lessons' & adding text filters
- /templates/single-quiz/quiz-questions.php - Moving logic for quiz grade message into utility function
- /templates/single-quiz/question_type-boolean.php,
   /templates/single-quiz/question_type-essay-paste.php,
   /templates/single-quiz/question_type-gap-fill.php,
   /templates/single-quiz/question_type-multi-line.php,
   /templates/single-quiz/question_type-multiple-choice.php,
   /templates/single-quiz/question_type-single-line.php - Adding question grade & answer notes
- /templates/content-single-course.php,
   /templates/content-single-lesson.php - Allowing site admins to view all content
- /templates/woocommerce/add-to-cart.php - Fixing purchase course button to work with variable subscriptions
- /inc/woothemes-sensei-template.php - Adding sensei_all_access() function and text filters
- /widget/widget-woothemes-sensei-category-courses.php,
   /widget/widget-woothemes-sensei-course-component.php - Changing 'Lectures' to 'Lessons' & adding text filters
- /classes/class-woothemes-sensei.php - Loading new classes for learner profiles & course results and adding function to dynamically disable guest checkout
- /classes/class-woothemes-sensei-admin.php - Restructuring Sensei admin menu items & fixing menu highlighting
- /classes/class-woothemes-sensei-posttypes.php - Adding author field to post types, filters on labels and slugs, fixing a few translatable strings & restructuring admin menu items
- /classes/class-woothemes-sensei-updates.php - Adding admin menu page for manual updates, restructuring links, refactoring updates panel & adding new update function
- /classes/class-woothemes-sensei-course.php - Adding load_user_courses_content() to generate active/completed course data per user
- /classes/class-woothemes-sensei-settings.php - Adding Learner Profiles settings & updating descriptions for other settings
- /classes/class-woothemes-sensei-settings-api.php - Fixing HTML labels on settings page, updating settings CSS version
- /classes/class-woothemes-sensei-learner-profiles.php - New class for managing learner profiles
- /classes/class-woothemes-sensei-course-results.php - New class for managing course results pages
- /classes/class-woothemes-sensei-analysis.php,
   /classes/class-woothemes-sensei-analysis-overview.php,
   /classes/class-woothemes-sensei-analysis-course.php,
   /classes/class-woothemes-sensei-analysis-lesson.php,
   /classes/class-woothemes-sensei-analysis-user-profile.php,
   /classes/class-woothemes-sensei-grading-main.php - Updating layout, restructuring links, adding text filters, adding column array filters, enhancing user queries & removing CSS from non-Sensei pages
- /classes/class-woothemes-sensei-utils.php - Numerous changes for grade points, moving a number of operations into functions and some minor bug fixes
- /classes/class-woothemes-sensei-frontend.php - Adding extra info for question processing, fixing up lesson prerequisite functions, adding text filters & moving some operations into utility functions
- /classes/class-woothemes-sensei-list-table.php - Fixing sorting of primary columns
- /classes/class-woothemes-sensei-grading.php,
   /classes/class-woothemes-sensei-grading-user-quiz.php,
   /classes/class-woothemes-sensei-lesson.php,
   /assets/js/grading-general.js,
   /assets/js/lesson-metadata.js,
   /assets/js/general-frontend.js, - Adding grade points and answer notes per question, restructuring links, adding text filters, updating quiz add/edit UI, fixing PHP notices & removing CSS from non-Sensei pages
- /assets/css/settings.less,
   /assets/css/settings.css - Adding styles for new grading features, updating quiz add/edit UI & updating general admin UI styling
- /assets/css/frontend.less,
   /assets/css/frontend.css - Adding styles for learner profiles & course results
- /assets/css/global.css - Updating styles for admin menu items
- /assets/css/activation.less,
   /assets/css/activation.css - Adding stylesheet to handle Sensei setup notice
- /assets/images/woothemes.png - Updating WooThemes logo

## 1.3.7 - 2013-07-05

- /assets/js/lesson-metadata.js - fix for javascript removing special chars in ajax posting for question types
- /classes/class-woothemes-sensei-updates.php - adds hidden manual updates screen in /wp-admin/options-general.php?page=sensei-manual-update-hidden-page

## 1.3.6 - 2013-07-01

- /templates/single-quiz/question_type-multiple-choice.php - handles apostrophes in answers bugfix
- /classes/class-woothemes-sensei-utils.php - handles apostrophes in answers bugfix

## 1.3.5 - 2013-06-10

- /assets/js/lesson-metadata.js - fix for true false question type selector problems
- /classes/class-woothemes-sensei-lesson.php - fix for true false question type selector problems
- /widgets/widget-woothemes-sensei-course-component.php - fix for featured courses output

## 1.3.4 - 2013-06-04

- /assets/css/global.css - updated styling for grading notices
- /classes/class-woothemes-sensei.php,
   /classes/class-woothemes-sensei-analysis-course.php,
   /classes/class-woothemes-sensei-analysis-lesson.php,
   /classes/class-woothemes-sensei-frontend.php - fixes bug in completed courses logic
- /classes/class-woothemes-sensei-admin.php - updated backend stylesheets
- /classes/class-woothemes-sensei-grading.php - added grading success messages in the sensei_grading_notices action
- /templates/single-course/course-lessons.php,
   /templates/user/my-courses.php - fixes bug in completed courses logic

## 1.3.3 - 2013-05-30

- /assets/css/frontend.css - fixes Twenty Twelve CSS conflict for lesson navigation next and previous links
- /classes/class-woothemes-sensei.php - adds support for more WC subscriptions actions

## 1.3.2 - 2013-05-28

- /classes/class-woothemes-sensei-grading.php,
   /classes/class-woothemes-sensei-utils.php - Fixing grading bug that was causing grade totals to not be saved, added function for lesson_quiz_questions()
- /classes/class-woothemes-sensei-frontend.php - Adding logic to fix message for lessons without quiz questions that have been completed
- /classes/class-woothemes-sensei-updates.php - Adding security checks on update script loops
- /templates/single-quiz/quiz-questions.php - Improving check for manual/auto quiz grading on front-end

## 1.3.1 - 2013-05-27

- /classes/class-woothemes-sensei-grading.php - Fixing bug that prevented non-admin users from being graded

## 1.3.0 - 2013-05-23

- /assets/css/global.css,
   /assets/css/frontend.css,
   /assets/css/settings.css - question types and grading styling
- /assets/images/icon_right_32.png,
   /assets/images/icon_wrong_32.png - grading icons
- /assets/js/grading-general.js - New grading javascript logic
- /assets/js/lesson-metadata.js - question types modifications
- /classes/class-woothemes-sensei-analysis.php,
   /classes/class-woothemes-sensei-analysis-course.php,
   /classes/class-woothemes-sensei-analysis-lesson.php,
   /classes/class-woothemes-sensei-analysis-overview.php - question types and grading modifications
- /classes/class-woothemes-sensei-frontend.php - question types and grading modifications
- /classes/class-woothemes-sensei-lesson.php - question types modifications
- /classes/class-woothemes-sensei-grading.php - New grading functionality, main class
- /classes/class-woothemes-sensei-grading-main.php - New grading functionality, overview screen
- /classes/class-woothemes-sensei-grading-user-profile.php - New grading functionality, grade a quiz screen
- /classes/class-woothemes-sensei-posttypes.php - question types modifications
- /classes/class-woothemes-sensei-question.php - question types modifications
- /classes/class-woothemes-sensei-quiz.php - question types modifications
- /classes/class-woothemes-sensei-updates.php - upgrade functions for questions types and grading data
- /classes/class-woothemes-sensei-utils.php - question types and grading helper functions
- /classes/class-woothemes-sensei.php - added access permissions filter, woocommerce paypal hook fix
- /inc/woothemes-sensei-template.php - questions types and grading helper functions
- /templates/single-quiz/question_type-boolean.php,
   /templates/single-quiz/question_type-essay_paste.php,
   /templates/single-quiz/question_type-gap-fill.php,
   /templates/single-quiz/question_type-multi-line.php,
   /templates/single-quiz/question_type-multiple-choice.php,
   /templates/single-quiz/question_type-single-line.php,
   /templates/single-quiz/quiz-questions.php - question types modifications, added new template files for new question types

## 1.2.6 - 2013-05-16

- /classes/class-woothemes-sensei-frontend.php - modified the course signup link to handle purchaseable courses
- /classes/class-woothemes-sensei.php - permissions modification for user access
- /templates/content-single-lesson.php - added notice for course signup if the user doesnt have access
- /templates/single-quiz/quiz-questions.php - disabled quiz fields for when user is not taking the course, and added signup notice

## 1.2.5 - 2013-05-13

- /classes/class-woothemes-sensei-frontend.php - fix for access permissions settings on Lessons and Quiz pages
- /templates/content-single-lesson.php - fix for access permissions settings on Lessons page

## 1.2.4 - 2013-05-08

- /widgets/widget-woothemes-sensei-course-component.php - fix for no active and completed courses in widget

## 1.2.3 - 2013-04-30

- /assets/css/frontend.css - fix for FontAwesome issue in Firefox
- /classes/class-woothemes-sensei-frontend.php - warning message fix

## 1.2.2 - 2013-04-29

- /classes/class-woothemes-sensei-frontend.php - fix for get_comments_number filter
- /classes/class-woothemes-sensei.php - fix for access permissions settings
- /templates/single-lesson/lesson-meta.php - fix for access permissions settings

## 1.2.1 - 2013-04-25

- /assets/js/lesson-metadata.js - security improvements
- /classes/class-woothemes-sensei-admin.php,
    /classes/class-woothemes-sensei-analysis.php,
    /classes/class-woothemes-sensei-lesson.php,
    /classes/class-woothemes-sensei.php - security improvements
- /classes/class-woothemes-sensei-course.php - security improvements, fix for course image output, fix for trashed variations
- /classes/class-woothemes-sensei-frontend.php - improved template hooks, fix for WC add to cart url
- /classes/class-woothemes-sensei-posttypes.php - fix for lesson_comments setting
- /classes/class-woothemes-sensei-utils.php - fix for comments_clauses filter
- /inc/woothemes-sensei-template.php - improved template hooks
- /templates/archive-course.php,
    /templates/archive-lesson.php,
    /templates/loop-lesson.php,
    /templates/no-permissions.php,
    /templates/single-course.php,
    /templates/single-course/course-meta.php,
    /templates/single-lesson.php,
    /templates/single-lesson/lesson-meta.php,
    /templates/single-quiz.php,
    /templates/single-quiz/quiz-questions.php,
    /templates/taxonomy-course-category.php,
    /templates/user/my-courses.php - improved template hooks
- /templates/wrappers/wrapper-end.php,
    /templates/wrappers/wrapper-start.php - added support for Canvas styling
- /widgets/widget-woothemes-sensei-category-courses.php,
    /widgets/widget-woothemes-sensei-course-categories.php,
    /widgets/widget-woothemes-sensei-course-component.php,
    /widgets/widget-woothemes-sensei-lesson-component.php - security improvements

## 1.2.0 - 2013-04-04

- /assets/css/settings.css - styling changes for Analysis
- /assets/js/lesson-metadata.js - fix for media upload button not firing
- /classes/class-woothemes-sensei.php - refactor for loading of classes, added subscriptions hooks, added logic for woocommerce order cancellation
- /classes/class-woothemes-sensei-analysis.php - refactor to use List Tables class, output functions for new Analysis areas, added export capability for Analysis tables
- /classes/class-woothemes-sensei-analysis-course.php - new class to handle Analysis Courses
- /classes/class-woothemes-sensei-analysis-lesson.php - new class to handle Analysis Lessons
- /classes/class-woothemes-sensei-analysis-overview.php - new class to handle Analysis Overview
- /classes/class-woothemes-sensei-analysis-user-profile.php - new class to handle Analysis User Overview
- /classes/class-woothemes-sensei-course.php - add filter for course placeholder image, handle product_variation post type
- /classes/class-woothemes-sensei-frontend.php - new hooks for frontend use, filters for custom nav menu items
- /classes/class-woothemes-sensei-lesson.php - add filter for lesson placeholder image
- /classes/class-woothemes-sensei-list-table.php - new list table class to handle data tables
- /classes/class-woothemes-sensei-posttypes.php - refactor for loading of classes
- /classes/class-woothemes-sensei-utils.php - refactor for removing of comment_clause filters for checking sensei activity
- /inc/woothemes-sensei-template.php - removes old functions, recent comments widget fix
- /templates/archive-course.php - fixes shortcode issues on paginated pages
- /templates/content-no-permissions.php - uses new frontend hooks
- /templates/content-single-course.php - uses new frontend hooks
- /templates/content-single-lesson.php - uses new frontend hooks
- /templates/content-loop-course.php - uses new frontend hooks
- /templates/content-loop-lesson.php - uses new frontend hooks
- /templates/content-taxonomy-course-category.php - uses new frontend hooks
- /templates/woocommerce/add-to-cart.php - handle product_variation post type
- /widgets/widget-woothemes-sensei-category-courses.php - uses new frontend hooks
- /widgets/widget-woothemes-sensei-course-component.php - uses new frontend hooks
- /widgets/widget-woothemes-sensei-lesson-component.php - uses new frontend hooks

## 1.1.2 - 2013-03-11

- classes/class-woothemes-sensei-utils.php - fix to check if product was purchased
- classes/class-woothemes-sensei.php - fix for checking product id

## 1.1.1 - 2013-03-10

- classes/class-woothemes-sensei.php - modify function call to use global object, added new product object function
- inc/woothemes-sensei-template.php - modify function call to use global object, removed old function
- templates/woocommerce/add-to-cart.php - modify function call to use global object

## 1.1.0 - 2013-03-04

- assets/chosen/* - added chosen library for improved dropdown usability
- assets/css/frontend.css - frontend course category meta styling
- assets/css/global.css - admin chosen drop down styling, admin add question button styling
- assets/js/lesson-metadata.js - js to set select inputs to use chosen library for Courses, Lessons, and Settings admin area, allow HTML in question title and answers
- classes/class-woothemes-sensei-admin.php - register chosen styles
- classes/class-woothemes-sensei-course.php - added Course Category column to the write panel and quick edit, added permissions for WooCommerce adding of products, modified course query for paid and free products to check the actual prices of the products
- classes/class-woothemes-sensei-frontend.php - logic for additional lesson pagination, additional hooks for frontend output
- classes/class-woothemes-sensei-lesson.php - added Course Category to Ajax Course add, register chosen js, added permissions for adding of Courses, modified quiz_questions query to take additional params for ordering
- classes/class-woothemes-sensei-posttypes.php - register new Course Category taxonomy for Courses post type, add menu item for Course Category write panel, added meta caps for future post types permissions
- classes/class-woothemes-sensei-settings.php - added option to randomize the quiz questions
- classes/class-woothemes-sensei-updates.php - new Class for running Sensei upgrade functions
- classes/class-woothemes-sensei.php - register new widgets, refactor widget register logic, logic for Course Category taxonomy archive templater loader, added upgrade function actions, added WC functions for virtual products
- inc/woothemes-sensei-template.php - added function to get the next and previous lessons, added Course Category archive header logic to template function
- templates/content-no-permissions.php - pagination modification
- templates/content-single-course.php - pagination modification, course access permissions fix, added frontend hooks for output
- templates/content-single-lesson.php - pagination modification, added frontend hooks for output
- templates/content-single-quiz.php - pagination modification, added frontend hooks for output
- templates/loop-course.php - added Course Category meta info
- templates/taxonomy-course-category.php - template file for new Course Category taxonomy terms
- templates/single-lesson/lesson-meta.php - conditional for message output
- templates/single-quiz/quiz-questions.php - logic for randomizing quiz questions
- templates/user/my-courses.php - added Course Category meta info
- templates/wrappers/pagination-lesson.php - added file for lesson pagination
- templates/wrappers/pagination-posts.php - added file for default pagination
- templates/wrappers/pagination-quiz.php - added file for quiz lesson pagination
- widgets/widget-woothemes-sensei-category-courses.php - added file to display Courses from a specific Category
- widgets/widget-woothemes-sensei-course-categories.php - added file to display a list of Course Categories

## 1.0.11 - 2013-02-25

- /assets/css/frontend.css - Adjusted 'Complete Lesson' button margin on the Lessons page.
- /templates/single-lesson/lesson-meta.php - fixed missing class on Take the Lesson Quiz link.
- /templates/single-quiz/quiz-questions.php - fixed logic bug for showing the current status of the completed quiz.

## 1.0.10 - 2013-02-14

- /assets/css/frontend.css - Fixed buttons and shortcodes styles that were conflicting with theme styles.

## 1.0.9 - 2013-02-12

- templates/content-single-lesson.php - Fix for access permissions setting logic
- templates/single-lesson/lesson-mega.php - Fix for access permissions setting logic
- templates/single-quiz/quiz-questions.php - Fix for access permissions setting logic

## 1.0.8 - 2013-02-11

- assets/js/lesson-metadata.js - added htmlentities function for backend validation on raw HTML input
- classes/class-woothemes-sensei-utils.php - validation for not logged in user data
- classes/class-woothemes-sensei-settings.php - rewording of setting for access permissions
- classes/* - stripped trailing spaces
- templates/* - stripped trailing spaces

## 1.0.7 - 2013-02-08

- templates/content-single-lesson.php - Fixing bug that prevented the lesson content from showing for some users

## 1.0.6 - 2013-02-06

- templates/content-single-lesson.php - Ensuring lesson content does not show until pre-requisite lesson is completed

## 1.0.5 - 2013-01-31

- /inc/woo-functions.php - Add WooCommerce checks. Fixes compatibility when running Sensei and WooCommerce extensions, regarding updates.
- /inc/class-wc-dependencies.php - ADDED.

## 1.0.4 - 2013-01-30

- classes/class-woothemes-sensei-course.php - added function to find product courses
- classes/class-woothemes-sensei-utils.php - moved customer bought product function check
- classes/class-woothemes-sensei.php - added WooCommerce hooks for completing a payment to add the Course to a users My Courses page
- inc/woothemes-sensei-template.php - moved customer bought product function check
- templates/user/my-courses.php - updated call to customer bought product function
- templates/woocommerce/add-to-cart.php - updated call to customer bought product function

## 1.0.3 - 2013-01-29

- classes/class-woothemes-sensei-settings-api.php - fix for conflict with Groups plugin
- classes/class-woothemes-sensei-settings.php - options to switch of js and css, and options for complete lesson button, reset lesson button, and to remove No Quiz warning message
- classes/class-woothemes-sensei-frontend.php - logic to switch of js and css
- templates/content-single-course.php - removed woocommerce after hook to prevent related products conflict
- templates/single-lesson/lesson-meta.php - added complete lesson and reset lesson buttons functions
- inc/woothemes-sensei-template.php - output functions for complete lesson and reset lesson buttons

## 1.0.2 - 2013-01-25

- templates/archive-course.php - fixed localization typo
- templates/archive-lesson.php - fixed localization typo
- classes/class-woothemes-sensei-settings.php - fixed woocommerce detection code
- classes/class-woothemes-sensei-utils.php - fixed woocommerce detection code
- classes/class-woothemes-sensei-posttypes.php - added filters for content type slugs

## 1.0.1 - 2013-01-22

- /inc/woo-functions.php - Include the woo-functions file, for integration with the WooThemes Updater plugin.
- /classes/class-woothemes-sensei.php - Add "public" scope to methods missing a scope. Remove call to old plugin updater code.
- /classes/class-woothemes-plugin-updater.php - REMOVED.
- /lang/woothemes-sensei-en_GB.po - Added language translation file.
- /lang/woothemes-sensei-xx_XX.pot - Added language translation file template.
- woothemes-sensei.php - Include the woo-functions file.

## 1.0.0 - 2013-01-21

- First release. Woo!
