30 days free. No credit card. Full access from the moment you connect your site.

Start free trial

LearnDash Reset User Progress

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

Abilitylearndash/reset-user-progress
ToolsetLearnDash — toolset/learndash
GroupLearnDash › Progress
RequiresAcrossAI Pro, plus LearnDash LMS active on the site
Capabilitymanage_options
SafetyDestructive and irreversible — erases completions and every quiz attempt. Requires confirm_user_email and confirm_data_loss.
RepeatableNot idempotent — each call changes the row set, so re-running is not a no-op
Ships inAcrossAI 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

NameTypeRequiredWhat it is
learnerstring | integerYesUser ID, login or email.
course_idintegerYesThe course.
confirm_user_emailstringYesMust match the learner’s email address.
confirm_data_lossbooleanYes — must be trueAcknowledges that quiz attempts are destroyed.
confirmbooleanYes — must be trueThe irreversibility gate. Without it the call is refused before anything is touched.

What comes back

NameTypeWhat it is
steps_resetintegerHow many completions were erased.
attempts_deletedintegerHow many quiz attempts were destroyed.
successbooleanWhether the call completed.
messagestringA one-line summary of what happened, suitable for showing a human.
error_codestringPresent 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


Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager

Browse the rest: Every ability, by category


Keep reading