learndash/reorder-steps sets the order of the steps directly under one parent: the lessons in a course, the topics in a lesson, or the quizzes under any of the three.
The list must be complete.
At a glance
| Ability | learndash/reorder-steps |
| Toolset | LearnDash — toolset/learndash |
| Group | LearnDash › Course Structure |
| Requires | AcrossAI Pro, plus LearnDash LMS active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Pro 0.9.16 and later |
Why a partial list is rejected
A partial list would require guessing where the omitted steps go — before, after, or in their existing relative positions — and every guess is wrong for some caller.
Guessing wrongly produces a course outline in an order nobody chose, which learners then move through. So it is refused instead.
That makes learndash/get-course-structure a required first call: the current IDs at that level are what the list has to contain.
One level at a time. Reordering the lessons in a course does not touch the topics inside them, and reordering the topics in a lesson is a separate call with that lesson as the parent.
Order matters more on LearnDash than on most content, because lesson progression is sequential by default — the order is the path through the course, not just a display preference.
Idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
course_id | integer | Yes | The course. |
parent_id | integer | No | The parent whose children to reorder. Omit for the course. |
step_ids | array | Yes | The complete list of that level’s children, in the order you want them. |
What comes back
| Name | Type | What it is |
|---|---|---|
order | array | The resulting order. |
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:
Move the intro lesson to the top of the course.
It resolves to one call:
{
"ability": "learndash/reorder-steps",
"parameters": {
"course_id": 412,
"step_ids": [520, 521, 522]
}
}Worth knowing
- A partial list is rejected rather than guessed at.
- Read the current order first.
- One level per call.
- Order is the learner’s path, not a display preference.
Related abilities
- LearnDash Get Course Structure — get the current order
- LearnDash Attach Step — add before reordering
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category