= [4.25.0] 2025-08-25 =

* Feature - Added `wp-json/learndash/v1/docs/openapi` REST API endpoint.
* Feature - Added a new PayPal Checkout integration.
* Tweak - Added PayPal Checkout to the setup wizard.
* Tweak - Added a message on the setup page about the deprecation of the PayPal Standard gateway.
* Tweak - Added a warning about the deprecation of the PayPal Standard gateway.
* Tweak - Renamed "PayPal" to "PayPal Standard" in the payment gateways list.
* Tweak - Added actions: `learndash_dialog_closed`, `learndash_dialog_opened`, `learndash_payment_subscription_after_failure_{$gateway_name}`, `learndash_payment_subscription_after_success_{$gateway_name}`, `learndash_payment_subscription_before_process_{$gateway_name}`, `learndash_payment_subscription_check_due_payments`, `learndash_payment_subscription_process_due_payment`, `learndash_profile_add_card_form_content_loaded`, `learndash_profile_add_card_form_content`, `learndash_profile_add_card_submit`, `learndash_shortcode_profile_before_template`.
* Tweak - Added filters: `learndash_handle_remove_card_{$gateway_id}`, `learndash_model_product_final_price`, `learndash_model_user_cards`, `learndash_payment_subscription_batch_size`, `learndash_payment_subscription_check_end_timestamp`, `learndash_payment_subscription_check_start_timestamp`, `learndash_payment_subscription_daily_check_start_timestamp`, `learndash_payment_subscription_process_with_gateway_{$gateway_name}`, `learndash_paypal_checkout_client_data`, `learndash_rest_endpoints`, `learndash_rest_openapi_documentation`, `learndash_rest_v1_common_schemas`, `learndash_settings_payments_show_paypal_standard`, `learndash_stripe_is_on_payments_setting_page`, `learndash_subscription_payment_method_information`.
* Tweak - Updated templates: `src/admin_views/modules/payments/orders/edit/items/index.php`, `themes/ld30/templates/shortcodes/profile.php`.

= [4.24.0] 2025-08-12 =

* Feature - Added the new Modern Lesson and Topic Pages, which can be toggled under LearnDash > Settings > General -> Appearance -> Course Page.
* Fix - Resolved an issue where if a Lesson was marked as a Sample Lesson and was set to be available in the future, the content could be visible for not logged in users.
* Tweak - Removed duplicated "has access" check for Modern Course and Group pages.
* Tweak - Updated the styling for Alerts on Modern Course and Group pages.
* Tweak - Updated the styling of the Progress Bar for Modern Course and Group pages.
* Tweak - Added filters: `learndash_ld30_modern_lesson_show_header`, `learndash_ld30_modern_topic_show_header`, `learndash_mapper_models_step_map`, `learndash_mark_complete_input_button_html`, `learndash_mark_complete_timer_html`, `learndash_model_assignment_can_be_deleted`, `learndash_model_assignment_delete_url`, `learndash_model_assignment_download_url`, `learndash_model_assignment_is_approved`, `learndash_model_assignment_points_awarded`, `learndash_model_assignment_related_step`, `learndash_model_assignment_uploaded_file_name`, `learndash_model_course_is_complete`, `learndash_model_course_is_linear_progression_enabled`, `learndash_model_group_last_activity`, `learndash_model_settings`, `learndash_model_topic_lesson`, `learndash_model_{$post_type_key}_is_content_visible`, `learndash_model_{$post_type_key}_is_video_watched`, `learndash_model_{$post_type_key}_next_step`, `learndash_model_{$post_type_key}_parent_step`, `learndash_model_{$post_type_key}_previous_step`, `learndash_model_{$post_type_key}_requires_watching_video_after_sub_steps`, `learndash_model_{$post_type_key}_requires_watching_video_before_sub_steps`, `learndash_model_{$post_type_key}_user_has_access`, `learndash_model_{$this->get_post_type_key()}_approved_assignments_number`, `learndash_model_{$this->get_post_type_key()}_assignment_points_maximum`, `learndash_model_{$this->get_post_type_key()}_assignment_upload_limit_size`, `learndash_model_{$this->get_post_type_key()}_assignments_number`, `learndash_model_{$this->get_post_type_key()}_assignments`, `learndash_model_{$this->get_post_type_key()}_has_assignment_points_enabled`, `learndash_model_{$this->get_post_type_key()}_last_activity`, `learndash_model_{$this->get_post_type_key()}_maximum_assignments_number`, `learndash_model_{$this->get_post_type_key()}_requires_assignments`, `learndash_model_{$this->get_post_type_key()}_submittable_assignments_number`, `learndash_model_{$this->get_post_type_key()}_supported_assignment_file_mime_types`, `learndash_model_{$this->get_post_type_key()}_supported_assignment_file_types`, `learndash_model_{$this->get_post_type_key()}_topics`, `learndash_progression_bar_is_complete`, `learndash_progression_bar_should_show`, `learndash_template_alert_action_type`, `learndash_template_alert_button_icon`, `learndash_template_alert_icon`, `learndash_template_alert_id`, `learndash_template_alert_link_target`, `learndash_template_alert_link_text`, `learndash_template_alert_link_url`, `learndash_template_alert_message`, `learndash_template_alert_type`, `learndash_template_breadcrumb_id`, `learndash_template_breadcrumb_is_last`, `learndash_template_breadcrumb_label`, `learndash_template_breadcrumb_url`, `learndash_template_progression_step_back_to_course_label`, `learndash_template_progression_step_back_to_course_url`, `learndash_template_progression_step_is_course_completed`, `learndash_template_progression_step_is_just_completed`, `learndash_template_progression_step_next_label`, `learndash_template_progression_step_next_short_label`, `learndash_template_progression_step_next_url`, `learndash_template_progression_step_previous_incomplete_step`, `learndash_template_progression_step_previous_label`, `learndash_template_progression_step_previous_short_label`, `learndash_template_progression_step_previous_url`, `learndash_template_progression_step_show_next`, `learndash_template_tab_content`, `learndash_template_tab_icon`, `learndash_template_tab_id`, `learndash_template_tab_is_first`, `learndash_template_tab_label`, `learndash_template_tab_order`, `learndash_template_tab_template`, `learndash_template_tabs_sorted`, `learndash_template_views_alerts`, `learndash_template_views_breadcrumbs`, `learndash_template_views_course_alerts`, `learndash_template_views_course_progress_bar`, `learndash_template_views_group_alerts`, `learndash_template_views_group_progress_bar`, `learndash_template_views_lesson_alerts`, `learndash_template_views_lesson_breadcrumbs`, `learndash_template_views_lesson_progress_bar`, `learndash_template_views_lesson_tabs`, `learndash_template_views_topic_alerts`, `learndash_template_views_topic_breadcrumbs`, `learndash_template_views_topic_progress_bar`, `learndash_template_views_topic_tabs`.
* Tweak - Deprecated templates: `themes/ld30/templates/modern/course/alerts/certificate.php`, `themes/ld30/templates/modern/course/alerts/index.php`, `themes/ld30/templates/modern/course/alerts/progress.php`.
* Tweak - Updated filters: `learndash_ld30_modern_course_show_header`, `learndash_ld30_modern_group_show_header`.
* Tweak - Updated functions: `learndash_course_get_step_completion_data`, `learndash_mark_complete`, `learndash_process_mark_incomplete`.
* Tweak - Updated templates: `themes/ld30/templates/modern/course/accordion/final-quizzes/heading.php`, `themes/ld30/templates/modern/course/accordion/final-quizzes/index.php`, `themes/ld30/templates/modern/course/accordion/final-quizzes/quiz/attributes/index.php`, `themes/ld30/templates/modern/course/accordion/final-quizzes/quiz/index.php`, `themes/ld30/templates/modern/course/accordion/final-quizzes/quiz/title.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/attributes/topics.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/quizzes/quiz/attributes/index.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/index.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/attributes/index.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/index.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/title.php`, `themes/ld30/templates/modern/course/alerts/certificate.php`, `themes/ld30/templates/modern/course/alerts/progress.php`, `themes/ld30/templates/modern/course/header.php`, `themes/ld30/templates/modern/group/alerts/certificate.php`, `themes/ld30/templates/modern/group/alerts/progress.php`, `themes/ld30/templates/modern/group/header.php`.

= [4.23.2.1] 2025-07-24 =

* Fix - Resolved an issue where the "View" and "Trash" links for Orders were missing from the Orders listing screen.

= [4.23.2] =

* Fix - Resolved an issue where "Fill in the blanks" question answer result indicators would overlap when the question contained multiple answer inputs across multiple lines.
* Fix - Fixed an issue where the Quiz Question Overview Table would horizontally scroll, instead of wrapping. This was a bug introduced in 4.22.1.
* Fix - Fixed an issue where fluid width elements added to the Quiz question container would not expand to fit as expected.
* Fix - Fixed the incorrect closing `<section>` tag for the  `themes/ld30/templates/modern/course/enrollment/pricing/closed/with-price.php` template.
* Fix - Resolved a JS error on non-Focus Mode pages that prevented some functionality from working correctly.
* Fix - Resolved an issue where "Add New" buttons were missing in the backend for some content types created by addons.
* Fix - Resolved an issue where an "Add New" button was incorrectly shown for Orders and Assignments in the backend.
* Tweak - Replaced references of "ProPanel" with "Reports" in the LearnDash Shortcode picker in the classic editor.
* Tweak - Added `[ld_reports]` as an alias for the `[ld_propanel]` shortcode.
* Tweak - Added easter egg.
* Tweak - Updated templates: `themes/ld30/templates/modern/course/enrollment/pricing/closed/with-price.php`.
* Tweak - Added filters: `learndash_module_extras_disabled`.

