learndash/delete-achievement deletes an achievement badge. It requires confirm_title matching the current title.
What happens next depends entirely on force.
Before you run it
Permanently deleting a badge (force=true) also erases every award of that badge for every learner on the site and reduces all their points totals. That cascade is irreversible, so it requires confirm_data_loss=true on top of the title. Trashing (force=false, the default) does not trigger the cascade and is reversible — prefer it.
At a glance
| Ability | learndash/delete-achievement |
| Toolset | LearnDash — toolset/learndash |
| Group | LearnDash › Achievements |
| Requires | AcrossAI Pro, plus LearnDash LMS active on the site |
| Capability | manage_options |
| Safety | Destructive — permanent deletion erases every award of the badge for every learner. Requires confirm_title, plus confirm_data_loss for the permanent path. |
| 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
Trashing removes the badge from circulation. It stops being awardable, existing awards survive, learners keep their points, and restoring it puts everything back.
Permanent deletion erases every award of that badge across the whole site and reduces every affected learner’s points total accordingly.
That is a site-wide data change triggered by what looks like removing one definition, which is why it needs a second confirmation of its own.
It is also one of the few operations here whose effects are visible to learners immediately: a badge disappears from their profile and their points go down, with no explanation.
To remove a badge from one learner instead, learndash/revoke-achievement takes per-award IDs and affects only them.
Not idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
achievement_id | integer | Yes | The achievement. |
confirm_title | string | Yes | Must exactly match the current title on the live record. |
confirm_data_loss | boolean | For permanent deletion | Acknowledges that every award across the site is erased. |
force | boolean | No | True deletes permanently and cascades; false trashes. |
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 |
|---|---|---|
achievement_id | integer | The achievement. |
awards_erased | integer | How many awards were destroyed, on permanent deletion. |
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:
Retire that badge.
It resolves to one call:
{
"ability": "learndash/delete-achievement",
"parameters": {
"achievement_id": 900,
"confirm_title": "Onboarding complete"
}
}Worth knowing
- Trashing stops the badge without touching anybody’s awards.
- Permanent deletion erases awards site-wide and lowers points totals.
- Learners see the change immediately and unexplained.
- Revoking affects one learner instead.
Related abilities
- LearnDash Revoke Achievement — one learner instead
- LearnDash List Achievements — the award count first
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category