Contact Form 7


Contact Form 7 can manage multiple contact forms, plus you can customize the form and the mail contents flexibly with simple markup. The form supports Ajax-powered submitting, CAPTCHA, Akismet spam filtering and so on.

Docs & Support

You can find docs, FAQ and more detailed information about Contact Form 7 on If you were unable to find the answer to your question on the FAQ or in any of the documentation, you should check the support forum on If you can’t locate any topics that pertain to your particular issue, post a new topic for it.

Contact Form 7 Needs Your Support

It is hard to continue development and support for this free plugin without contributions from users like you. If you enjoy using Contact Form 7 and find it useful, please consider making a donation. Your donation will help encourage and support the plugin’s continued development and better user support.

Privacy Notices

With the default configuration, this plugin, in itself, does not:

  • track users by stealth;
  • write any user personal data to the database;
  • send any data to external servers;
  • use cookies.

If you activate certain features in this plugin, the contact form submitter’s personal data, including their IP address, may be sent to the service provider. Thus, confirming the provider’s privacy policy is recommended. These features include:

Recommended Plugins

The following plugins are recommended for Contact Form 7 users:

  • Flamingo by Takayuki Miyoshi – With Flamingo, you can save submitted messages via contact forms in the database.
  • Bogo by Takayuki Miyoshi – Bogo is a straight-forward multilingual plugin that doesn’t cause headaches.


You can translate Contact Form 7 on


  • screenshot-1.png


  1. Upload the entire contact-form-7 folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.

You will find ‘Contact’ menu in your WordPress admin panel.

For basic usage, you can also have a look at the plugin web site.


Do you have questions or issues with Contact Form 7? Use these support channels appropriately.

  1. Docs
  2. FAQ
  3. Support Forum



Most horrible update in the history of wordpress plugins

The author of the plugin thought it’s a good idea to ruin a well done plugin.

– reCaptcha disclaimer icon is now shown on EVERY site of your blog
– reCaptcha v3 only, v2 support removed
– Valid configurations are now shown as invalid. e.g. an permanent error is shown if you set the contact form user as email sender. While this is correct to protect plugins users from SPF errors it shouldn’t be shown as annoying permanent error for users who know what they are doing.

I appreciated your hard work on this plugin, but you literally ruined it. You should seriously consider to rollback and think about the user experience for those who are using your plugin for years.

For all new users I would recommend to install version 5.0.5.

A great plugin destroyed

I’ve used Contact Form 7 for years without any issues. It worked perfectly with Recaptcha V2 which was totally effective with very minimal annoyance factor. Then the “upgrade” to Recaptcha V3 completely broke any spam filtering and placed a big logo on every page of my site without warning.

Part of the WordPress philosophy is that you should always update your plugins and that you can trust the updates. This debacle shows that you can’t always trust updates. With such a drastic change and the requirement that you generate and install new keys from Google there should have been a strong warning before the update was installed. You can’t really complain about free stuff but this is ridiculous and the author has been of no help.

I scrapped this plugin and installed Wpforms lite with Recaptcha V2 and my contact form is now working fine again. Don’t trust Contact Form 7!

Latest Contact Form 7 Update ERROR

The latest update simply does not work. We have two sites with contact form 7 and recently updated in good faith assuming everything was organised in advance.

This is not the case as we are now constantly bombarded with hackers, spam and now have the biggest fear of all.. SQL injections!

This was brilliant until latest update

Contact Form 7 has worked brilliantly until the integration of ReCaptcha v3, since when spam has been getting through for the first time. I’m sure this will get fixed in time, but there’s been a very disappointing lack of response from the developer on the support forms. Meanwhile, I have no viable option but to stop using it.

reCAPTCHA V3が効いていない

最新にバージョンにしたら reCAPTCHA V3 にしろとなっていたのでしたのはいいが、まったく効いておらず、BOTのSPAMが届くようになってしまいました。

Catastrophic update