= [4.23.1] =

* Fix - Removed the redundant Chart Data call on the Reports Dashboard.
* Fix - Fixed an issue where the date filters didn't work for "Reports" widgets.
* Fix - Fixed non-available Group Administration admin page for group leaders and administrators with zero managed groups.
* Fix - Fixed an issue where the "Reports" admin menu tab item appeared on several unrelated LearnDash admin pages.
* Fix - Fixed duplicate report file name when downloading LearnDash report using different set of filters.
* Tweak - Added new "Display Reports" setting to toggle on and off the Reports Dashboard, to optionally use instead of the `LEARNDASH_MODULE_REPORTS_DISABLED` constant or `learndash_module_reports_disabled` filter.
* Tweak - Added more constants on the Support page.

= [4.23.0] =

* Feature - Added "Presenter Mode" to the Focus Mode options.

= [4.22.1] =

* Fix - Fixed an issue with the Quiz Builder not maintaining the Question Points when certain elements were updated.
* Fix - Fixed an issue where cloned courses would retain the original Stripe product ID and customers would get enrolled in both courses.
* Fix - Fixed an issue where some admin pages were not working correctly when the "LearnDash LMS" menu item was translated.
* Fix - Fixed an issue where LearnDash menu items were hidden behind the header when the menu was collapsed.
* Fix - Updated broken links on the Setup page.
* Fix - Fixed deprecation notice on quiz saving with PHP 8.2+.
* Tweak - Improved styles for tabs on a quiz edit screen.
* Tweak - Updated invalid license notice message.
* Tweak - Improved accessibility to the Quiz Question Overview Table.
* Tweak - Improved accessibility on the Download Certificate button.
* Tweak - Updated required WP version to 6.6.
* Tweak - Removed the last LearnDash WP version support policy notice.

= [4.22.0] =

* Feature - Added the new Modern Group Page, which can be toggled under LearnDash > Settings > General.
* Tweak - Added filters: `learndash_course_grid_template_post_shortcode_attributes`, `learndash_ld30_modern_group_course_grid_args`, `learndash_ld30_modern_group_show_header`, `learndash_ld30_modern_group_show_sidebar`, `learndash_model_group_award_certificate`, `learndash_model_group_certificate_link`, `learndash_model_group_courses_number`, `learndash_model_group_courses`, `learndash_model_group_has_awards`, `learndash_model_group_product`, `learndash_payment_button_label_group`, `learndash_template_views_group_tabs`.
* Tweak - Updated filters: `learndash_course_grid_template_post_attributes`.
* Tweak - Updated templates: `includes/course-grid/templates/cards/grid-2/layout.php`, `includes/course-grid/templates/cards/grid-3/layout.php`, `includes/course-grid/templates/cards/list-1/layout.php`.
* Tweak - Consolidating buttons on the admin list pages.

= [4.21.5] =

* Fix - Resolved a conflict with the Paid Memberships Pro plugin related to the Stripe library.
* Tweak - Added LearnDash onboarding wizard trigger for StellarSites users.
* Tweak - Added a setting to enable/disable automatic progression for courses (disabled by default), which can be toggled under LearnDash > Courses > Settings.
* Tweak - Hid the LearnDash Licensing page on StellarSites if the LearnDash license is valid.
* Tweak - Changed setup link in the LearnDash fresh install pointer to link to the LearnDash onboarding wizard.
* Tweak - Improved accessibility for the Focus Mode sidebar keyboard navigation.
* Tweak - Improved accessibility for the focus mode sidebar trigger on mobile.
* Tweak - Improved accessibility for focus mode sidebar navigation.
* Tweak - Improved accessibility for Course step status icons.
* Tweak - Improved the accessibility of the Focus Mode Sidebar on desktop and mobile.
* Tweak - Improved the accessibility of the mark complete button.
* Tweak - Improved accessibility for alerts shown on page load.
* Tweak - Improved accessibility for the expand and collapse buttons for the Profile shortcode.
* Tweak - Increased cache time for failed licensing server requests to avoid potential site slowdowns.
* Tweak - Prevented future LearnDash core updates if the WP version is lower than 6.6.
* Tweak - Improved accessibility for "Fill in the blank" questions.
* Tweak - Added a "skip to content" link for Focus Mode.
* Tweak - Added filters: `learndash_location_is_learndash_admin_page`, `learndash_module_licensing_failed_response_cache_time`, `learndash_setup_wizard_status`.
* Tweak - Updated filters: `learndash_step_completed_redirect_immediately`.
* Tweak - Updated functions: `learndash_30_show_step_completed_alert`, `learndash_mark_complete_process`.
* Tweak - Updated templates: `themes/ld30/templates/focus/header.php`, `themes/ld30/templates/focus/index.php`, `themes/ld30/templates/focus/sidebar.php`, `themes/ld30/templates/modules/alert.php`, `themes/ld30/templates/modules/infobar.php`, `themes/ld30/templates/quiz/partials/show_quiz_questions_box.php`, `themes/ld30/templates/shortcodes/profile/course-row.php`, `themes/ld30/templates/widgets/navigation/lesson-row.php`, `themes/ld30/templates/widgets/navigation/quiz-row.php`, `themes/ld30/templates/widgets/navigation/topic-row.php`.

= [4.21.4] =

* Feature - Merged course grid addon feature to LearnDash core.
* Fix - Fixed an issue where the [ld_course_list] shortcode/block could not return courses that have not been started yet.
* Fix - Fixed the square outline on the quiz radio input for themes that override it.
* Fix - Fixed a PHP deprecation notice on LearnDash profile page and single group page.
* Fix - Resolved an issue where the Focus Sidebar could not be scrolled properly.
* Fix - Resolved a potential fatal error if an invalid color were saved under LearnDash LMS -> Settings.
* Fix - Resolved an issue where Quizzes couldn't be started with the Legacy Theme active.
* Fix - Lesson status message now consistently appears on repeated page loads.
* Tweak - Added a filter to allow redirecting the user immediately after a course step is completed.
* Tweak - Added a warning message to the matrix sort answer question type in the backend about accessibility compliance.
* Tweak - Improved accessibility for quiz Free Choice result label.
* Tweak - Improved accessibility for quiz Matrix result label.
* Tweak - Improved accessibility for quiz Fill in Blank result label.
* Tweak - Improved accessibility for quiz free match result label.
* Tweak - Improved accessibility for quiz single match result label.
* Tweak - Added support for WP auto-updates.
* Tweak - Updated the default custom label for the "Continue" button from "Click Here to Continue" to "Continue".
* Tweak - Improved the RazorPay library to avoid PHP warnings related to the `REQUESTS_SILENCE_PSR0_DEPRECATIONS` constant.
* Tweak - Increased YouTube playlist importer request timeout.
* Tweak - Improved accessibility for correct and incorrect answers for the "sorting" choice question type.
* Tweak - Added move icon for matrix sorting question answers to improve accessibility.
* Tweak - Improved accessibility for expand and collapse button labels.
* Tweak - Improved accessibility for quiz question inputs.
* Tweak - Reverted the Quiz Questions template for the Legacy theme to avoid conflicts with the LD30 theme.
* Tweak - Added LearnDash Legacy template end of support notice.
* Tweak - Added actions: `learndash_course_grid_assets_loaded`, `learndash_course_grid_custom_css`.
* Tweak - Added filters: `learndash_block_markers_shortcode_atts`, `learndash_course_grid_author`, `learndash_course_grid_block_editor_image_sizes`, `learndash_course_grid_block_editor_orderby`, `learndash_course_grid_block_editor_paginations`, `learndash_course_grid_block_editor_post_types`, `learndash_course_grid_block_editor_taxonomies`, `learndash_course_grid_cards`, `learndash_course_grid_card`, `learndash_course_grid_class`, `learndash_course_grid_course_class`, `learndash_course_grid_currency`, `learndash_course_grid_custom_button_link`, `learndash_course_grid_custom_button_text`, `learndash_course_grid_default_shortcode_attributes`, `learndash_course_grid_editor_fields`, `learndash_course_grid_excluded_post_types`, `learndash_course_grid_filter_default_shortcode_attributes`, `learndash_course_grid_html_output`, `learndash_course_grid_post_extra_course_grids`, `learndash_course_grid_post_types`, `learndash_course_grid_price_text_format`, `learndash_course_grid_price`, `learndash_course_grid_query_args`, `learndash_course_grid_reviews`, `learndash_course_grid_ribbon_class`, `learndash_course_grid_ribbon_text`, `learndash_course_grid_skins`, `learndash_course_grid_skin`, `learndash_course_grid_template_post_attributes`, `learndash_course_grid_template`, `learndash_module_course_grid_disabled`, `learndash_step_completed_redirect_immediately`, `learndash_step_completed_transient_expiration_time`.
* Tweak - Added functions: `learndash_course_grid_count_students`, `learndash_course_grid_is_learndash_post_type`, `learndash_course_grid_load_card_template`, `learndash_course_grid_load_inline_script_locale_data`, `learndash_course_grid_load_resources`, `learndash_course_grid_prepare_template_post_attributes`.
* Tweak - Deprecated functions: `LearnDash\course_grid`.
* Tweak - Updated templates: `themes/ld30/templates/course.php`, `themes/ld30/templates/group.php`, `themes/ld30/templates/group/partials/course-row.php`, `themes/ld30/templates/lesson/listing.php`, `themes/ld30/templates/lesson/partials/row.php`, `themes/ld30/templates/modern/course/accordion/header/expand-all.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/expand-button.php`, `themes/ld30/templates/shortcodes/course_content_shortcode.php`, `themes/ld30/templates/shortcodes/groups/row.php`, `themes/ld30/templates/shortcodes/profile.php`, `themes/ld30/templates/shortcodes/profile/course-row.php`, `themes/ld30/templates/widgets/course-navigation.php`, `themes/ld30/templates/widgets/navigation/lesson-row.php`, `themes/legacy/templates/quiz/partials/show_quiz_questions_box.php`.

