Update Form Styling is a WordPress ability from Fluent Forms — usable via Easy MCP AI, which connects Claude, ChatGPT, and any AI assistant to your site.

Install Free Plugin →

Update Form Styling

Write
Fluent Forms Forms fluentform/update-form-styling

Change a form's theme preset and/or custom CSS.

Needs the Fluent Forms MCP server switched on in FluentForm → Settings → MCP, and WordPress 6.9+ so wp_register_ability() exists (abilities are only registered when the function is present). Reaching the server also requires a logged-in WordPress user holding at least one FluentForm capability. Each ability additionally checks a specific FluentForm capability (e.g. fluentform_dashboard_access, fluentform_forms_manager, fluentform_entries_viewer, fluentform_manage_entries, fluentform_view_payments, fluentform_settings_manager) via the plugin's own Acl system, and every write ability requires a two-step dry_run → confirm_token round-trip through WriteGuard before anything is persisted. Note (from source comments): a WordPress role granted FluentForm access via the Role Manager passes every per-ability capability check, including delete-submission and bulk delete_permanently — the real boundary for such a user is 'has FluentForm access, restricted to their form scope', not per-tool separation; only individually-assigned 'specific forms' managers are gated the way each ability's declared capability implies.

What it does

Updates a form's styler_theme (preset id, always writable) and/or custom css. Writing css requires the caller to additionally hold the unfiltered_html WordPress capability — the same gate the admin styler enforces — and any css value is run through fluentformSanitizeCSS, which blanks and rejects the whole value if it contains an HTML tag (guarding against a </style><script> breakout). Structured styler_styles are read-only here (edit them in the form styler UI) and custom JS is not editable through MCP at all; unknown keys are rejected rather than silently dropped. The write runs inside a row-locked transaction that re-verifies the form's style state hasn't changed since the dry-run preview, refusing with STATE_CHANGED if it has. Requires dry_run:true first to preview the before/after and obtain a confirm_token, then a repeat call with the same values plus confirm_token to execute.

See it in action

You ask your AI assistant

"Change form 12's theme to the default preset."

Inputs

Name Type Required Description
form_id integer Yes Required. The form to restyle.
styler_theme string No Theme preset id (e.g. ffs_default).
css string No Custom CSS (requires the unfiltered_html capability).
dry_run boolean No Preview the change without writing; returns a confirm_token.
confirm_token string No The token from the dry_run preview, required to execute.
idempotency_key string No Optional; a retry with the same key will not act twice.

Returns

On dry_run: the form_id and a changes object showing the from/to for each requested field (styler_theme and/or a preview of the css), plus a confirm_token. On execute: the form_id and an updated array naming which keys (styler_theme, css) were written.

Permission

Requires the fluentform_forms_manager capability; writing css additionally requires the unfiltered_html WordPress capability.

Newsletter

The AI + WordPress space moves fast. Keep up.

New tools, workflow ideas, and product updates — be the first to know what's next.

No spam, unsubscribe anytime.