Tango Form Wire is built for developers who prefer to own their form markup without rebuilding the submission pipeline every time.
Add one data-form-relay attribute to an existing same-site HTML form and Tango Form Wire handles the handoff to WordPress. You keep full control of your HTML, CSS and frontend experience while the plugin handles submission processing, email delivery, success and error responses, and stored submissions.
There is no form builder or external form API to configure. The built-in spam protection requires no account; an optional Cloudflare Turnstile widget can be enabled when an additional browser-level check is wanted.
What Tango Form Wire handles
You build the form. Tango Form Wire handles the handoff.
The built-in spam protection remains active on every Form without requiring an account. For an additional check, create a Managed widget in Cloudflare Turnstile, open Form Relay > Cloudflare Turnstile, enable the integration, and enter its Site Key and Secret Key. Turnstile can then be enabled independently on each Form.
Each Form offers a Turnstile Location setting. Before the submit button inserts the widget automatically. Manual placement uses an empty element with the data-form-relay-captcha attribute inside the form. The Secret Key can be defined as TANGO_FORM_WIRE_TURNSTILE_SECRET in wp-config.php instead of being stored in WordPress.
When Turnstile is enabled, the visitor’s browser connects to Cloudflare to load the widget and obtain a verification token. Tango Form Wire sends that token to Cloudflare’s Siteverify API before accepting the submission. Tango Form Wire does not send submitted form field contents to Cloudflare.
This service is provided by Cloudflare and is only used after an administrator explicitly configures and enables it:
Filters: form_relay_submission_data, form_relay_email_subject, form_relay_email_html, form_relay_from_email, form_relay_smtp_host, form_relay_smtp_port, form_relay_error_code, form_relay_error_message, form_relay_duplicate_window, form_relay_max_fields, form_relay_max_field_name_length, form_relay_max_field_value_length, form_relay_max_payload_size.
Actions: form_relay_before_send, form_relay_after_send.