= [4.21.3] =

* Fix - Resolved an issue where if the entered license key was expired, other LearnDash plugins could not be installed properly.
* Tweak - Improved accessibility for input fields in the Setup Wizard.
* Tweak - Improved accessibility for breadcrumbs.
* Tweak - Improved accessibility for course page focus mode side navigation when zoomed in.
* Tweak - Improved accessibility for headings on registration page.
* Tweak - Improved accessibility for onboarding wizard field labels.
* Tweak - Improved accessibility of heading elements in the profile shortcode.
* Tweak - Improved accessibility for course page side navigation when zoomed in.
* Tweak - Improved accessibility for alerts with a role "alert".
* Tweak - Improved accessibility for login link and modal.
* Tweak - Improved accessibility for registration form field labels.
* Tweak - Improved accessibility for registration form error messages.
* Tweak - Improved accessibility for buttons when hovered and focused.
* Tweak - Improved accessibility for assignments table on the profile page.
* Tweak - Improved accessibility for quizzes table on the profile page.
* Tweak - Improved accessibility for essays table on the profile page.
* Tweak - Improved accessibility of the comments link in the assignments and essays tables on the profile page.
* Tweak - Improved accessibility of the view statistics and view certificate links in the quizzes tables on the profile page.
* Tweak - Improved accessibility for "sorting" choice questions.
* Tweak - Improved accessibility for course pricing section.
* Tweak - Changed the payment buttons' HTML type to `button` to improve accessibility.
* Tweak - Added a redirect alert countdown to the payment form in the Registration page (classic and modern) to improve accessibility.
* Tweak - Improved accessibility when a course step is completed.
* Tweak - Improved accessibility for error messages on registration pages.
* Tweak - Improved accessibility for tooltips.
* Tweak - Removed the old and added a new LearnDash WP version support policy notice.
* Tweak - Added filters: `learndash_payment_form_redirect_alert_countdown`.
* Tweak - Added templates: `src/views/components/icons/drag.php`.
* Tweak - Added functions: `learndash_30_show_step_completed_alert`, `learndash_course_get_step_completion_data`, `learndash_get_step_completed_transient_data`.
* Tweak - Updated functions: `learndash_course_get_step_completion_url`, `learndash_login_failed_alert`, `learndash_mark_complete_process`, `learndash_output_registration_success_alert`.
* Tweak - Updated filters: `learndash_group_course_row_atts`, `learndash_lesson_row_atts_sample_no_access`, `learndash_lesson_row_atts`, `learndash_quiz_row_atts`.
* Tweak - Updated templates: `src/views/components/forms/field-label.php`, `src/views/modules/registration/login/forgot-password.php`, `src/views/modules/registration/order/coupons/alerts.php`, `src/views/modules/registration/order/details.php`, `src/views/modules/registration/register/form.php`, `themes/ld30/templates/assignment/partials/row.php`, `themes/ld30/templates/focus/sidebar.php`, `themes/ld30/templates/group/partials/row.php`, `themes/ld30/templates/lesson.php`, `themes/ld30/templates/lesson/partials/row.php`, `themes/ld30/templates/modules/alert.php`, `themes/ld30/templates/modules/breadcrumbs.php`, `themes/ld30/templates/modules/infobar.php`, `themes/ld30/templates/modules/infobar/course.php`, `themes/ld30/templates/modules/infobar/group.php`, `themes/ld30/templates/modern/course/accordion/final-quizzes/quiz/attributes/available-on.php`, `themes/ld30/templates/modern/course/accordion/final-quizzes/quiz/attributes/in-person.php`, `themes/ld30/templates/modern/course/accordion/final-quizzes/quiz/attributes/virtual.php`, `themes/ld30/templates/modern/course/accordion/final-quizzes/quiz/title.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/attributes/available-on.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/attributes/in-person.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/attributes/sample.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/attributes/virtual.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/quizzes/quiz/attributes/available-on.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/quizzes/quiz/attributes/in-person.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/quizzes/quiz/attributes/virtual.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/quizzes/quiz/title.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/title.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/attributes/available-on.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/attributes/in-person.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/attributes/virtual.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/quizzes/quiz/attributes/available-on.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/quizzes/quiz/attributes/in-person.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/quizzes/quiz/attributes/virtual.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/quizzes/quiz/title.php`, `themes/ld30/templates/modern/course/accordion/lessons/lesson/topics/topic/title.php`, `themes/ld30/templates/modern/course/enrollment/join/index.php`, `themes/ld30/templates/modern/course/enrollment/pricing/closed/restricted.php`, `themes/ld30/templates/modern/course/enrollment/pricing/closed/with-price.php`, `themes/ld30/templates/modern/course/enrollment/pricing/free.php`, `themes/ld30/templates/modern/course/enrollment/pricing/pay-now.php`, `themes/ld30/templates/modern/course/enrollment/pricing/recurring/no-trial.php`, `themes/ld30/templates/modern/course/enrollment/pricing/recurring/trial.php`, `themes/ld30/templates/quiz/partials/row.php`, `themes/ld30/templates/shortcodes/profile.php`, `themes/ld30/templates/shortcodes/profile/assignment-row.php`, `themes/ld30/templates/shortcodes/profile/assignments.php`, `themes/ld30/templates/shortcodes/profile/course-row.php`, `themes/ld30/templates/shortcodes/profile/essay-row.php`, `themes/ld30/templates/shortcodes/profile/quiz-row.php`, `themes/ld30/templates/shortcodes/profile/quizzes.php`, `themes/ld30/templates/shortcodes/profile/search.php`, `themes/ld30/templates/topic.php`, `themes/ld30/templates/widgets/navigation/lesson-row.php`, `themes/ld30/templates/widgets/navigation/quiz-row.php`, `themes/ld30/templates/widgets/navigation/topic-row.php`, `themes/legacy/templates/quiz/partials/show_quiz_questions_box.php`.

= [4.21.2.2] =

* Security - Added more safety checks to telemetry opt-ins/opt-outs.

= [4.21.2.1] =

* Fix - Resolved an issue where if translation files were not downloaded, a PHP notice would be shown on WordPress 6.8+.
* Fix - Resolved an incompatibility with WordPress 6.8+ and the different tabbed interfaces when editing LearnDash content.
* Fix - Removed an added border from around Quiz Questions.

= [4.21.2] =

* Fix - Resolved an issue where a quiz could not be started if resuming, automatic start and time limit settings were enabled.
* Fix - Fixed an issue where a topic inside a lesson could have the wrong previous step completed status.
* Fix - Fixed the [user_groups] shortcode.
* Fix - Improved the payment button accessibility.
* Tweak - Added an accent color support to a "Complete previous step" button.
* Tweak - Improved the accessibility of the profile edit link.
* Tweak - Resolved accessibility issues with the Setup Wizard licensing key validation messages.
* Tweak - Improved colors accessibility by updating the default LearnDash 3.0 theme colors.
* Tweak - Improved accessibility for a login button on course and group pages.
* Tweak - Improved accessibility for headings on the onboarding wizard screens.
* Tweak - Improved accessibility for alerts.
* Tweak - Improved colors accessibility by updating the default LearnDash 3.0 theme colors.
* Tweak - Improved accessibility related to the color contrast of various elements.
* Tweak - Added a focus state to the search close button in the profile block to improve accessibility.
* Tweak - Invalid license notices will no longer be shown on non-LearnDash admin pages.
* Tweak - Improved accessibility for the Focus Mode sidebar.
* Tweak - Improved colors accessibility for the Modern Course tabs.
* Tweak - Lessons and Topics will now run the appropriate actions when marked complete from the backend user edit screen.
* Tweak - Updated functions: `learndash_process_user_course_progress_update`.
* Tweak - Added filters: `learndash_alert_role`.
* Tweak - Updated templates: `themes/ld30/templates/focus/sidebar.php`, `themes/ld30/templates/modern/course/enrollment/join/login-link.php`, `themes/ld30/templates/modules/infobar/course.php`, `themes/ld30/templates/modules/infobar/group.php`.

= [4.21.1] =

