Update Element Settings is a WordPress ability from Premium Addons for Elementor — usable via Easy MCP AI, which connects Claude, ChatGPT, and any AI assistant to your site.

Install Free Plugin →

Update Element Settings

Write
Premium Addons for Elementor Page Builders premium-addons/update-element-settings

Merge new settings into an existing element on a page, working for both classic (v3) and atomic (v4) elements.

Requires the Premium Addons for Elementor plugin on WordPress 7.0+ for the Abilities API (abilities are registered only when the wp_register_ability() function exists). Dashboard, settings and site-inventory abilities (get-id-by-title, list-pages, list-templates, get-global-settings, get-settings, update-setting, scan-usage, disable-unused-widgets, clear-dynamic-assets, subscribe-newsletter) require the caller hold the 'manage_options' capability. premium-addons/create-page requires 'edit_pages'. premium-addons/get-widget-schema, premium-addons/get-addon-schema, premium-addons/list-available-elements, premium-addons/list-pa-addons, premium-addons/detect-atomic-support, premium-addons/check-elementor-element and premium-addons/create-elementor-template require 'edit_posts'. premium-addons/get-page-structure, premium-addons/get-element-settings, premium-addons/add-flexbox, premium-addons/add-container, premium-addons/update-element-settings, premium-addons/insert-widget, premium-addons/remove-element, premium-addons/change-post-status and premium-addons/duplicate-post require 'edit_post' on the target post_id, and deny requests for a nonexistent post_id outright.

What it does

This ability updates an existing element's settings in place, identified by post_id and element_id (find both with premium-addons/get-page-structure), merging only the keys you pass — everything else on the element is left untouched. For v3 elements it's a flat merge into the native settings map using the same control keys premium-addons/get-widget-schema returns. For atomic (v4) elements it splits the input by whether each key is one of the type's content props (from get_props_schema(), e.g. tag, _cssid) or a CSS prop: content keys go into settings, and CSS-prop keys (kebab-case, e.g. flex-direction, background) are merged into the desktop variant of the element's existing local style class, creating one if the element doesn't have one yet. Values may be passed as plain scalars — auto-wrapped into the right atomic $$type envelope, with keys ending in "color" specifically wrapped as color values — or as pre-built { "$$type": …, "value": … } envelopes when you need a type the auto-wrap doesn't infer correctly. It refuses to modify an element whose type isn't currently registered, since Document::save() would drop it anyway. This is the single ability an AI assistant needs to restyle or reconfigure any element already on the page, atomic or classic, without recreating it.

See it in action

You ask your AI assistant

"Change the background color of element abc123 to #1a1a2e and set its padding to 32px on all sides."

Inputs

Name Type Required Description
post_id integer Yes The ID of the Elementor page, post or template containing the element.
element_id string Yes The id of the element to update.
settings object Yes The partial settings to merge into the element — keys you do not pass keep their current values. For v3 elements pass native control keys (e.g. background_background, flex_direction). For atomic (v4) elements pass CSS props in kebab-case (e.g. flex-direction, background) — applied to the element's local style class — and content props (tag, _cssid) — stored in the element settings; values may be plain scalars (auto-wrapped; keys ending in "color" become color values) or full { "$$type": …, "value": … } envelopes. Use premium-addons/get-page-structure to find element ids and current settings. Must include at least one key.

Returns

An object with success (true when the element was updated and saved), element_id, and element_type (the elType, or the widget type for widgets).

Permission

The current user must have the 'edit_post' capability for the target post_id, checked via Helpers::can_edit_input_post(); requests for a nonexistent post_id are denied outright.

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.