learndash/reset-user-progress erases everything a learner has done in one course.
The quiz attempts are the part that cannot be reconstructed.
Before you run it
This erases step completions, the course completion record, and every quiz attempt the learner made on the course — scores, answers and timestamps. There is no undo and no trash. It requires confirm_user_email matching the learner and confirm_data_loss=true. Their enrolment is not touched, so they keep access and start again from zero. If removing access was the intent, learndash/unenroll-user is that operation and it preserves the history.
At a glance
| Ability | learndash/reset-user-progress |
| Toolset | LearnDash — toolset/learndash |
| Group | LearnDash › Progress |
| Requires | AcrossAI Pro, plus LearnDash LMS active on the site |
| Capability | manage_options |
| Safety | Destructive and irreversible — erases completions and every quiz attempt. Requires confirm_user_email and confirm_data_loss. |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Pro 0.9.16 and later |
How it works
Step completions can be re-earned. A quiz attempt cannot — the answers they gave, the score they got and when they sat it are a historical record, and nothing else on the site holds a copy.
On a course used for assessment or compliance, that record may be the thing the course exists to produce.
So two confirmations: the learner’s email, so the right person is being reset, and an explicit data-loss acknowledgement.
The response reports how many steps and quiz attempts were destroyed, which is the only record afterwards.
Enrolment is untouched. The learner keeps access and starts from zero, which is what makes this the right operation for a genuine restart and the wrong one for removing somebody.
Not idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
learner | string | integer | Yes | User ID, login or email. |
course_id | integer | Yes | The course. |
confirm_user_email | string | Yes | Must match the learner’s email address. |
confirm_data_loss | boolean | Yes — must be true | Acknowledges that quiz attempts are destroyed. |
confirm | boolean | Yes — must be true | The irreversibility gate. Without it the call is refused before anything is touched. |
What comes back
| Name | Type | What it is |
|---|---|---|
steps_reset | integer | How many completions were erased. |
attempts_deleted | integer | How many quiz attempts were destroyed. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Reset this learner’s progress so they can start the course again.
It resolves to one call:
{
"ability": "learndash/reset-user-progress",
"parameters": {
"learner": "sam@example.com",
"course_id": 412,
"confirm_user_email": "sam@example.com",
"confirm_data_loss": true
}
}Worth knowing
- Quiz attempts cannot be reconstructed. Nothing else holds them.
- On a compliance course, that record may be the point of the course.
- Enrolment is untouched — they keep access.
- Unenrolling preserves the history instead.
Related abilities
- LearnDash List Quiz Attempts — read the history before erasing
- LearnDash Unenroll User — remove access and keep the record
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category