5.0.0
2026-02-04 Deprecate4 Feature2 Fix17 Tweak59Deprecates
- 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/v2REST API parameter documentation formaterialsfor eachldlms/v2endpoint. - 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}/questionsandldlms/v2/sfwd-quiz/{quiz}/statistics/{statistic}/questions/{id}endpoints. - Fixed pagination and
include/excludeparameters 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-coursesandPATCH ldlms/v2/sfwd-courses/{id}endpoints. - Resolved an issue where
POST ldlms/v2/sfwd-questionandPATCH ldlms/v2/sfwd-question/{id}were unable to set an associated Quiz correctly. - Resolved an issue where
ldlms/v2/sfwd-courses/{id}/userswould return the wrong users. - Resolved an issue where
ldlms/v2/sfwd-questionandldlms/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/v2REST 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-progresswhen it should be. - Resolved an issue where the
step_statusfield 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
pageandper_pageparameters forldlms/v2/users/{id}/quiz-progressnow work as expected. POST ldlms/v2/sfwd-questionandPATCH ldlms/v2/sfwd-question/{id}now set answer data using the already documentedanswerkey instead of the undocumented_answerData.ldlms/v2REST API endpoints to retrieve a specific resource no longer expose the wrong parameters.
Tweaks
- Added documentation for the
approved_statusparameter for theGET ldlms/v2/sfwd-assignmentendpoint. - 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_gmtfield in theldlms/v2/sfwd-quiz/{quiz}/statisticsendpoint. - Added the
date_started_gmtanddate_completed_gmtfields to the REST API v2 User Course Progress Steps endpoint. - Added the
date_started_gmtanddate_completed_gmtfields to the REST API v2 User Course Progress endpoints. - Added the
enrolled_atandenrolled_at_gmtfields 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}andlearndash/v1/progress-status/{type}/{slug}endpoints. - Added the
step_namefield to the REST API v2 User Course Progress Steps endpoint. - Added the
valuefield to theldlms/v2/progress-status/andldlms/v2/progress-status/{slug}/endpoints. - Adds the following fields to the
ldlms/v2/groupsandldlms/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-questionendpoint whether or not the "Bypass Course limits" setting is enabled or disabled. - All logged in users can now access the
GET ldlms/v2/sfwd-assignmentandGET 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/openapino longer documents certain HTTP methods forldlms/v2endpoints in order to save on token size. This can be reverted to the previous functionality usinglearndash/v1/docs/openapi?trim=false. - Group Course pagination settings can now be set via
POST ldlms/v2/groupsandPATCH 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}/questionsandldlms/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/andldlms/v2/question-types/{slug}/endpoints. Added thevaluefield, removed thedescriptionfield, updated theslugfield 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-quizandldlms/v2/sfwd-quizzesendpoints. - Improved the descriptions for parameters in the
ldlms/v2/users/{user_id}/course-progress/*endpoints. - Normalized the
ldlms/v2/users/{user_id}/coursesendpoints to always return thecodefield with thelearndash_prefix. - Normalized the
ldlms/v2/users/{user_id}/groupsendpoints to always return thecodefield with thelearndash_prefix. - Now
lessonandtopicparameters in GETldlms/v2/sfwd-essayswork with or without thecourseparameter. - Now the GET endpoint
ldlms/v2/users/{user_id}/course-progress/{course_id}/stepsreturns the status value in thestep_statusfield (with underscore). - Now the GET endpoints
ldlms/v2/users/{user_id}/course-progressandldlms/v2/users/{user_id}/course-progress/{course_id}returns the status value in theprogress_statusfield (with underscore). - Now the
datefield from theldlms/v2/sfwd-quiz/{quiz}/statisticsendpoint 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
searchparameter fromldlms/v2/users/{id}/quiz-progress. - Retrieving quizzes via
ldlms/v2/sfwd-quizno longer requires acourseparameter for administrators. - The GET endpoint
ldlms/v2/groups/{id}/coursesnow returns the same fields as the GETldlms/v2/sfwd-coursesendpoint. - The GET endpoint
ldlms/v2/users/{user_id}/coursesnow returns the same fields as the GETldlms/v2/sfwd-coursesendpoint. - The GET endpoint
ldlms/v2/users/{user_id}/groupsnow returns the same fields as the GETldlms/v2/groupsendpoint. - 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-assignmentendpoint 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_dateandcourse_end_datefield types forPOST ldlms/v2/sfwd-coursesandPATCH ldlms/v2/sfwd-courses/{id}have been reverted tostringas they were before v4.25.2. - The
custom_fields_formsparameter forldlms/v2/sfwd-quizandldlms/v2/sfwd-quiz/{id}is now marked read-only. Attempting to set the value previously did nothing. - The
date_startedanddate_completedfields in the REST API v2 User Course Progress endpoints now return the date in the site timezone. - The
ldlms/v2/sfwd-quizandldlms/v2/sfwd-quiz/{id}endpoints now accept and return WordPress Post IDs for theprerequisitesfield instead of internal Pro Quiz IDs. - The
ldlms/v2/sfwd-quizendpoint no longer requires thecourseparameter for non-administrators if they pass through alessonortopicparameter when Shared Course Steps are disabled. - The
ldlms/v2/users/{user_id}/course-progress/{course_id}/stepsendpoint now returns the appropriate progress status based on the post type of the course step. - The
learndash/v1/docs/openapiendpoint now explicitly lists the namespace as part of thepathskey to avoid potential collisions across namespaces. - The parameter description for
question_typefor theldlms/v2/sfwd-questionandldlms/v2/sfwd-question/{id}endpoints has been improved. - Updated the
orderparameter forldlms/v2/users/{id}/quiz-progressto no longer be case sensitive. - Updated the
orderbyparameter forldlms/v2/users/{id}/quiz-progressto no longer expectIDwhen sorting by IDs and can now also acceptidas it was documented. - Updated the required WP version from 6.6 to 6.7.
POST ldlms/v2/sfwd-questionandPATCH ldlms/v2/sfwd-question/{id}now return the same structure asGET ldlms/v2/sfwd-question/{id}.prerequisite_enabledis no longer exposed to the REST API forldlms/v2/sfwd-coursesandldlms/v2/sfwd-courses/{id}. This setting is not meant to be set via the REST API and you should instead setrequirements_for_enrollmenttocourse_prerequisite_enabledfor 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.
