geodirectory/delete-package permanently deletes a pricing package and its settings. It requires confirm_name matching the package name.
The default package cannot be deleted — set another as default first.
Before you run it
Listings on the package are not deleted — they are left pointing at a package that no longer exists, which means their expiry, their field permissions and their renewal behaviour all reference something gone. That case requires confirm_orphan_listings. Move the listings to another package first.
At a glance
| Ability | geodirectory/delete-package |
| Toolset | GeoDirectory — toolset/geodirectory |
| Group | GeoDirectory › Pricing Packages |
| Requires | AcrossAI Pro, plus GeoDirectory active on the site |
| Capability | manage_options |
| Safety | Destructive — requires confirm_name, and confirm_orphan_listings when listings are still on the package. |
| 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
Deleting a package that still has listings leaves those listings in an undefined state. The package governed their expiry, which fields they may use, and what happens at renewal, and all three now point at nothing.
The symptoms vary and none of them are obvious: fields that stop saving, listings that do not expire when they should, renewals that fail.
So the sequence is to move the listings to another package first, then delete. geodirectory/list-packages shows what is available and geodirectory/get-listing-package confirms what an individual listing is on.
Refusing to delete the default is a hard rule rather than a confirmation. A directory with no default package cannot accept a submission, and that is a broken directory rather than a risky state.
Requires the Pricing Manager add-on. Without it there are no packages, and the ability reports that rather than returning nothing.
Not idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
package_id | integer | Yes | Package ID, from geodirectory/list-packages. |
confirm_name | string | Yes | Must match the package name exactly as it is on this site. The guardrail against deleting by ID alone. |
confirm_orphan_listings | boolean | When listings are still assigned | Required when listings are still on this package. |
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 |
|---|---|---|
package_id | integer | The package removed. |
orphaned_listings | integer | How many listings were left pointing at it. |
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:
Delete the discontinued package.
It resolves to one call:
{
"ability": "geodirectory/delete-package",
"parameters": {
"package_id": 5,
"confirm_name": "Legacy annual",
"confirm_orphan_listings": true
}
}Worth knowing
- Orphaned listings lose their expiry, field permissions and renewal behaviour.
- Move the listings first.
- The default package cannot be deleted at all.
- Requires the Pricing Manager add-on.
Related abilities
- GeoDirectory List Pricing Packages — find another package
- GeoDirectory Manage Pricing Package — set a new default first
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category