learndash-course-progress
Installation
SKILL.md
LearnDash course progress and completion
Treat progress as a coordinated lifecycle across progress usermeta, quiz attempts, activity tables, completion timestamps, parent steps, hooks, and group progress. Do not implement completion by changing one usermeta value.
Choose the correct operation
| Need | Use |
|---|---|
| Read course totals/status | learndash_user_get_course_progress( $user_id, $course_id, 'summary' ) |
| Read completion-order steps | learndash_user_get_course_progress( $user_id, $course_id, 'co' ) |
| Check one step | learndash_user_progress_is_step_complete( $user_id, $course_id, $step_id ) |
| Get a machine-safe course status | learndash_course_status( $course_id, $user_id, true ) |
| Complete one lesson/topic/quiz and recalculate the course | learndash_process_mark_complete() |
| Mark a lesson/topic or its parents incomplete | learndash_process_mark_incomplete() |
| Apply an admin/import progress payload | learndash_process_user_course_progress_update() |
| Complete every step | learndash_user_course_complete_all_steps() |
| Destructively remove course and quiz history | learndash_delete_course_progress() after reviewing its scope below |