* Fix - Fixed missing quiz points in the activity report widget.
* Fix - Resolved an issue where a white screen could be shown when editing LearnDash content types while running a Beta or Nightly WordPress version.
* Fix - Fixed quiz admin notification email was not sent out after a user completes a quiz even though the mail to addresses are set in the global quiz settings.
* Fix - Fixed an incorrect call of a function in the Quiz feature.
* Fix - Resolved an issue where a message from the quiz setting "Message after Essay is submitted" was not showing on empty answer.
* Fix - Resolved an issue where the required field message for Quiz Custom Fields would not show correctly for Number, Text, Email, and Date fields.
* Fix - Resolved an issue where the message field for correct and incorrect question answers in the quiz builder could not be switched to text mode.
* Fix - Resolved an issue where the question setting values in the quiz builder would not persist after the question was saved.
* Fix - Resolved an issue where Courses that have not been started yet would not show when using the `[ld_course_list]` shortcode.
* Fix - Resolved an issue where "Not Started" results could not be returned as expected under LearnDash LMS -> Reports.
* Tweak - Improved the UX of the quiz template saving process on the LearnDash quiz edit page.
* Tweak - Improved headers accessibility on the quiz page in the focus mode.
* Tweak - Support StellarSites license key authorization.
* Tweak - Improved accessibility for the progress indicator.
* Tweak - Improved accessibility for Required Custom Fields in Quizzes.
* Tweak - Improved accessibility for alerts shown for reached points in Quizzes.
* Tweak - Improved accessibility for question text and answer options.
* Tweak - Improved accessibility for alerts shown for Required Custom Fields in Quizzes.
* Tweak - Improved accessibility for quiz custom fields form.
* Tweak - Improved accessibility for the back to course link on the course step pages.
* Tweak - Improved accessibility for when only one Tabbed element exists on a page.
* Tweak - Improved accessibility for landmarks on focus mode pages.
* Tweak - Compatibility update of our telemetry library.
* Tweak - Improved the Licensing API Component with enhanced caching, validation, and error handling.
* Tweak - Updated functions: `learndash_reports_get_activity`, `learndash_sanitize_version_string`.
* Tweak - Updated templates: `themes/ld30/templates/focus/index.php`, `themes/ld30/templates/focus/masthead.php`, `themes/ld30/templates/focus/sidebar.php`, `themes/ld30/templates/modules/infobar.php`, `themes/ld30/templates/modules/course-steps.php`, `themes/ld30/templates/modules/tabs.php`, `themes/ld30/templates/modules/tabs_group.php`, `themes/legacy/templates/quiz/partials/show_quiz_form_box.php`, `themes/legacy/templates/quiz/partials/show_quiz_info_page_box.php`, `themes/legacy/templates/quiz/partials/show_quiz_questions_box.php`, `themes/legacy/templates/quiz/partials/show_quiz_result_box.php`.

= [4.21.0] =

