* 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`.
* 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.
* 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`.
* 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`.
* Feature - Added decimal and negative number support to quiz points.
* Feature - Added "Different points for each answer" option support to the quiz builder.
* 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`.
* 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`.
* Feature - Blended Learning.
* 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`.
* Feature - Add course completion page.
* Tweak - Updated course progression to flow as expected between steps in a course.
* 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 - 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`.
* 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`.
* 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`.
* Fix - Disabling the /ldlms/v1 and /ldlms/v2 API for LearnDash post types now disables them for the /wp/v2 API as well.
* Security - Tightened security around the REST API.
* Fix - Stripe Conflict with multiple plugins.
* Fix - Incompatibility with other plugins using psr/container.