5.0.0

2026-02-04 Deprecate4 Feature2 Fix17 Tweak59

Deprecates

  • Deprecated actions: learndash_report_page_buttons.
  • Deprecated constants: LEARNDASH_COURSE_FUNCTIONS_LEGACY, LEARNDASH_IS_QUIZ_ACCESSABLE_LEGACY.
  • Deprecated filters: learndash_course_autocompletion_multiple_final_quizzes_step, learndash_course_status_recalc_total_steps, learndash_get_content_label, learndash_get_lesson_progress_defaults, learndash_get_lesson_progress, learndash_lesson_attributes, learndash_responsive_video_domains, learndash_responsive_video_post_types, learndash_update_posts_comment_status, learndash_users_can_register.
  • Deprecated functions: ld_course_check_user_access, learndash_30_focus_mode_can_complete, learndash_30_responsive_videos, learndash_activity_complete_course, learndash_activity_complete_quiz, learndash_check_query_post_type, learndash_course_get_completed_steps_legacy, learndash_course_status_legacy, learndash_get_content_label, learndash_get_course_data_legacy, learndash_get_course_lessons_list_legacy, learndash_get_course_progress_legacy, learndash_get_course_quiz_list_legacy, learndash_get_course_steps_count_legacy, learndash_get_course_steps_legacy, learndash_get_course_url, learndash_get_current_tabs_set, learndash_get_essays_by_quiz_attempt, learndash_get_exam_challenge_available_courses, learndash_get_exam_challenge_courses, learndash_get_global_quiz_list_legacy, learndash_get_lesson_attributes, learndash_get_lesson_progress, learndash_get_lesson_quiz_list_legacy, learndash_get_paynow_courses, learndash_get_quiz_pro_fields, learndash_get_step_post_status_label, learndash_get_topic_list_legacy, learndash_get_user_course_attempts_time_spent, learndash_get_user_quiz_attempts_count, learndash_get_user_quiz_attempts_time_spent, learndash_is_lesson_notcomplete_legacy, learndash_is_quiz_accessable_legacy, learndash_is_topic_notcomplete_legacy, learndash_lms_reports_page, learndash_on_iis, learndash_process_mark_complete_legacy, learndash_report_user_courses_progress, learndash_set_course_prerequisite_enabled, learndash_set_course_prerequisite, learndash_set_exam_challenge_courses, learndash_test_admin_icon, learndash_the_currency_symbol, learndash_update_posts_comment_status, learndash_user_course_last_step, learndash_users_can_register, ls_propanel_set_report_filenames.

Features

  • Added Angie Agentic AI integration.
  • Added compatibility with our MCP Server, available using npm as @stellarwp/learndash-mcp-server.

Fixes

  • Corrected the ldlms/v2 REST API parameter documentation for materials for each ldlms/v2 endpoint.
  • Fixed an issue where administrators could not access essays in GET ldlms/v2/sfwd-essays.
  • Fixed error code handling for the ldlms/v2/sfwd-quiz/{quiz}/statistics, ldlms/v2/sfwd-quiz/{quiz}/statistics/{statistic}, ldlms/v2/sfwd-quiz/{quiz}/statistics/{statistic}/questions and ldlms/v2/sfwd-quiz/{quiz}/statistics/{statistic}/questions/{id} endpoints.
  • Fixed pagination and include/exclude parameters support in the REST API v2 List User Courses endpoint.
  • Resolved an issue when setting dates via the REST API for date fields such as Course and Group Start and End Date. Now they will work with RFC3339 formatted dates as expected.
  • Resolved an issue where Lesson and Topic pagination settings could not be set for Courses using the POST ldlms/v2/sfwd-courses and PATCH ldlms/v2/sfwd-courses/{id} endpoints.
  • Resolved an issue where POST ldlms/v2/sfwd-question and PATCH ldlms/v2/sfwd-question/{id} were unable to set an associated Quiz correctly.
  • Resolved an issue where ldlms/v2/sfwd-courses/{id}/users would return the wrong users.
  • Resolved an issue where ldlms/v2/sfwd-question and ldlms/v2/sfwd-question/{id} would not return answer data.
  • Resolved an issue where a default was not being shown for endpoints under /learndash/v1/docs/openapi.
  • Resolved an issue where some fields marked as being exposed to the ldlms/v2 REST API would not be exposed properly.
  • Resolved an issue where the Quiz Statistic link would not be included with the results for ldlms/v2/users/{id}/quiz-progress when it should be.
  • Resolved an issue where the step_status field was incorrect in the REST API v2 User Course Progress Steps endpoint.
  • Resolved an issue where updating a quiz using the REST API could change the internal quiz pro ID.
  • The page and per_page parameters for ldlms/v2/users/{id}/quiz-progress now work as expected.
  • POST ldlms/v2/sfwd-question and PATCH ldlms/v2/sfwd-question/{id} now set answer data using the already documented answer key instead of the undocumented _answerData.
  • ldlms/v2 REST API endpoints to retrieve a specific resource no longer expose the wrong parameters.

