Plus Form is a WordPress ability from The Plus Addons for Elementor — usable via Easy MCP AI, which connects Claude, ChatGPT, and any AI assistant to your site.
Install Free Plugin →Plus Form
WriteAdds the The Plus "Plus Form" widget (tp-plus-form) to an Elementor container.
Requires the The Plus Addons for Elementor plugin (which registers under the 'tpae' ability category) on WordPress 6.9+, with Elementor active. Every ability requires the current user to have the 'edit_posts' capability (and 'edit_post' for the specific post being modified); abilities that create or edit content also verify Elementor and, where relevant, the target The Plus widget are available. A subset of abilities (theme templates, template conditions, dynamic tags, popups, and some custom-code abilities) only register when Elementor Pro is active, and many widget abilities load only in the free plugin when the Pro add-on is inactive.
What it does
The execute callback tpae_mcp_add_theplus_plus_form_ability checks that Elementor is active and the tp-plus-form widget is registered, loads the target post's Elementor page data, and maps a very large set of form-builder properties into the widget settings when present in input, covering field definitions (type, label, placeholder, validation), submission actions (email, redirect, webhook, and integrations like ActiveCampaign, Mailchimp, Brevo, ConvertKit, GetResponse, MailerLite, Drip, Slack, Discord), and extensive styling controls for form title, labels, fields, buttons, and messages, merged with any raw settings object. It then constructs a new widget element with a generated ID, inserts it into the specified parent container at the given position, and saves the Elementor page data. Requires post_id, parent_id, and form_title.
See it in action
You ask your AI assistant
"Create a Plus Form named 'Newsletter Signup' with email and name fields that submits to Mailchimp and shows a custom success message."
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| post_id | integer | Yes | Elementor page/post ID |
| parent_id | string | Yes | Target Elementor container ID |
| position | integer | No | Insert position. Use -1 to append. |
| form_title | string | Yes | Form Name |
| form_fields | string | No | Type |
| field_label | string | No | Label |
| dropdown_options | string | No | Options |
| place_holder | string | No | Placeholder |
| required | string | No | Required |
| autofill | string | No | Autofill |
| country_code_detection | string | No | Country Code Detection |
| default_country_code | string | No | Default Country Code |
| enable_link | string | No | Enable Link |
| link_label | string | No | Link Label |
| terms_url | object | No | URL |
| column_width | object | No | Column Width (Slider/Size Object) |
| country_code_width | object | No | Country Code Width (Slider/Size Object) |
| options_direction | object | No | Position |
| options_position | object | No | Option Position |
| option_gap | object | No | Option Gap (Slider/Size Object) |
| textarea_rows | string | No | Rows |
| field_default_value | string | No | Default Value |
| field_help | string | No | Help Text |
| field_ad | string | No | Aria Description |
| field_id | string | No | Unique ID |
| field_shortcode | string | No | Data Shortcode |
| tabs | array | No | tabs |
| button_submit | string | No | Button Text |
| button_icon_style | string | No | Icon Font |
| icon_fontawesome_5 | string | No | Icon Library |
| icon_position | string | No | Icon Position |
| inline_button | string | No | Inline Button |
| button_inline_width | object | No | Button Width (Slider/Size Object) |
| button_column_width | object | No | Button Width (Slider/Size Object) |
| button_id | string | No | Button ID |
| add_action | string | No | Add Action |
| email_to | string | No | Email Address |
| email_cc | string | No | Email Address |
| email_bcc | string | No | Email Address |
| email_subject | string | No | Subject |
| email_heading | string | No | Email Heading |
| email_message | string | No | Message |
| email_from | string | No | From Email |
| email_from_name | string | No | From Name |
| email_reply_to | string | No | Reply-To |
| redirect_to | object | No | Redirect To |
| ar_email_subject | string | No | Subject |
| ar_email_heading | string | No | Email Heading |
| ar_email_message | string | No | Message |
| ar_email_from | string | No | From Email |
| ar_email_from_name | string | No | From Name |
| ar_email_reply_to | string | No | Reply-To |
| ac_custom_key | string | No | API Key |
| ac_custom_url | string | No | API URL |
| brevo_api_key | string | No | API Key |
| brevo_list_id | string | No | List ID |
| convertkey_api_key | string | No | API Key |
| convertkey_form_id | string | No | Form ID |
| getresponse_api_key | string | No | API Key |
| getresponse_list_token | string | No | List Token |
| mailchimp_api_key | string | No | API Key |
| mailchimp_audience_id | string | No | Audience ID |
| mailerlite_api_key | string | No | API Key |
| mailerlite_group_id | string | No | Group ID |
| drip_api_key | string | No | API Key |
| drip_account_id | string | No | Account ID |
| webhook_url | string | No | URL |
| slack_token | string | No | User OAuth Token |
| slack_channel_name | string | No | Channel Name |
| discord_url | string | No | Discord URL |
| discord_username | string | No | Username |
| success_message | string | No | Success Message |
| required_fields | string | No | Mandatory Fields |
| invalid_form | string | No | Form Validation Error |
| form_error | string | No | Submission Issue |
| server_error | string | No | Server Issue |
| form_id | string | No | Form ID |
| form_title_display | string | No | Show Form Title |
| label_display | string | No | Show Label |
| required_mask | string | No | Required Mark |
| form_column_gap | object | No | Columns Gap (Slider/Size Object) |
| form_row_gap | object | No | Rows Gap (Slider/Size Object) |
| form_title_heading | string | No | Form Title |
| form_title_padding | object | No | Padding (Dimensions Object) |
| form_title_margin | object | No | Margin (Dimensions Object) |
| form_title_position | object | No | Text Align |
| form_title_color | string | No | Text Color (Color Hex/RGBA) |
| form_title_border_radius_normal | object | No | Border Radius (Dimensions Object) |
| form_title_color_hover | string | No | Text Color (Color Hex/RGBA) |
| form_title_border_radius_hover | object | No | Border Radius (Dimensions Object) |
| form_label_heading | string | No | Label |
| form_label_spacing | object | No | Spacing (Slider/Size Object) |
| form_label_position | object | No | Text Align |
| form_text_color | string | No | Text Color (Color Hex/RGBA) |
| form_text_color_hover | string | No | Text Color (Color Hex/RGBA) |
| form_required_mark_color | string | No | Required Mark Color (Color Hex/RGBA) |
| form_field_padding | object | No | Padding (Dimensions Object) |
| form_field_margin | object | No | Margin (Dimensions Object) |
| form_placeholder_position | object | No | Input Text Align |
| form_placeholder_text_color | string | No | Text Color (Color Hex/RGBA) |
| form_field_bg_color_normal | string | No | Background Color (Color Hex/RGBA) |
| form_field_border_radius_normal | object | No | Border Radius (Dimensions Object) |
| form_placeholder_text_color_hover | string | No | Text Color (Color Hex/RGBA) |
| form_field_bg_clr_hover | string | No | Background Color (Color Hex/RGBA) |
| form_field_border_radius_hover | object | No | Border Radius (Dimensions Object) |
| form_placeholder_text_color_active | string | No | Text Color (Color Hex/RGBA) |
| form_field_bg_clr_active | string | No | Background Color (Color Hex/RGBA) |
| form_field_border_radius_active | object | No | Border Radius (Dimensions Object) |
| dropdown_checkbox_radio | string | No | Radio |
| form_radio_checkbox_padding | object | No | Option Padding (Dimensions Object) |
| cr_input_scale | object | No | Input Scale (Slider/Size Object) |
| radio_cb_text_color | string | No | Text Color (Color Hex/RGBA) |
| radio_cb_option_color | string | No | Option Color (Color Hex/RGBA) |
| radio_cb_text_color_hover | string | No | Text Color (Color Hex/RGBA) |
| radio_cb_option_color_hover | string | No | Option Color (Color Hex/RGBA) |
| checkbox_style_heading | string | No | Checkbox |
| form_checkbox_padding | object | No | Option Padding (Dimensions Object) |
| cb_input_scale | object | No | Input Scale (Slider/Size Object) |
| checkbox_text_color | string | No | Text Color (Color Hex/RGBA) |
| checkbox_option_color | string | No | Option Color (Color Hex/RGBA) |
| checkbox_text_color_hover | string | No | Text Color (Color Hex/RGBA) |
| checkbox_option_color_hover | string | No | Option Color (Color Hex/RGBA) |
| dropdown_styles | string | No | Dropdown |
| dropdown_option_color | string | No | Option Color (Color Hex/RGBA) |
| att_styles | string | No | Agree to Terms |
| agree_to_terms_link_clr | string | No | Link Text Color (Color Hex/RGBA) |
| agree_to_terms_link_clr_hover | string | No | Link Text Color (Color Hex/RGBA) |
| form_button_padding | object | No | Padding (Dimensions Object) |
| form_button_margin | object | No | Margin (Dimensions Object) |
| form_button_position | object | No | Position |
| form_button_alignment | object | No | Alignment |
| form_button_icon_spacing | object | No | Icon Spacing (Slider/Size Object) |
| form_button_icon_size | object | No | Icon Size (Slider/Size Object) |
| form_button_text_color | string | No | Text Color (Color Hex/RGBA) |
| form_button_icon_color | string | No | Icon Color (Color Hex/RGBA) |
| icon_fill_color | string | No | Fill (Color Hex/RGBA) |
| icon_stroke_color | string | No | Stroke (Color Hex/RGBA) |
| form_btn_bg_type | string | No | Background Type |
| form_button_background_color | string | No | Color (Color Hex/RGBA) |
| form_btn_gradient_color1 | string | No | Color 1 (Color Hex/RGBA) |
| form_btn_gradient_color1_control | object | No | Color 1 Location (Slider/Size Object) |
| form_btn_gradient_color2 | string | No | Color 2 (Color Hex/RGBA) |
| form_btn_gradient_color2_control | object | No | Color 2 Location (Slider/Size Object) |
| form_btn_gradient_style | string | No | Gradient Style |
| form_btn_gradient_angle | object | No | Gradient Angle (Slider/Size Object) |
| form_btn_gradient_position | string | No | Position |
| form_button_border_radius | object | No | Border Radius (Dimensions Object) |
| form_button_hover_text_color | string | No | Text Color (Color Hex/RGBA) |
| form_button_icon_hover_color | string | No | Icon Color (Color Hex/RGBA) |
| icon_fill_color_hover | string | No | Hover Fill (Color Hex/RGBA) |
| icon_stroke_color_hover | string | No | Hover Stroke (Color Hex/RGBA) |
| form_btn_hvr_bg_type | string | No | Background Type |
| form_button_hover_background_color | string | No | Color (Color Hex/RGBA) |
| form_btn_hvr_gradient_color1 | string | No | Color 1 (Color Hex/RGBA) |
| form_btn_hvr_gradient_color1_control | object | No | Color 1 Location (Slider/Size Object) |
| form_btn_hvr_gradient_color2 | string | No | Color 2 (Color Hex/RGBA) |
| form_btn_hvr_gradient_color2_control | object | No | Color 2 Location (Slider/Size Object) |
| form_btn_hvr_gradient_style | string | No | Gradient Style |
| form_btn_hvr_gradient_angle | object | No | Gradient Angle (Slider/Size Object) |
| form_btn_hvr_gradient_position | string | No | Position |
| form_button_hover_border_radius | object | No | Border Radius (Dimensions Object) |
| button_spinner | string | No | Spinner |
| button_spinner_size | object | No | Spinner Size (Slider/Size Object) |
| button_spinner_thickness | object | No | Spinner Thickness (Slider/Size Object) |
| spinner_inner_color | string | No | Spinner Inner Color (Color Hex/RGBA) |
| spinner_color | string | No | Spinner Color (Color Hex/RGBA) |
| form_help_padding | object | No | Padding (Dimensions Object) |
| form_help_margin | object | No | Margin (Dimensions Object) |
| help_text_color | string | No | Text Color (Color Hex/RGBA) |
| form_msg_align | object | No | Message Text Align |
| form_success_message_color | string | No | Success Message Color (Color Hex/RGBA) |
| form_error_message_color | string | No | Error Message Color (Color Hex/RGBA) |
| form_success_msg_bg_clr | string | No | Success Message Background Color (Color Hex/RGBA) |
| form_error_msg_bg_clr | string | No | Error Message Background Color (Color Hex/RGBA) |
| form_inline_message_color | string | No | Inline Message Color (Color Hex/RGBA) |
| form_success_msg_clr_hover | string | No | Success Message Color (Color Hex/RGBA) |
| form_error_msg_clr_hover | string | No | Error Message Color (Color Hex/RGBA) |
| form_success_msg_bg_clr_hover | string | No | Success Message Background Color (Color Hex/RGBA) |
| form_error_msg_bg_clr_hover | string | No | Error Message Background Color (Color Hex/RGBA) |
| form_inline_message_color_hover | string | No | Inline Message Color (Color Hex/RGBA) |
| mandatory_field_message | string | No | Mandatory Field Message |
| mandatory_field_message_color | string | No | Color (Color Hex/RGBA) |
| settings | object | No | Raw Elementor control key/value pairs to merge. Supports multi-step styles, reCAPTCHA v3, and Mailchimp/WooCommerce integrations. |
Returns
Returns an object with the new widget's element_id, the widget_type (tp-plus-form), and the post_id it was inserted into.
Permission
Requires the current user to have the edit_posts capability, and if a post_id is supplied, also requires edit_post capability for that specific post.
More The Plus Addons for Elementor abilities
Accordion
Adds The Plus Addons "Accordion" widget (tp-accordion) to an Elementor container.
Add Code Snippet
Creates a site-wide Custom Code snippet using Elementor Pro, injecting CSS/JS/meta into the head or body on all pages.
Add Container
Adds a new Elementor flex container to a page or nests it inside another existing container.
Add Container
Adds a flex or grid container to a page, optionally nested inside a parent container.
Add Custom CSS
Adds custom CSS to a specific element or to the entire page (requires Elementor Pro).
Add Custom JavaScript
Adds a custom JavaScript snippet to a page by inserting an HTML widget containing a <script> tag; works with free Elementor.