HomeAdd a widgetWordPress

Contact form · WordPress

Add a contact form to WordPress

Build the form in Sorraia, paste one line into WordPress, and every submission lands in your dashboard — styled to match the site, with no plugin and no form-handling code to maintain.

Free plan, no card. Paid plans start at $19 a month.

Why do it this way on WordPress

The usual way to get a form onto WordPress is a form plugin, which means another plugin to keep updated, another place your submissions live, and PHP running in your site to handle a POST. This is a script tag in a Custom HTML block instead — nothing to update, and your submissions sit in Sorraia rather than in the WordPress database, so they survive a theme change, a host migration, or a plugin you decide to remove.

See it working

This is a real Sorraia form — our own contact form, embedded here the same way you would embed yours. Send it something if you like; it reaches us.

How to add a contact form to WordPress

A widget that sits in the page flow goes in a Custom HTML block, on the one page you want it on.

wordpress.org and WordPress.com are not the same gate

Self-hosted WordPress has no plan gating on any of this. WordPress.com does: on the free plan the Custom HTML block strips script, style, link, iframe, frame, form, input, object, textarea and embed tags, so nothing renders — and note that link is on that list, meaning an externally-linked stylesheet is blocked too, not just inline CSS. Its paid plans — Personal, Premium, Business and Commerce — all allow custom code, but you have to install at least one plugin before the plan’s hosting features switch on, so a paid site that has never installed a plugin will still have the embed silently removed.

  1. In Sorraia, add the website and verify it — a DNS TXT record, or a meta tag in your homepage’s <head>. Verification is what lets you attach a widget to that site, so it comes before there is anything to paste.

  2. Save the form and the Copy Embed Code popup appears; you can also open the Install wizard from the form’s row on the Forms page, which walks you through pasting it and re-checks the page for you.

  3. Open the page in WordPress (Pages → hover the page → Edit) and put the cursor where the widget should sit.

  4. Click the Block Inserter (the + icon), search for “HTML”, and choose Custom HTML. In an empty paragraph you can also type /html and press Enter.

  5. Paste the Sorraia snippet into the block, then click Publish or Update on the page.

  6. Open the live page in a new tab to check it. The block editor renders its preview inside a sandbox, so a working widget can look boxed-in or blank while you are editing.

Classic Editor

If the site still runs the Classic Editor, switch from the Visual tab to the Text tab, paste the snippet there, and save without switching back. TinyMCE reformats markup on the round trip and can mangle or drop the script.

What you get

Build the form in Sorraia, paste one line into WordPress, and every submission lands in your dashboard — styled to match the site, with no plugin and no form-handling code to maintain.

Submissions live in your dashboard

Every submission is stored and searchable, filtered by site and date, with no cap on how many you can take — submissions are uncapped on every plan including Free. CSV export is a paid feature, and the export honours whatever filters the list is showing, so what you download is what you were looking at.

It points out which fields hold health data

While you build the form, Sorraia reads your field LABELS and flags the unambiguous ones — date of birth, MRN, insurance or member ID, diagnosis, medication, vitals — and offers to mark them as PHI. It is deliberately conservative and stays quiet on plain name, email and phone fields, because a tool that flags everything gets tuned out. Two things it is not: it reads labels in the builder, never submitted answers, and a marked field only routes into separate encrypted storage once HIPAA is switched on for that site under a signed BAA. Marking is a storage decision, not a compliance certificate — and we are not the ones who get to certify that anyway.

Workflows fire on submit

A submission can send email, post to Slack, hit a webhook, or run a multi-step workflow with conditions. Each run is logged with its result, so a failed delivery is visible rather than silent.

It inherits your brand kit

A new form is seeded from the site’s brand kit at creation, so the first version already looks like your site instead of like a generic form. Restyle it later in the builder and the change reaches live pages without you touching the embed again.

More detail in the Help Center: Forms · Embedding on your website

Things worth knowing about WordPress

  • Silent script stripping is the most common failure. WordPress removes <script> on save from any user without the unfiltered_html capability — always the case for non-Super-Admins on multisite, and often on a single site where a security plugin (Wordfence, Solid Security) or DISALLOW_UNFILTERED_HTML has taken it away. The block saves cleanly and the script is simply gone.
  • Caching and optimisation plugins are the second. WP Rocket, Autoptimize, LiteSpeed Cache and Perfmatters defer, combine, minify or lazy-load JavaScript by default, which breaks async widget loaders. Add the Sorraia script URL to the plugin’s exclusion list.
  • The block editor’s preview pane is a sandboxed iframe, so a floating launcher looks clipped inside the block while you edit and works correctly for visitors. Check the published page, not the editor.

Questions

Where do the submissions go?

Into your Sorraia dashboard, immediately. You can search and filter them, see which site each came from, and route them onward with a workflow — email, Slack, or a webhook. CSV export of the current view is available on paid plans. Nothing is posted to a third-party form service in between, and there is no cap on how many submissions you can receive, on any plan.

Can I change the form after I have embedded it?

Yes, and you never re-paste the snippet. The embed loads the current version of the form each time, so editing fields, wording or styling in the builder updates every page it is on. That is the point of a script tag over a copy-pasted HTML form.

Do I need a plugin to add a Sorraia widget to WordPress?

No. An inline widget goes in a Custom HTML block, which is part of WordPress itself. A plugin is only worth installing for the site-wide case — a floating chat launcher on every page — because a footer snippet plugin like WPCode survives theme updates, while a hand-edited footer.php does not.

The widget disappeared after I saved the page. Why?

Almost always script stripping. WordPress removes script tags on save from users without the unfiltered_html capability, and security plugins remove that capability from ordinary administrators. To confirm: open DevTools → Network, save the block, and inspect the request — if the script is in the request body but missing from the response, something stripped it server-side. Adding it site-wide through a snippet plugin sidesteps the block’s filtering entirely.

Add a contact form to WordPress

Build it in Sorraia, paste one line into your WordPress site, and change it later without touching the embed again.