Form plugins
Form plugins and AjaxPress get along without any setup. This page explains why, and how to check a form on your own site.
Why they work
Most form plugins already submit their forms in the background, with their own script, and show the confirmation message in place. That includes Contact Form 7, WPForms, Fluent Forms, Formidable Forms, Ninja Forms, Forminator, Elementor and Bricks forms, and Gravity Forms with ajax turned on.
When a plugin handles its own submission, AjaxPress sees that and stays out of the way. The form behaves exactly as it does without AjaxPress.
Forms that submit the ordinary way, such as Gravity Forms without ajax, or a hand-written form, are submitted by AjaxPress in the background instead, and the result page appears without a full reload. See Forms.
Things that work as usual
- Validation messages and required fields.
- CAPTCHA, reCAPTCHA and Cloudflare Turnstile. Each page loads its own scripts, so the challenge is set up fresh on every page.
- Multi-step forms, conditional fields and calculations.
- Email notifications and entries, which are handled on your server.
Things to test
After installing AjaxPress, submit each important form once, logged out, and check:
- The confirmation message appears, or the confirmation page loads.
- The notification email and the entry arrive, once.
- If the form redirects after submitting (to a thank-you page, or to a payment page), you land on the right page, and the address bar shows it.
- File upload fields work. Forms with a file field always submit the normal way, which is expected.
If a form misbehaves
| Symptom | Try |
|---|---|
| The entry or email arrives twice | Update AjaxPress (2.4.2 fixed the known cases), then opt the form out |
| The form stops before its confirmation message | Same |
| The page changes, but the confirmation is missing | Opt the form out |
| The form works only after a full page reload | Opt the form out, or exclude the page |
To opt a form out, add data-ajaxpress-ignore-submit to the form or an element around it. With a form plugin, the simplest place is a wrapper: a Custom HTML block around the form’s shortcode, or a custom attribute on the page builder section that holds the form:
<div data-ajaxpress-ignore-submit>
[contact-form-7 id="123"]
</div>
See Forms and Form problems.