Ajax Contact Form


This contact form plugin is used to create a simple contact form using Ajax technology and advanced spam protection (Google reCAPTCHA v3). In difference to most other plugins, there is no form-builder included.

Check the features:

  • Protect your forms against spam using Google reCAPTCHA v3 (optional)
  • Protect your forms by blocking specific countries which are not relevant for your website (optional)
  • Works with the default wp_mail() function (use it together with the Postmark for WordPress plugin to send emails via SMTP)
  • Options for the email subject and the from/to email addresses
  • You can translate all text using a localization tool
  • Fully translated into the Dutch language
  • The form HTML is compatible with the Bootstrap CSS framework
  • Use the CSS style-sheet included by the plugin (optional)
  • Track successfully submitted forms in Google Analytics and/or Clicky
  • Uninstall function, the plugin removes the option values on removal!

The plugin is built to keep stuff simple. If you need a complex web form or if you need a form builder, please use one of the popular form plugins. To use the “Block countries” feature you need an API key. Open a free ipstack account to get a key that is good for 10.000 API requests.


  • An example how the form looks like.
  • Settings for the Ajax contact form.


The quickest method for installing the Ajax contact form is:

  1. Automatically install using the built-in WordPress Plugin installer or…
  2. Upload the entire fws-ajax-contact-form folder to the /wp-content/plugins/ directory.
  3. Activate the plugin through the ‘Plugins’ menu in WordPress.
  4. Add the shortcode [FWSAjaxContactForm] into the page of your choice.


How to add a manual goal in Clicky?

If you use a Clicky premium plan it’s possible to track goals.

  1. In Clicky click on Goals > Setup > Create a new goal.
  2. Enter a name for the goal
  3. Check the “Manual Goal” checkbox and click “Submit”
  4. Copy/paste the ID into the field from the plugin options page


There are no reviews for this plugin.

Contributors & Developers

“Ajax Contact Form” is open source software. The following people have contributed to this plugin.


Translate “Ajax Contact Form” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



After more than 3 years a new version. The plugin worked during the whole time and it was compatible with all past WordPress versions (I use the plugin on my own website). This version has some new features and the Mailgun validation is removed. Please check the settings page after the update and modify the settings if necessary. Check also the translations, beside the news string, some of them are replaced by new ones.

  • Enhancement

    • New feature: Prevent spam by blocking countries if they are not relevant for your website.
    • New feature: Fight spam using Google reCAPTCHA v3.
    • Update: The tracking feature for Google Analytics is updated. We support now the gtag.js version.
    • Update: The feature for multiple subjects is improved.
    • Update: The callback function is using now WordPress functions for sanitizing the field values.
    • Update: The form has now a field for a phone number (it’s not a required field)
  • Other

    • The Mailgun email address validation feature is removed.

  • Other
    • If you use the Mailgun e-mailadres validation, check this announcement They lowered their free quota!
    • The plugin is tested for WordPress 4.8.1


  • Other

    • Replaced the link for the “Codestyling Localization” plugin. The plugin doesn’t exists anymore, I use “Loco Translate” now.
    • The plugin is tested for WordPress 4.2


    • Fixed some issues with the (Dutch) translation files
  • Enhancement

    • The contact form message is filtered now by using the function wp_kses() before the message is added to the email message


  • Other

    • Added .pot file for translations
  • Bugfixes

    • Removed the IF statement for the API key value inside the shortcode function. Since version 1.03 the API key isn’t required anymore.
    • Fixed a view option name values inside the function FWS_ajax_contactform_action_callback()
  • Enhancement

    • Added Dutch translations
    • Added a new option to change the “thank you message” (I keep the old text as fallback option)
    • Code optimizations (replaced standard PHP functions and code with native WordPress functions)
    • Added default options to plugin values (where possible)
    • New: Uninstall function – All plugin option are gone on removal


  • Other

    • Added updated screenshots
  • Bugfixes

    • The object name used for wp_localize_script is changed because of possible conflicts with other plugins or themes
  • Enhancement

    • The Mailgun email address validation feature is now optional. The validation process is also moved from client side code (JS) to the server side code (PHP).
    • Before the form gets submitted, a simple email address validation (regular expression) is done.
    • Now it’s possible to enter multiple subjects for the email message. These subjects are used to create a SELECT menu for the contact form
    • It’s possible now to translate the complete plugin

  • Other
    • Added icons for the plugin repository
    • The plugin is tested for WordPress 4.0
    • Added instructions for using the track Clicky goal feature
    • Added an updated screenshot for the plugin settings


  • Bugfixes

    • Removed some typos in the text
  • Enhancement

    • Simple goal or conversion tracking for Google Analytics and Clicky


  • Bugfixes

    • Fixed the name for the nonce verification
    • Removed the bug for the wrong addressing of the ajax call back function
  • Enhancement

    • Added some screenshots and FAQ’s
    • Overwrite the mail subject global setting by using a shortcode attribute


  • Initial release