Contact Form 7’s field types are not a fixed list. They are registered by modules, and add-ons register more — so a type that exists on one site genuinely does not exist on another.
contact-form-7/list-field-types reports what this site actually supports, with two useful flags per type: whether it accepts a field name, and whether its value can appear in mail.
At a glance
| Ability | contact-form-7/list-field-types |
| Toolset | Contact Form 7 — toolset/contact-form-7 |
| Group | Contact Form 7 › Fields & Template |
| Requires | Contact Form 7, active on the site |
| Capability | manage_options, plus read_contact_forms |
| Safety | Read-only — changes nothing |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
How it works
Check here before adding a field. Adding a type the site has not registered produces a tag that renders as literal text on the front end — visible, ugly, and not obviously an error in the admin.
Types that do not accept a name are controls: the submit button, a reCAPTCHA widget. They cannot be referenced from a mail template because they collect nothing.
Appending an asterisk to a type name makes the field required — email* rather than email. The add and update abilities take a required boolean instead and compose the asterisk for you.
Input
This ability takes no input.
What comes back
| Name | Type | What it is |
|---|---|---|
types | array | One entry per registered type, with its name-accepting and mail-capable flags. |
count | integer | How many types are registered. |
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:
Can I add a file upload field to a form on this site?
It resolves to one call:
{
"ability": "contact-form-7/list-field-types",
"parameters": {}
}Worth knowing
- The answer is site-specific and changes when a plugin is activated. Do not cache it across sites.
- Do not pass the asterisk form to
contact-form-7/add-form-field. Userequired: trueand let it compose the tag. - A type with no mail capability collects nothing a notification can reference.
Related abilities
- Add Contact Form Field — use a type from this list
- List Contact Form Fields — what one form already uses
- Update Contact Form Field — change a field to another type
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category