# WordPress

Add a WordPress contact form with a Custom HTML block posting to FormsReach - no PHP mail plugin required.

## What you will achieve

A contact form on a WordPress page using a **Custom HTML** block (or theme template) that posts to FormsReach.

## Prerequisites

- A [FormsReach form and API key](/docs/getting-started/create-form-api-key/)
- Permission to edit pages (block editor) or theme templates

## Steps

### 1. Create a form and copy the API key

Sign in at [app.formsreach.com](https://app.formsreach.com), create a form, copy the API key.

### 2. Add a Custom HTML block

1. Edit the page where the form should appear.
2. Insert a **Custom HTML** block (not a plain paragraph).
3. Paste:

```html
<form action="https://api.formsreach.com/submit" method="POST">
 <input type="hidden" name="api_key" value="YOUR_ACCESS_KEY" />

 <input type="text" name="name" required />
 <input type="email" name="email" required />
 <textarea name="message" required></textarea>

 <button type="submit">Submit Form</button>
</form>
```

Replace `YOUR_ACCESS_KEY` with your real key.

You can also place the same markup in a child theme template or a reusable block pattern.

### 3. Publish and test

Publish the page, submit once from the live (or preview) URL, open **Submissions**.

## Verify

- The form tags and `api_key` field are still present when you view page source
- Dashboard shows the test row
- Theme CSS can style the form (snippet is unstyled by design)

## Common failures

| Symptom | Check |
|---|---|
| Form tags removed | Use **Custom HTML**, not a text paragraph; some builders strip raw HTML |
| Missing api_key | Editor stripped the hidden input - re-paste and recheck source |
| Caching oddities | Classic form POST works with most caches; avoid minifiers that strip form attributes |
| Domain denied | Add your WordPress host (and `www` if used) to the [allowlist](/docs/submit-api/domains/) |

## Next

- [Test your form](/docs/getting-started/test-your-form/)
- [Email channel](/docs/channels/email/)
- [HTML guide](/docs/frameworks/html/) for non-WordPress static sites
- Marketing landing: [/integrations/wordpress/](/integrations/wordpress/)