Tweaks

  • Added documentation for the approved_status parameter for the GET ldlms/v2/sfwd-assignment endpoint.
  • Added pagination support to the REST API v2 User Course Progress Steps endpoint.
  • Added request body examples to OpenAPI documentation of ldlms/v2/sfwd-courses/{id}/steps.
  • Added the REST API v2 User Course Progress Exam endpoint.
  • Added the date_gmt field in the ldlms/v2/sfwd-quiz/{quiz}/statistics endpoint.
  • Added the date_started_gmt and date_completed_gmt fields to the REST API v2 User Course Progress Steps endpoint.
  • Added the date_started_gmt and date_completed_gmt fields to the REST API v2 User Course Progress endpoints.
  • Added the enrolled_at and enrolled_at_gmt fields to the REST API v2 List User Courses endpoint.
  • Added the ldlms/v2/users/{user_id}/courses/{course_id} endpoint to allow updating an enrollment date for a user.
  • Added the learndash/v1/progress-status, learndash/v1/progress-status/{type} and learndash/v1/progress-status/{type}/{slug} endpoints.
  • Added the step_name field to the REST API v2 User Course Progress Steps endpoint.
  • Added the value field to the ldlms/v2/progress-status/ and ldlms/v2/progress-status/{slug}/ endpoints.
  • Adds the following fields to the ldlms/v2/groups and ldlms/v2/groups/{id} endpoints: group_start_date, group_end_date, group_courses_order_enabled, group_seats_limit.
  • Administrators can now access the GET ldlms/v2/sfwd-question endpoint whether or not the "Bypass Course limits" setting is enabled or disabled.
  • All logged in users can now access the GET ldlms/v2/sfwd-assignment and GET ldlms/v2/sfwd-assignment/{id} endpoints. Admins will be able to retrieve all Assignments, Group Leaders only Assignments submitted by themselves or a user within one of their Groups for Courses within those Groups, and all other users will only be able to retrieve their own Assignments.
  • By default, learndash/v1/docs/openapi no longer documents certain HTTP methods for ldlms/v2 endpoints in order to save on token size. This can be reverted to the previous functionality using learndash/v1/docs/openapi?trim=false.
  • Group Course pagination settings can now be set via POST ldlms/v2/groups and PATCH ldlms/v2/groups/{id}. At this time, this setting does nothing if Modern Group Pages are enabled.
  • Improved REST API parameter descriptions for setting Course Prerequisites.
  • Improved parameters description for /ldlms/v2/users/{user_id}/course-progress/{course_id} and /ldlms/v2/users/{user_id}/course-progress/{course_id}/steps.
  • Improved parameters description for the ldlms/v2/sfwd-quiz/{quiz}/statistics, ldlms/v2/sfwd-quiz/{quiz}/statistics/{statistic}, ldlms/v2/sfwd-quiz/{quiz}/statistics/{statistic}/questions and ldlms/v2/sfwd-quiz/{quiz}/statistics/{statistic}/questions/{id} endpoints.
  • Improved route discovery for OpenAPI documentation of existing REST API endpoints.
  • Improved the ldlms/v2/question-types/ and ldlms/v2/question-types/{slug}/ endpoints. Added the value field, removed the description field, updated the slug field to be a hyphenated slug instead of an underscore slug, both variants are supported for compatibility.
  • Improved the descriptions for parameters in the ldlms/v2/sfwd-quiz and ldlms/v2/sfwd-quizzes endpoints.
  • Improved the descriptions for parameters in the ldlms/v2/users/{user_id}/course-progress/* endpoints.
  • Normalized the ldlms/v2/users/{user_id}/courses endpoints to always return the code field with the learndash_ prefix.
  • Normalized the ldlms/v2/users/{user_id}/groups endpoints to always return the code field with the learndash_ prefix.
  • Now lesson and topicparameters in GET ldlms/v2/sfwd-essays work with or without the course parameter.
  • Now the GET endpoint ldlms/v2/users/{user_id}/course-progress/{course_id}/steps returns the status value in the step_status field (with underscore).
  • Now the GET endpoints ldlms/v2/users/{user_id}/course-progress and ldlms/v2/users/{user_id}/course-progress/{course_id} returns the status value in the progress_status field (with underscore).
  • Now the date field from the ldlms/v2/sfwd-quiz/{quiz}/statistics endpoint returns the date in the local timezone.
  • Removed admin alerts related to Solid Backups.
  • Removed the "Course Admin Auto-enrollment" permission dependency for administrators in wp-json/ldlms/v2/sfwd-courses/<id>/steps.
  • Removed the nested array from the GET endpoint /ldlms/v2/users/{user_id}/course-progress/{course_id}.
  • Removed the nested array from the REST API v2 User Course Progress Steps endpoint.
  • Removed the nested array from the ldlms/v2/sfwd-quiz/{quiz}/statistics/{statistic}/questions/{id}endpoint response.
  • Removed the unused search parameter from ldlms/v2/users/{id}/quiz-progress.
  • Retrieving quizzes via ldlms/v2/sfwd-quiz no longer requires a course parameter for administrators.
  • The GET endpoint ldlms/v2/groups/{id}/courses now returns the same fields as the GET ldlms/v2/sfwd-courses endpoint.
  • The GET endpoint ldlms/v2/users/{user_id}/courses now returns the same fields as the GET ldlms/v2/sfwd-courses endpoint.
  • The GET endpoint ldlms/v2/users/{user_id}/groups now returns the same fields as the GET ldlms/v2/groups endpoint.
  • The REST API settings section under LearnDash LMS -> Settings -> Advanced is now hidden if you had not made any modifications there previously.
  • The PATCH ldlms/v2/sfwd-assignment endpoint is now available to admins and any user with the ability to edit other user's Assignments, which normally would only include Group Leaders. Admins can edit any user's Assignments including their own. Group Leaders will only be able to edit those belonging to users within their Groups and only for Assignments submitted for a Course within their Groups.
  • The course_start_date and course_end_date field types for POST ldlms/v2/sfwd-courses and PATCH ldlms/v2/sfwd-courses/{id} have been reverted to string as they were before v4.25.2.
  • The custom_fields_forms parameter for ldlms/v2/sfwd-quiz and ldlms/v2/sfwd-quiz/{id} is now marked read-only. Attempting to set the value previously did nothing.
  • The date_started and date_completed fields in the REST API v2 User Course Progress endpoints now return the date in the site timezone.
  • The ldlms/v2/sfwd-quiz and ldlms/v2/sfwd-quiz/{id} endpoints now accept and return WordPress Post IDs for the prerequisites field instead of internal Pro Quiz IDs.
  • The ldlms/v2/sfwd-quiz endpoint no longer requires the course parameter for non-administrators if they pass through a lesson or topic parameter when Shared Course Steps are disabled.
  • The ldlms/v2/users/{user_id}/course-progress/{course_id}/steps endpoint now returns the appropriate progress status based on the post type of the course step.
  • The learndash/v1/docs/openapi endpoint now explicitly lists the namespace as part of the paths key to avoid potential collisions across namespaces.
  • The parameter description for question_type for the ldlms/v2/sfwd-question and ldlms/v2/sfwd-question/{id} endpoints has been improved.
  • Updated the order parameter for ldlms/v2/users/{id}/quiz-progress to no longer be case sensitive.
  • Updated the orderby parameter for ldlms/v2/users/{id}/quiz-progress to no longer expect ID when sorting by IDs and can now also accept id as it was documented.
  • Updated the required WP version from 6.6 to 6.7.
  • POST ldlms/v2/sfwd-question and PATCH ldlms/v2/sfwd-question/{id} now return the same structure as GET ldlms/v2/sfwd-question/{id}.
  • prerequisite_enabled is no longer exposed to the REST API for ldlms/v2/sfwd-courses and ldlms/v2/sfwd-courses/{id}. This setting is not meant to be set via the REST API and you should instead set requirements_for_enrollment to course_prerequisite_enabled for the same behavior.
  • Added filters: learndash_model_assignment_course, learndash_post_type_progress_statuses, learndash_settings_section_{$this->settings_section_key}_is_visible.
  • Added functions: learndash_course_challenge_exam_get_questions_stats, learndash_get_user_quiz_average.
  • Updated filters: learndash_group_courses_per_page, learndash_quiz_info_paged, learndash_rest_openapi_documentation.
  • Updated functions: learndash_course_get_completed_steps, learndash_course_status, learndash_get_certificate_link, learndash_get_course_data, learndash_get_course_groups, learndash_get_course_lessons_list, learndash_get_course_progress, learndash_get_course_quiz_list, learndash_get_course_steps_count, learndash_get_course_steps, learndash_get_global_quiz_list, learndash_get_lesson_quiz_list, learndash_get_topic_list, learndash_group_enrolled_courses, learndash_is_lesson_notcomplete, learndash_is_quiz_accessable, learndash_is_topic_notcomplete, learndash_is_user_in_group, learndash_process_mark_complete.