This plugin has always been awesome, until the 5.1 update where recaptcha v3 was forced. Not only is the v3 intrusive with its fixed badge and the amount of data collected, but there is also a bug in the plugin that makes spam protection no longer working at all. This is probably the worst decision ever made by the plugin developer. This update does not consider users, no warning is given before the update… Yet it completely breaks the forms that worked well with v2! I sincerely hope that the developer will make the right choice and restore the v2 that worked very well. I understand it’s a free plugin, but you can’t do that when you know that millions of sites are using it… I will give 5 stars back when this regrettable mistake will be corrected.

Read all 1,481 reviews

Contributors & Developers

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


“Contact Form 7” has been translated into 53 locales. Thank you to the translators for their contributions.

Translate “Contact Form 7” into your language.

Interested in development?

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


For more information, see Releases.


  • reCAPTCHA: Modifies the reaction to empty response tokens.


  • Introduces the Constant Contact integration module.
  • Updates the reCAPTCHA module to support reCAPTCHA v3.
  • Adds Dark Mode style rules.


  • Fixes the inconsistency problem between get_data_option() and get_default_option() in the WPCF7_FormTag class.
  • Suppresses PHP errors occur on unlink() calls.
  • Introduces wpcf7_is_file_path_in_content_dir() to support the use of the UPLOADS constant.


  • Specifies the capability_type argument explicitly in the register_post_type() call to fix the privilege escalation vulnerability issue.
  • Local File Attachment – disallows the specifying of absolute file paths referring to files outside the wp-content directory.
  • Config Validator – adds a test item to detect invalid file attachment settings.
  • Fixes a bug in the JavaScript fallback function for legacy browsers that do not support the HTML5 placeholder attribute.
  • Acceptance Checkbox – unsets the form-tag’s do-not-store feature.


  • CSS: Applies the “not-allowed” cursor style to submit buttons in the “disabled” state.
  • Acceptance Checkbox: Revises the tag-generator UI to encourage the use of better options in terms of personal data protection.
  • Introduces wpcf7_anonymize_ip_addr() function.
  • Introduces the consent_for:storage option for all types of form-tags.


  • Added the Privacy Notices section to the readme.txt file.
  • Updated the Information meta-box content.
  • Use get_user_locale() instead of get_locale() where it is more appropriate.
  • Acceptance Checkbox: Reset submit buttons’ disabled status after a successful submission.


  • Fixed incorrect uses of _n().
  • Config validation: Fixed incorrect count of alerts in the Additional Settings tab panel.
  • Config validation: Fixed improper treatment for the [_site_admin_email] special mail-tag in the From mail header field.
  • Acceptance checkbox: The class and id attributes specified were applied to the wrong HTML element.
  • Config validation: When there is an additional mail header for mailboxes like Cc or Reply-To, but it has a possible empty value, “Invalid mailbox syntax is used” error will be returned.
  • Explicitly specify the fourth parameter of add_action() to avoid passing unintended parameter values.
  • Check if the target directory is empty before removing the directory.


  • Additional settings: on_sent_ok and on_submit have been removed.
  • New additional setting: skip_mail
  • Flamingo: Inbound channel title changes in conjunction with a change in the title of the corresponding contact form.
  • DOM events: Make an entire API response object accessible through the event.detail.apiResponse property.
  • HTML mail: Adds language-related attributes to the HTML header.
  • File upload: Sets the accept attribute to an uploading field.
  • Introduces the WPCF7_MailTag class.
  • Allows aborting a mail-sending attempt using the wpcf7_before_send_mail action hook. Also, you can set a custom status and a message through the action hook.
  • Acceptance checkbox: Allows the specifying of a statement of conditions in the form-tag’s content part.
  • Acceptance checkbox: Supports the optional option.
  • New special mail tags: [_site_title], [_site_description], [_site_url], [_site_admin_email], [_invalid_fields], [_user_login], [_user_email], [_user_url], [_user_first_name], [_user_last_name], [_user_nickname], and [_user_display_name]
  • New filter hooks: wpcf7_upload_file_name, wpcf7_autop_or_not, wpcf7_posted_data_{$type}, and wpcf7_mail_tag_replaced_{$type}
  • New form-tag features: zero-controls-container and not-for-mail