* Feature - Added the new Modern Course Page, which can be toggled under LearnDash > Settings > General.
* Tweak - Added the "Modern Registration Page" and "Modern Course Page" fields to the Site Health Info page in the admin.
* Tweak - Migrated the LearnDash > Settings > Registration/Login - Appearance field to the General tab.
* Tweak - Added functions: `learndash_registration_page_build_url`.
* Tweak - Updated functions: `learndash_get_login_url`, `learndash_get_wrapper_class`.
* Tweak - Added filters: `learndash_ld30_modern_course_show_header`, `learndash_ld30_modern_course_show_sidebar`, `learndash_model_course_award_certificate`, `learndash_model_course_award_points`, `learndash_model_course_certificate_link`, `learndash_model_course_has_awards`, `learndash_model_course_has_requirements`, `learndash_model_course_has_steps`, `learndash_model_course_lessons_number`, `learndash_model_course_lessons`, `learndash_model_course_product`, `learndash_model_course_quizzes_number`, `learndash_model_course_requirement_points`, `learndash_model_course_requirement_prerequisites`, `learndash_model_course_topics_number`, `learndash_model_setting`, `learndash_model_{$post_type_key}_available_on_date`, `learndash_model_{$post_type_key}_course`, `learndash_model_{$post_type_key}_is_attendance_required`, `learndash_model_{$post_type_key}_is_complete`, `learndash_model_{$post_type_key}_is_external`, `learndash_model_{$post_type_key}_is_in_person`, `learndash_model_{$post_type_key}_is_sample, `learndash_model_{$post_type_key}_is_virtual`, `learndash_model_{$post_type_key}_quizzes_number`, `learndash_model_{$post_type_key}_quizzes`, `learndash_model_{$post_type_key}_steps_filter_by_visibility`, `learndash_model_{$post_type_key}_topics_number`, `learndash_payment_button_label_course`, `learndash_template_views_course_tabs`, `learndash_template_views_tabs`, `learndash_template_view_context`, `learndash_theme_supports_views`.
* Tweak - Updated filters: `learndash_model_product_type_label`, `learndash_wrapper_class`.
* Tweak - Added actions: `learndash_version_downgraded_to_$version`, `learndash_version_downgraded`, `learndash_version_upgraded_to_$version`, `learndash_version_upgraded`.

= [4.20.5] =

* Fix - Fixed activity widget not showing activity for cases when a user gets enrolled in a course.
* Fix - Fixed activity widget not respecting the statuses set in the filter.
* Performance - Optimized the performance of activity data queries made via the learndash_reports_get_activity() function, especially for sites with many posts and users when their activity meta is fetched.
* Performance - Optimized activity widget by not querying additional activity meta that it doesn't use.
* Performance - Optimized the progress chart widget by lowering memory consumption and improving its performance on large sites.
* Performance - Optimized functions: `learndash_reports_get_activity`.
* Tweak - Updated functions: `learndash_reports_get_activity`.
* Tweak - Added filters: `learndash_user_activity_meta_query_joins`, `learndash_user_activity_meta_query_where`, `learndash_user_activity_query_group_by`, `learndash_user_activity_results`.

= [4.20.4] =

* Fix - Fixed the Expand and Collapse button label text on course inner pages when focus mode is enabled.
* Fix - Resolved an issue where the Trusted Login page styling was not loading correctly.

= [4.20.3] =

* Fix - Resolved a fatal error for purchases through the RazorPay payment gateway.
* Fix - Resolved an issue where Tabs on Group pages would not work correctly.
* Tweak - Enhanced Stripe Webhook validation with a loading state and more detailed validation results for both test and live webhooks.
* Tweak - Updated templates: `themes/ld30/templates/modules/tabs_group.php`.
* Tweak - Deprecated classes: `LearnDash\Core\Modules\Payments\Gateways\Stripe\Webhook_Setup_Validator`.
* Tweak - Deprecated functions: `Learndash_Stripe_Gateway::create_fake_coupon_for_webhook_test`.

= [4.20.2.1] =

* Fix - Resolved an issue where users could not be enrolled in a Free course after registration when the 'Modern' registration appearance is activated.
* Tweak - Added filters: `learndash_model_product_supports_coupon`.

= [4.20.2] =

* Feature - Added a Terms and Privacy setting that forces users to accept the custom defined terms/privacy during registration.
* Fix - Resolved an issue where after incorrectly entering your license information in the Setup Wizard, entering the correct license information would fail.
* Fix - Login modal could not be displayed on LearnDash course, lesson, topic, and quiz category archive pages via `[learndash_login]` shortcode.
* Fix - Updated `Modern` registration templates in order to properly handle scenarios where coupons that would bring the price to 0 would incorrectly still send the user to the payment gateway for payment.
* Fix - Added a missing label on the admin user profile screen for the quiz lock removing setting.
* Fix - Updated broken links on the Help page.
* Fix - Fixed LearnDash course info shortcode's course points value output.
* Fix - Updated mobile styles for the LearnDash -> Help page.
* Fix - Fixed translation files priority order to ensure globally installed translations are loaded correctly.
* Tweak - Improved accessibility for expandable items.
* Tweak - Improved accessibility related to the color contrast of various elements throughout Courses.
* Tweak - Improved accessibility when buttons within Courses receive focus.
* Tweak - Improved accessibility for tabbed content within Courses.
* Tweak - Added actions: `learndash_coupon_after_redemption`, `learndash_coupon_before_redemption`, `learndash_coupon_user_enrolled_with_zero_price`.
* Tweak - Added filters: `learndash_coupon_attached_data`, `learndash_coupon_check_is_valid`, `learndash_coupon_discounted_price`, `learndash_coupon_exists_and_is_active`, `learndash_coupon_get_by_code`, `learndash_coupon_is_attached_to_product`, `learndash_coupon_to_attach`.
* Tweak - Updated functions: `learndash_get_course_points_access`, `learndash_get_course_points_enabled`, `learndash_get_course_points`, `learndash_get_course_prerequisite_enabled`, `learndash_validate_hub_license`.
* Tweak - Updated templates: `themes/ld30/templates/course.php`, `themes/ld30/templates/focus/comments.php`, `themes/ld30/templates/group.php`, `themes/ld30/templates/group/partials/course-row.php`, `themes/ld30/templates/lesson/listing.php`, `themes/ld30/templates/lesson/partials/row.php`, `themes/ld30/templates/modules/tabs.php`, `themes/ld30/templates/shortcodes/course_content_shortcode.php`, `themes/ld30/templates/shortcodes/group_content_shortcode.php`, `themes/ld30/templates/shortcodes/groups/row.php`, `themes/ld30/templates/shortcodes/profile.php`, `themes/ld30/templates/shortcodes/profile/course-row.php`, `themes/ld30/templates/shortcodes/profile/search.php`, `themes/ld30/templates/widgets/course-navigation.php`, `themes/ld30/templates/widgets/navigation/lesson-row.php`.

= [4.20.1.1] =

* Fix - Resolved an issue where quiz resume didn't work when the saved answer had a line break or similar characters within it.
* Tweak - Deprecated functions: `learndash_prepare_quiz_resume_data_to_js`.

= [4.20.1] =

* Feature - Added webhook autoconfiguration when connecting to Stripe.
* Fix - Fixed a PHP deprecation warning when editing a course.
* Fix - Resolved an issue where quiz resume didn't work when the saved answer has single quotes.
* Security - Strengthened communication with PayPal IPN to ensure secure transaction integrity.
* Tweak - Improved the HTTP status code returned to PayPal IPN notifications to avoid PayPal retrying the notification when it is not necessary.
* Tweak - Set minimum required WP version to 6.1.
* Tweak - Added Requires at least: 6.1 to the plugin header fields.
* Tweak - Added LearnDash WP version support policy notice.
* Tweak - Added Requires PHP: 7.4 to the plugin header fields.
* Tweak - Deprecated classes: `LearnDash\Core\Payments\Provider`, `LearnDash\Core\Payments\Stripe\Provider`, `LearnDash\Core\Payments\Stripe\Webhook_Setup_Validator`.
* Tweak - Updated functions: `learndash_extra_autoloading`.
* Tweak - Added constants: `LEARNDASH_WHODAT_SERVER_URL`.
* Tweak - Added actions: `learndash_coupon_attached`, `learndash_coupon_detached`.

= [4.20.0.3] =

* Fix - Resolved an issue with the REST API post content that was incorrectly being filtered.

= [4.20.0.2] =

* Security - Ensured content is hidden on the search listing and archive pages.
* Tweak - Updated functions: `learndash_get_course_id`.
* Tweak - Added filters: `learndash_template_content_on_listing_is_hidden`.

= [4.20.0.1] =

* Fix - Resolved an issue with plugin deletion.

= [4.20.0] =

* Feature - Added the LearnDash DocsBot widget.
* Fix - Corrected the output of some timestamps to properly match the site timezone.
* Fix - Fixed the question points field description.
* Fix - Fixed missing course titles in the activity widget.
* Tweak - Improved course settings UX.
* Tweak - Improved the course editor header.
* Tweak - Updated the block editor site icon on the LearnDash post types.
* Tweak - Added filters: `learndash_header_variant`.
* Tweak - Updated filters: `learndash_date_time_formats`.

= [4.19.0.1] =

* Fix - Resolved a fatal error that could occur during post revision deletion or permanent post deletion.

= [4.19.0] =

* Feature - New Order Management UI replaced the old Transactions UI.
* Fix - Resolved an issue where quizzes with essays could be marked as completed without the required points to pass.
* Fix - Fixed styling issues in a profile block when a Kadence theme is active.
* Fix - Improved the protected files downloading mechanism to allow instructors to download files from the front-end.
* Tweak - Improved admin menu items grouping and ordering.
* Tweak - Add orders onboarding screen when no orders are present.
* Tweak - Added filters: `learndash_assignment_get_download_url`, `learndash_file_download_path`, `learndash_file_download_url`, `learndash_listing_reset_button_url`, `learndash_model_invoice_transaction`, `learndash_model_transaction_formatted_price`, `learndash_model_transaction_gateway_customer_id`, `learndash_model_transaction_is_test_mode`, `learndash_quiz_essay_get_download_url`.

= [4.18.1.1] =

* Fix - Resolved an issue where translations wouldn't be loaded under WordPress 6.7.
* Tweak - Added filters: `learndash_mo_file_path`.

= [4.18.1] =

* Fix - Resolved an issue where the PayPal IPN payment gateway could get stuck in test mode.
* Fix - Resolved a deprecated JS method issue triggered since WordPress 6.0.
* Fix - Resolved an incompatibility between WordPress v6.7 and the tabbed interface for editing LearnDash content.
* Tweak - Added functions: `learndash_sanitize_version_string`.

= [4.18.0.1] =

* Fix - Restricted calls to licensing server to relevant admin pages.
* Fix - Ensured all LearnDash add-ons can be installed properly.

= [4.18.0] =

* Feature - Licensing and Management is now included as a part of LearnDash LMS instead of requiring a separate plugin.
* Feature - LearnDash payment gateways with test mode enabled now show within the WordPress admin bar with links to configure their settings.
* Fix - Fixed fatal error when updating submitted essay points if the essay question has 0 points setting.
* Fix - Fixed imported quizzes losing associations on import.
* Fix - Fixed terms not being associated with imported posts.
* Fix - Fixed imported courses losing steps when the shared steps mode is enabled on import.
* Fix - Fixed empty steps until page refresh on import when the course builder and shared steps mode are disabled.
* Fix - Removed draft courses from a list and adjusted the completed course count in the profile block/shortcode.
* Fix - Corrected "login" to "log in" on a course/group page where appropriate.
* Fix - Resolved an issue where LearnDash sometimes processed Stripe Webhooks created by other LearnDash instances connected to the same Stripe account.
* Fix - Resolved issue where directory index files were rewritten on every page load.
* Fix - Resolved issue where the LearnDash admin header could overlap the save dialog for reusable block patterns.
* Fix - Resolved an alignment issue with the actions dropdown on smaller screen sizes.
* Fix - Resolved an issue when rendering free choice quiz question answers.
* Fix - Resolved a positioning issue with the LearnDash admin bar on mobile devices.
* Tweak - Created Stripe Products for "Buy now" LearnDash courses/groups.
* Tweak - A progression warning is now displayed for child steps of sample lessons if a user is enrolled.
* Tweak - Improved quiz statistics responsiveness in the profile block/shortcode.
* Tweak - Improved header responsiveness on the setup wizard and help pages.
* Tweak - Updated a logo.
* Tweak - Improved Kadence templates import stability on low-end hosting environments.
* Tweak - Updated `Learndash_Payment_Gateway::get_active_gateways()` to no longer return `Learndash_Unknown_Gateway`. If needed, it can be obtained using `Learndash_Unknown_Gateway::get_initiated_instance()`.
* Tweak - Added constants: `LEARNDASH_MODULE_LICENSING_DISABLED`.
* Tweak - Added filters: `learndash_module_licensing_disabled`, `learndash_payment_option_active_gateways_in_test_mode`.
* Tweak - Updated functions: `learndash_get_user_stats`, `learndash_put_directory_index_file`.
* Tweak - Deprecated functions: `learndash_activate_learndash_hub`, `learndash_get_updater_instance`, `learndash_hub_deactivated_notice`, `learndash_hub_install`, `learndash_is_learndash_hub_active`, `learndash_is_learndash_hub_installed`.
* Tweak - Deprecated actions: `{$plugin_slug}-nss_license_footer`.
* Tweak - Deprecated classes: `nss_plugin_updater_sfwd_lms`.

= [4.17.0] =

* Feature - Added basic reports. Learn more here: https://go.learndash.com/reportsmerge
* Feature - Added custom label support for the virtual instructors.
* Fix - Fixed an issue where Essay/Open Answer questions could not show a textarea.
* Fix - Resolved issue where you could not mark a step as complete after watching video when using Wistia with video progression.
* Fix - Resolved issue where the result message for a quiz was shown when not empty even if it was disabled.
* Fix - Resolved issue where the result message in quiz settings cannot be disabled when the message text is not empty.
* Fix - Converted 'toHHMMSS' javascript string prototype method to be non-enumerable to fix a conflict with 3rd party JS scripts that attempt to enumerate string prototype methods.
* Fix - Fixed "allow html" option doesn't work when editing question in quiz builder.
* Fix - Fixed the log in to enroll button label for free courses and groups by using a verb instead of a noun.
* Fix - Resolved an issue where no label existed for the virtual instructor post type in import/export settings.
* Fix - Fixed a problem where the case lowering for custom labels was not working with multi-byte characters.
* Fix - Resolved issue where the currency selector in payments settings was not working correctly for countries with multiple currencies.
* Tweak - LearnDash Admin Header buttons now match the chosen WordPress Admin Theme.
* Tweak - Improved the tabs experience so they are no longer visible when there is only one tab.
* Tweak - Improved statistics links in the reports activity widget.
* Tweak - Added constants: `LEARNDASH_LICENSING_SERVER_URL`, `LEARNDASH_MODULE_REPORTS_DISABLED`.
* Tweak - Added filters: `learndash_dashboard_reports_is_enabled`, `learndash_dashboard_sections_reports`, `learndash_dashboard_section_valid_screen_sizes`, `learndash_header_buttons`, `learndash_module_reports_disabled`.

= [4.16.2] =

* Fix - Resolved an issue where users registered via the Modern registration page would not have their chosen password set.

= [4.16.1] =

* Fix - Resolved an issue where LearnDash 3.0 template colors were not being applied to some elements.
* Tweak - Updated functions: `learndash_30_custom_colors`.

= [4.16.0] =

* Feature - New Registration page UI.
* Feature - New Appearance option for registration page, providing the ability to choose between Classic and Modern registration pages.
* Fix - Corrected the display of checkboxes within the Course builder in WordPress v6.6+.
* Security - Altered the message for the forgot password form provided by LearnDash to be nonspecific if the username/email provided is found in the system.
* Tweak - Updated functions: `learndash_registration_output`, `output_registration_success_alert`.
* Tweak - Added functions: `learndash_get_login_form_html`, `learndash_is_initialized`, `learndash_registration_variation`.
* Tweak - Added filters: `learndash_initialization_is_new_install`, `learndash_model_product_interval_message`, `learndash_payment_option_active_gateways`, `learndash_paypal_ipn_checkout_info_text`, `learndash_razorpay_checkout_info_text`, `learndash_registration_forgot_password_html`, `learndash_registration_form`, `learndash_registration_login_form_html`, `learndash_registration_wp_login_form_html`, `learndash_stripe_checkout_info_text`.
* Tweak - Added actions: `learndash_initialization_new_install`, `learndash_registration_successful_before`.
* Tweak - Updated actions: `learndash_registration_form_after`, `learndash_registration_form_before`, `learndash_registration_form_override`, `learndash_registration_successful_after`.
* Tweak - Updated filters, ensuring string as return type: `learndash_payment_button`, `learndash_registration_login_link_redirect`, `learndash_registration_login_form_redirect`, `learndash_registration_errors_after`, `learndash_registration_form_fields_before`, `learndash_registration_form_fields_after`.

= [4.15.2] =

* Fix - Fixed a fatal error that could be encountered when quizzes that are set to randomize the order of questions and have quiz saving enabled. This could have happened if one of the questions were edited since the user last started the quiz and then the user resumed the quiz.
* Tweak - Added "Get Help Launching Your Site" sections to the Help and Setup pages.
* Tweak - Added a `description_after` argument to all settings fields.
* Tweak - Deprecated `LearnDash\Core\Modules\Experiments\Experiment::get_url()` and `LearnDash\Core\Modules\Experiments\Experiment::$url`. These have been replaced with `LearnDash\Core\Modules\Experiments\Experiment::get_action_items()` and `LearnDash\Core\Modules\Experiments\Experiment::$action_items`.

= [4.15.1] =

* Fix - Resolved issue where standalone quizzes did not trigger the learndash_quiz_completed action.
* Fix - Resolved issue where the LearnDash Customizer outputted the default CSS values, changing the CSS priorities and affecting some themes.
* Fix - Resolved issue where the switch field in admin settings was not displaying the label correctly depending on the state.
* Fix - Fixed inconsistent input field styling on virtual instructor chatbox.
* Tweak - Deprecated constants: LEARNDASH_QUIZ_ESSAY_SUBMIT_COMPLETED.
* Tweak - Updated templates: `modules/ai/virtual-instructor/message-default.php`, `modules/ai/virtual-instructor/message-error.php`.

= [4.15.0] =

* Feature - Customizer settings for the LearnDash 3.0 template.
* Fix - Fixed issue where adding directory index file causes PHP notices when the directory is not writable.
* Fix - Resolved issue where admins cannot disable all toggles in certain metaboxes.
* Fix - Resolved issue where Additional Question Options won't stay toggled on when only "Randomize Answers" is enabled.
* Fix - Resolved issue where Windows-based servers were unable to use the Import tool.
* Fix - Resolved issue where adding a percentage symbol in password in login form would change the password.
* Fix - Resolved issue where TrustedLogin access link doesn't auto log in the user.
* Tweak - Updated functions: `learndash_put_directory_index_file`.
* Tweak - Added filters: `learndash_customizer_config`, `learndash_customizer_control`, `learndash_customizer_css_priority`, `learndash_customizer_themes`.
* Tweak - Added actions: `learndash_customizer_control_add_after`, `learndash_customizer_control_add_before`, `learndash_customizer_panel_add_after`, `learndash_customizer_panel_add_before`, `learndash_customizer_section_add_after`, `learndash_customizer_section_add_before`, `learndash_customizer_setting_add_after`, `learndash_customizer_setting_add_before`, `learndash_customizer_themes_init_after`, `learndash_customizer_themes_init_before`, `learndash_customizer_theme_init_after`, `learndash_customizer_theme_init_before`.

= [4.14.0] =

* Feature - Added decimal and negative number support to quiz points.
* Feature - Added "Different points for each answer" option support to the quiz builder.
* Feature - TrustedLogin - Provide one click secure access to your site for our support team.
* Fix - Resolved issue where NaN points label could appear if points were deleted in the quiz builder.
* Fix - Fixed quiz statistics loading for quizzes where all questions are set to 0 points.
* Fix - Improved question and answer points synchronization in the quiz builder.
* Fix - Resolved issue where the question settings were ignored in the quiz builder when the existing question was added.
* Fix - Resolved issue where the question was being duplicated on deletion in the quiz builder sidebar in some cases.
* Fix - Resolved issue where the free choice question points are calculated incorrectly when the different points mode is enabled.
* Tweak - Added points calculation within the POST route in the `ldlms/v1/sfwd-questions/<id>` REST API endpoint.
* Tweak - Updated constants: WPPROQUIZ_VERSION.
* Tweak - Updated functions: `learndash_format_course_points`, `learndash_get_essay_details`, `learndash_proquiz_sync_question_fields`, `learndash_question_assessment_fetch_data`, `learndash_question_cloze_fetch_data`, `learndash_question_free_get_answer_data`, `learndash_update_quiz_statistics`.
* Tweak - Updated filters: `learndash_course_points_format_round`, `learndash_fetch_quiz_questions`, `learndash_ques_free_answer_pts`, `learndash_ques_multiple_answer_pts_each`, `learndash_ques_multiple_answer_pts_whole`, `learndash_ques_single_answer_pts`, `learndash_quiz_question_answer_preprocess`.
* Tweak - Updated templates: `legacy/templates/quiz/partials/show_quiz_questions_box.php`.

= [4.13.0] =

* Feature - LearnDash Experiments.
* Feature - Virtual Instructor [Experiment].
* Tweak - Added filters: `learndash_experiments`, `learndash_model_virtual_instructor_applied_to_all_courses`, `learndash_model_virtual_instructor_applied_to_all_groups`, `learndash_model_virtual_instructor_avatar_url`, `learndash_model_virtual_instructor_banned_words`, `learndash_model_virtual_instructor_course_ids`, `learndash_model_virtual_instructor_custom_instruction`, `learndash_model_virtual_instructor_error_message`, `learndash_model_virtual_instructor_group_ids`, `learndash_model_virtual_instructor_message_contains_banned_words`, `learndash_model_virtual_instructor_name`, `learndash_module_ai_chatgpt_summarizer_command_generate_summary`, `learndash_module_ai_chatgpt_summarizer_last_preserved_messages_count`, `learndash_module_ai_chatgpt_summarizer_max_context_characters`, `learndash_module_ai_chatgpt_summarizer_messages_summary_content`, `learndash_module_ai_virtual_instructor_chat_session_initial_message`, `learndash_module_ai_virtual_instructor_chat_session_max_message_length`, `learndash_module_ai_virtual_instructor_chat_session_message_is_valid`, `learndash_module_ai_virtual_instructor_chat_session_message`, `learndash_module_ai_virtual_instructor_chat_session_storage_period`, `learndash_service_chatgpt_model_max_context_window_tokens`, `learndash_template_template_paths`.
* Tweak - Added actions: `learndash_experiments_experiment_init_after`, `learndash_experiments_experiment_init_before`, `learndash_experiments_init_after`, `learndash_experiments_init_before`, `learndash_post_setting_updated`.

= [4.12.1] =

* Fix - Resolved issue where the course progress could not be updated in some cases in a user profile.
* Fix - Resolved issue where Lifetime sales and Latest transactions widgets, present in the Course Dashboard, were causing fatal errors in some DB engines.
* Fix - Fixed compatibility issues with plugins using composer dependencies.
* Tweak - Updated functions: `learndash_process_mark_complete`, `learndash_process_user_course_progress_update`.

= [4.12.0] =

* Feature - Blended Learning.
* Fix - Password reset process redirects to Reset Password Success page.
* Fix - Stripe cancellation processing for finite subscriptions with no trial.
* Security - Tightened security around LearnDash Log.
* Security - Tightened security around quizzes.
* Performance - Course dashboard.
* Performance - Groups listing/editing page when there are many groups.
* Performance - Profile block when there are a lot of courses.
* Performance - Optimized functions: `learndash_get_certificate_count`, `learndash_get_groups_administrator_ids`, `learndash_get_groups_user_ids`, `learndash_get_user_stats`.
* Tweak - Fixed PHP 8.2 deprecation notices.
* Tweak - Improved the invoice PDF in the purchase email for subscriptions with no trial.
* Tweak - Make shared course steps option enabled by default.
* Tweak - Set minimum required PHP version to 7.4.
* Tweak - Updated constants: LEARNDASH_MIN_PHP_VERSION.
* Tweak - Updated the Stripe PHP library to version 13.
* Tweak - Added filters: `learndash_stripe_api_version`, `learndash_stripe_max_network_retries`.
* Tweak - Added functions: `learndash_course_steps_get_external_type`, `learndash_course_steps_is_external_attendance_required`, `learndash_course_steps_is_external`, `learndash_course_steps_map_external_type_to_label`, `learndash_process_password_reset_redirect`.
* Tweak - Updated functions: `learndash_course_get_step_completion_url`, `learndash_create_nonce`, `learndash_get_certificate_count`, `learndash_get_groups_administrator_ids`, `learndash_get_groups_user_ids`, `learndash_get_user_stats`, `learndash_mark_complete`, `learndash_process_mark_complete`, `learndash_reset_password_output`, `learndash_reset_password_set_user_new_password`, `learndash_stripe_api_version`, `learndash_stripe_max_network_retries`.
* Tweak - Updated templates: `ld30/templates/modules/course-steps.php`, `ld30/includes/helpers.php`, `ld30/templates/lesson/partials/row.php`, `themes/ld30/templates/topic/partials/row.php`, `ld30/templates/widgets/navigation/lesson-row.php`, `ld30/templates/widgets/navigation/topic-row.php`, `ld30/templates/quiz.php`.

= [4.11.0] =

* Feature - Added course completion page.
* Fix - Lesson not marking as complete when "Not Graded, full points awarded" option set in quiz essay type.
* Fix - Added additional validation for shortcodes and blocks.
* Tweak - Updated course progression to flow as expected between steps in a course.
* Tweak - Added filters: `learndash_course_completion_page_redirect_enabled`, `learndash_course_linear_step_ids`, `learndash_course_next_step_default_value`, `learndash_course_next_step_id`, `learndash_course_next_step_url`, `learndash_course_previous_step_default_value`, `learndash_course_previous_step_id`, `learndash_course_previous_step_url`, `learndash_course_step_completion_url`.
* Tweak - Updated filters: `learndash_course_completion_url`, `learndash_next_post_link`, `learndash_previous_post_link`.
* Tweak - Deprecated filters: `learndash_completion_redirect`, `learndash_show_parent_next_link`, `learndash_show_parent_previous_link`.
* Tweak - Added functions: `learndash_course_get_completion_url`, `learndash_course_get_linear_step_ids`, `learndash_course_get_step_completion_url`, `learndash_course_steps_requires_watching_video_after_sub_steps`, `learndash_shortcode_can_current_user_access_post`, `learndash_shortcode_protect_user`.
* Tweak - Updated functions: `learndash_approve_assignment`, `learndash_get_step_post_statuses`, `learndash_mark_complete_process`, `learndash_next_post_link`, `learndash_previous_post_link`, `learndash_process_mark_complete`, `learndash_quiz_continue_link`, `learndash_quiz_redirect`, `learndash_upload_assignment_init`.
* Tweak - Deprecated functions: `learndash_ajax_mark_complete`, `learndash_course_progress_widget`, `learndash_get_next_lesson_redirect`, `learndash_next_global_quiz`, `learndash_next_lesson_quiz`, `learndash_update_completion`.
* Tweak - Updated templates: `ld30/templates/modules/course-steps.php`.

= [4.10.3] =

* Fix - User's essays and assignments posts do not get deleted permanently when the data erasure request is executed.
* Security - Tightened security around REST API.
* Security - Tightened security around assignments & essays files.
* Tweak - Changed assignment files uploading path to `uploads/learndash/assignments`.
* Tweak - Changed essay files uploading path to `uploads/learndash/essays`.
* Tweak - Made essay and assignment file links dynamic.
* Tweak - Added filters: `learndash_file_can_be_downloaded`, `learndash_file_protection_paths`.
* Tweak - Added functions: `learndash_assignment_get_download_url`, `learndash_quiz_essay_get_download_url`.
* Tweak - Deprecated classes: `LD_REST_Posts_Gutenberg_Controller`.
* Tweak - Deprecated filters: `learndash_rest_wp_archive_repsonse`, `learndash_rest_wp_archive_viewable`.
* Tweak - Updated filters: `learndash_assignment_process_init`, `learndash_essay_upload_dirbase`, `learndash_essay_upload_urlbase`, `learndash_fileupload_process`, `learndash_upload_assignment_init`.
* Tweak - Updated functions: , `learndash_add_new_essay_response`, `learndash_before_delete_essay`, `learndash_delete_user_data`, `learndash_essay_fileupload_process`, `learndash_essay_permissions`.
* Tweak - Updated templates: `ld30/templates/assignment/partials/row.php`, `ld30/templates/shortcodes/profile/assignment-row.php`, `themes/legacy/templates/learndash_lesson_assignment_uploads_list.php`.

= [4.10.2] =

* Fix - Disabling the /ldlms/v1 and /ldlms/v2 API does not affect /wp/v2 API restrictions anymore.
* Security - Tightened security around the REST API.

= [4.10.1] =

* Fix - Stripe Conflict with multiple plugins.
* Fix - Incompatibility with other plugins using psr/container.

= [4.10.0] =

* Feature - Add an option to import demo content in the onboarding wizard.
* Fix - Quiz AI existing quiz steps resetting on new quiz creation.
* Fix - Course outline AI resetting existing course section headings.
* Fix - Fatal error on WooCommerce Subscriptions order pages.
* Fix - Lessons generated by AI are missing course ID.
* Tweak - Some Telemetry data was mapped incorrectly.
* Tweak - Fixed Stripe related PHP 8.2 deprecation notices.
* Tweak - Updated functions: `learndash_course_add_child_to_parent`.

= [4.9.1] =

* Fix - Deprecation notice on the course page in PHP 8.1.
* Fix - Support a custom label in the latest transactions course widget.
* Fix - Can’t re-arrange/drag and drop Answers in Quiz Builder.
* Fix - Quizzes inside topic can't be re-ordered.
* Fix - Can’t correctly remove answers via Quiz Builder.
* Tweak - Format a discount properly in the purchase invoice PDF.
* Tweak - Improve a button label and a warning message on the quiz statistics page.
* Tweak - Use WP defined date/time format in course dashboard widgets.

= [4.9.0.1] =

* Fix - Parameters compatibility for the get_edit_post_link filter.

= [4.9.0] =

* Feature - Add new course dashboard with course performance metrics and data.
* Fix - Course 'Mark Complete' button validations.
* Fix - Sidebar hiding does not work in tabs.
* Tweak - Added Course-Presell support for the Student and Visitor shortcodes.
* Tweak - Set default course access mode to Free.
* Tweak - Support non /wp-admin URLs in the course video playlist.
* Tweak - Added actions: `learndash_dashboard_widget_before_loading`, `learndash_dashboard_widget_after_loading`, `learndash_template_before_include`, `learndash_template_before_include:{template_name}`, `learndash_template_after_include`, `learndash_template_after_include:{template_name}`, `learndash_template_entry_point:{template_name}`, `learndash_template_entry_point:{template_name}:{entry_point_name}`.
* Tweak - Added filters: `learndash_template_after_include_html:{$template_name}`, `learndash_template_after_include_html`, `learndash_template_args:{$template_name}`, `learndash_template_args`, `learndash_template_filepath`, `learndash_template_before_include_html:{$template_name}`, `learndash_template_before_include_html`, `learndash_template_entry_point_html:{template_name}:{entry_point_name}`, `learndash_template_entry_point_html:{template_name}`, `learndash_template_entry_point_is_enabled`, `learndash_template_html:{template_name}`, `learndash_template_html`, `learndash_template_include_html:{template_name}`, `learndash_template_include_html`, `learndash_template_pre_html:{$template_name}`, `learndash_template_pre_html`, `learndash_template_skip_rendering`, `learndash_template_admin_template_paths`, `learndash_dashboard_tab_is_default`, `learndash_dashboard_widget_course_lifetime_sales_transactions_chunk_size`, `learndash_dashboard_widget_course_latest_enrollees_users_limit`, `learndash_dashboard_widget_course_latest_transactions_limit`, `learndash_dashboard_is_enabled`, `learndash_dashboard_post_is_enabled`, `learndash_dashboard_section_hint_supported_html_tags`, `learndash_dashboard_sections`, `learndash_dashboard_sections_course`, `learndash_dashboard_widget_view_path`.
* Tweak - Updated constants: LEARNDASH_DEFAULT_COURSE_PRICE_TYPE.
* Tweak - Updated filters: `learndash_template_filename`.
* Tweak - Updated functions: `learndash_mark_complete_process`.

= [4.8.0.1] =

* Fix - Error on Settings Support page when no .po file is available.
* Fix - Incompatibility of binary selectors (group courses and course groups) with the classic editor.

= [4.8.0] =

* Feature - Add a password reset success page setting.
* Feature - Add Bunny.net video progress support.
* Feature - Create quizzes using AI.
* Feature - Extend access to a course (single or in a group) on an individual user basis.
* Feature - Group pre-selling.
* Feature - Group start and end dates.
* Feature - Group student limit.
* Fix - Course could not be created from a video playlist if a license email contained a plus sign.
* Fix - Incorrect from email address when sending admin and user quiz completion emails.
* Fix - Remove "0 Days Trial" item for Stripe subscriptions with no trial.
* Performance - `sfwd_lms_has_access_fn` function is optimized.
* Tweak - Added actions: `learndash_metabox_initialized`.
* Tweak - Added confirm dialog to start of Design Wizard.
* Tweak - Added filters: `learndash_group_access_from`, `learndash_model_product_user_enrollment_date`, `learndash_course_get_extended_access_timestamp`.
* Tweak - Added functions: `learndash_group_access_from`, `learndash_get_reset_password_success_page_id`, `learndash_is_learndash_hub_installed`, `learndash_activate_learndash_hub`, `learndash_course_extend_user_access`, `learndash_course_get_extended_access_timestamp`.
* Tweak - Improved the LearnDash Licensing & Management plugin activation process.
* Tweak - Updated functions: `ld_update_group_access`, `learndash_user_group_enrolled_to_course`, `ld_update_course_access`, `learndash_hub_deactivated_notice`, `learndash_video_complete_for_step`, `learndash_video_delete_cookie_for_step`, `learndash_delete_user_data`, `ld_course_access_expires_on`, `sfwd_lms_has_access_fn`.

= [4.7.0.2] =

* Fix - Add compatibility with the User Role Editor plugin when updating user roles via profile page.
* Fix - Removed Astra templates from Design Wizard.
* Tweak - Added 12 additional Kadence templates into the Design Wizard.
* Tweak - Added filters: `learndash_stripe_webhook_event_processable`.

= [4.7.0.1] =

* Fix - Content editor was sometimes shown above the correct page content on LD post editing pages with tabs.
* Fix - Respect gateway return url on successful payment redirect.
* Fix - Stop exporting all courses when a user has no courses attached on GDPR export.
* Tweak - Added actions: `learndash_quiz_resume_metadata_updated`.
* Tweak - Added filters: `learndash_privacy_export_exporters`, `learndash_privacy_export_course_progress_data`, `learndash_privacy_export_lesson_progress_data`, `learndash_privacy_export_topic_progress_data`
* Tweak - Deprecated functions: `learndash_get_course_enrollment_url`, `learndash_get_group_enrollment_url`.

= [4.7.0] =

* Feature - Course pre-selling.
* Feature - Course start and end dates.
* Feature - Course student limit.
* Fix - Add left padding to content area in Focus Mode when using right sidebar on mobile screens.
* Fix - Prevent group_leader role being removed from users on profile update.
* Fix - Undefined array key warning in `ld_profile` shortcode when displaying a quiz with no title.
* Tweak - Added actions: `learndash_metabox_updated_field`.
* Tweak - Added filters: `learndash_payment_button_disabled`, `learndash_model_product_can_be_purchased`, `learndash_model_product_has_started`, `learndash_model_product_has_ended`, `learndash_model_product_start_date`, `learndash_model_product_end_date`, `learndash_model_product_pre_ordered`, `learndash_model_product_seats_limit`, `learndash_model_product_seats_used`, `learndash_model_product_seats_available`.
* Tweak - Updated functions: `sfwd_lms_has_access_fn`, `ld_update_course_access`.

= [4.6.0.1] =

* Fix - Duplicate status bubbles when using the `learndash_status_bubble` function.
* Security - Tightened security around the reset password shortcode.

= [4.6.0] =

* Feature - Course Outline AI module.
* Fix - Display free trial in course/group infobar if trial price set to 0 or empty.
* Fix - learndash_process_user_course_progress_update function was not processing the progress correctly in some cases.
* Fix - Prevent duplicate password reset email after password reset.
* Fix - Set product name as description for Stripe Connect buy now products.
* Fix - Undefined FS_CHMOD_FILE error.
* Fix - Updated method to required files in helpers.php file.
* Tweak - Added actions: `learndash_files_included`.
* Tweak - Added filters: `learndash_payment_button_classes`, `learndash_model_product_display_price`, `learndash_model_product_display_trial_price`, `learndash_service_chatgpt_send_command_data`.
* Tweak - Added functions: `learndash_register_provider`, `learndash_extra_autoloading`.
* Tweak - AI Integrations settings page under advanced settings tab.
* Tweak - Deprecated functions: `learndash_the_breadcrumbs`.
* Tweak - Deprecated models classes (replaced with LearnDash\Core\Models): `Learndash_Model`, `Learndash_Product_Model`, `Learndash_Transaction_Model`.

= [4.5.3.2] =

* Fix - learndash_reports_get_activity function did not return correct results in some cases (which has been affected by a fix in 4.5.3.1).

= [4.5.3.1] =

* Security - Tightened security around the courseinfo shortcode.

= [4.5.3] =

* Fix - The default color is not displayed in the theme settings color picker.
* Tweak - RazorPay library to 2.8.5.

= [4.5.2.1] =

* Fix - Location of /lang directory in TCPDF library.

= [4.5.2] =

* Fix - 'Click here to visit' translatable text on checkout form.
* Fix - Display correct pricing interval values in purchase invoice.
* Fix - Incorrect decimal pricing on Stripe & Razorpay checkout.
* Fix - learndash_reports_get_activity() returns results outside of date range if activity status combination is set.
* Tweak - Show deprecation notice if using Stripe addon plugin.
* Tweak - Change documentation in LearnDash LMS > Setup page.
* Tweak - TCPDF to version 6.6.2.

= [4.5.1.2] =

* Fix - Course access validation error message.
* Fix - Passed quizzes not showing continue button.

= [4.5.1.1] =

* Fix - Telemetry modal loading on incorrect admin pages.

= [4.5.1] =

* Fix - Add ; to Content-Type email header.
* Fix - Display Telemetry modal on LD admin pages.
* Fix - Hide continue button on failed quiz shortcode unless filtered.
* Fix - Issues with pagination, minimum global pagination value is 1 now.
* Fix - Keep the old slugs for imported posts where possible.
* Fix - learndash_user_get_course_completed_date function did not calculate the correct date in some cases.
* Fix - Posts and authors were not connected on import when users were being imported.
* Fix - Process shortcode placeholders in purchase invoice email message.
* Tweak - Add better validation messages on import.
* Tweak - Add validation error to the course access period field, when the value is less than 1.
* Tweak - Confirm dialog when setting up template in Design Wizard.

= [4.5.0.3] =

* Fix - Increase timeout period for Action Scheduler.
* Fix - Prices containing commas were not being passed to payment gateways correctly.
* Fix - Stripe Connect does not allow purchase for a logged-out user if Registration page not set.
* Tweak - Removed a non-circulating currency CLF.

= [4.5.0.2] =

* Fix - PayPal ignored the 'Use PayPal Sandbox' setting.

= [4.5.0.1] =

* Fix - Compatibility with PHP 7.2, 7.3.
* Fix - Conflict with a list of plugins.
* Fix - Mobile sidebar menu and materials tab not opening.
* Fix - Move scalar constants out of the `plugins_loaded` hook.

= [4.5.0] =

* Fix - Allow user to bypass topic progression when lesson is using video progression and admin bypass is enabled.
* Fix - By default a group leader should not have an ability to edit the groups list they lead or other group leaders lead.
* Fix - Check for mobile resolution when opening Focus Mode sidebar.
* Fix - Ensure that all assignments for step are approved before considering as complete.
* Fix - Fatal error on questions CPT when using 'j \d\e F \d\e Y' date format.
* Fix - Fill in the blank answer formatting on quiz statistics.
* Fix - Format price properly on course/group pages.
* Fix - Highlight current topic in focus mode sidebar navigation.
* Fix - License validation cache was not being cleared when a license was updated.
* Fix - PayPal subscriptions used a usual price instead of a trial price. Now all options are mapped correctly.
* Fix - Quiz pagination when using Overview table feature.
* Fix - Quiz resume setting not saving in Quiz Template feature.
* Fix - Razorpay subscriptions from guest users were ignored, now they are processed correctly.
* Fix - Setup wizard not showing in some cases.
* Fix - Shorten screen height on Setup Wizard Payment page.
* Fix - Stripe Connect could not process a webhook, when a guest user tried to buy a product using the existing WP user email.
* Fix - Text on the course wizard page was not using custom labels.
* Fix - When the Group Leader user role was removed through the user’s profile, it was not deleted from group leaders assigned to groups.
* Performance - learndash_active_coupons_exist function is optimized.
* Tweak - Added actions: `learndash_payment_button_added`, `learndash_payment_gateway_event_processed`, `learndash_payment_gateway_user_created`.
* Tweak - Added Data Sharing tab to the advanced settings.
* Tweak - Added filters: `learndash_account_error_messages`, `learndash_account_menu`, `learndash_admin_settings_advanced_sections_with_hidden_metaboxes`, `learndash_group_leader_can_edit_group_leaders`, `learndash_label_to_slug`, `learndash_lesson_row_class`, `learndash_loggers`, `learndash_logger_max_file_size`, `learndash_model_allowed_post_types`, `learndash_model_is_parent`, `learndash_model_product_pricing_type`, `learndash_model_product_pricing`, `learndash_model_product_type_label`, `learndash_model_product_user_enrolled`, `learndash_model_product_user_has_access`, `learndash_model_product_user_unenrolled`, `learndash_model_transaction_coupon_data`, `learndash_model_transaction_gateway_label`, `learndash_model_transaction_gateway_name`, `learndash_model_transaction_gateway_transaction_id`, `learndash_model_transaction_gateway`, `learndash_model_transaction_has_coupon`, `learndash_model_transaction_has_trial`, `learndash_model_transaction_is_free`, `learndash_model_transaction_is_parent`, `learndash_model_transaction_is_subscription`, `learndash_model_transaction_pricing`, `learndash_model_transaction_product_name`, `learndash_model_transaction_product_type_label`, `learndash_model_transaction_product`, `learndash_model_transaction_user`, `learndash_payment_buttons`, `learndash_payment_button_closed`, `learndash_payment_button_dropdown_trigger`, `learndash_payment_button_dropdown`, `learndash_payment_button_free`, `learndash_payment_button_label`, `learndash_payment_button_markup`, `learndash_payment_button_open`, `learndash_payment_gateways`, `learndash_payment_gateway_event_ignore`, `learndash_payment_option_image_url`, `learndash_payment_option_url_fail`, `learndash_payment_option_url_success`, `learndash_purchase_invoice_logo_params`, `learndash_quiz_essay_upload_link`, `learndash_transaction_post_title`, `learndash_user_statistics`.
* Tweak - Added functions: `learndash_registration_errors`, `learndash_get_account_menu`, `learndash_coupons_init`, `learndash_registration_page_get_id`, `learndash_generate_purchase_invoice`.
* Tweak - Allow child class of LearnDash_Gutenberg_Block to set $block_dir property so it can register Gutenberg block using block.json.
* Tweak - Deprecated actions: `learndash_user_created_with_razorpay`, `learndash_stripe_after_create_user`.
* Tweak - Deprecated classes: `LearnDash_Payment_Gateway_Integration`, `LearnDash_PayPal_IPN`, `LearnDash_Stripe_Connect_Checkout_Integration`, `LearnDash_Razorpay_Integration`.
* Tweak - Deprecated filters: `learndash-get-user-stats`, `learndash-lesson-row-class`, `learndash-quiz-essay-upload-link`, `learndash-registration-errors`, `learndash_payment_closed_button`, `learndash_dropdown_payment_button`, `label_to_slug`, `learndash_stripe_create_short_username`, `learndash_button_label_razorpay`, `learndash_stripe_purchase_button_text`, `learndash_process_webhook_razorpay`, `learndash_stripe_process_webhook`.
* Tweak - Deprecated functions: `learndash_footer_payment_buttons`, `learndash_get_footer`, `learndash_get_payment_button_label`, `learndash_paypal_init_user_purchase_hash`, `learndash_paypal_get_purchase_success_redirect_url`, `learndash_paypal_get_purchase_cancel_redirect_url`, `learndash_send_purchase_invoice_email`, `learndash_transaction_add_learndash_version`, `learndash_transaction_get_payment_meta`, `learndash_transaction_get_razorpay_meta`, `learndash_transaction_get_paypal_meta`, `learndash_transaction_get_final_price`, `learndash_transaction_get_stripe_meta`, `learndash_transaction_get_coupon_meta`.
