Contact Form 7

Wordpress Plugin
Download latest - 5.7



Download Stats

Today 248
Yesterday 45,137
Last Week 258,553
All Time 79,751,992
Banner 772x250

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 and support

You can find docs, FAQ and more detailed information about Contact Form 7 on When you cannot find the answer to your question on the FAQ or in any of the documentation, check the support forum on If you cannot 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:

  • reCAPTCHA (Google)
  • Akismet (Automattic)
  • Constant Contact (Endurance International Group)
  • Sendinblue
  • Stripe

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 does not cause headaches.


You can translate Contact Form 7 on

Releases (163 )

Version Release Date Change Log
5.6.4 2022-10-19

5.6.3 2022-09-01

5.6.2 2022-08-10

5.6.1 2022-07-19

5.6 2022-06-17 2022-05-18
5.5.6 2022-02-23

5.5.5 2022-02-13

5.5.4 2022-01-20

5.5.3 2021-11-28

5.5.2 2021-10-25
  • REST API: Removes argument schema reference that causes error when the form has 'id' field.
  • Changes method names that are reserved in PHP 5.6.
5.5.1 2021-10-11
  • Fixed: Reserved keyword was used in PHP class constant name.
  • Fixed: Uncaught TypeError on in_array() call.
5.5 2021-10-11

5.4.2 2021-07-14

5.4.1 2021-04-29

5.4 2021-02-24


5.3.2 2020-12-17
  • Removes control, separator, and other types of special characters from filename to fix the unrestricted file upload vulnerability issue.
  • Akismet: Sets ISO 8601 date/time format for the comment_date_gmt parameter.
5.3.1 2020-12-07
  • Flamingo: Passes the last_contacted parameter based on the submission timestamp.
5.3 2020-10-21
  • Block Editor: Introduces the contact form selector block type.
  • Renames the 'images' directory to 'assets'.
  • New filter hook: wpcf7_form_tag_date_option.
  • Date: Makes all DateTime date formats available for min and max options.
  • Date: Converts the default value to Y-m-d date format string.
  • Disallowed list: Deprecates the wpcf7_submission_is_blacklisted filter hook in favor of wpcf7_submission_has_disallowed_words.
  • Accessibility: Sets the aria-describedby attribute for invalid fields.
  • Default form template: Removes the "(required)" labels from required fields. Adds "(optional)" to optional fields instead.
  • Default mail template: Uses site-related special mail-tags.
5.2.2 2020-08-26
  • Fixed: A REST API call aborted with a PHP fatal error when the WPCF7_USE_PIPE constant value was false.
  • Introduces the wpcf7_doing_it_wrong() function.
  • Sets the trigger_error() functions $error_type parameter explicitly.
  • Makes the wpcf7_special_mail_tags filter functions $mail_tag parameter optional.
5.2.1 2020-08-05
  • Makes the [contact-form-7 404 "Not Found"] message localizable.
  • REST API: Adds the permission_callback argument to every endpoint definition.
  • Flamingo: Uses id() instead of id, if available.
  • Fixed: The free_text option did not work correctly with the exclusive option.
  • Applies wpcf7_mail_tag_replaced filters even when the $posted_data is null.
  • Adds custom mail-tag replacement for quiz fields.
  • Admin: Updates the date column format in the list table.
5.2 2020-07-04
  • Submission: Introduces the $posted_data_hash and $skip_spam_check properties.
  • Submission: Introduces the wpcf7_skip_spam_check filter hook.
  • Contact form: Introduces the pref() method.
  • REST API: Adds parsed form-tags data to the response.
  • REST API: Deprecates the wpcf7_ajax_json_echo and wpcf7_ajax_onload filter hooks and introduces the wpcf7_feedback_response and wpcf7_refill_response filter hooks as alternatives.
  • Frontend CSS: Style rules for the response output refer to the form elements class attribute.
  • Frontend JavaScript: Abolishes the use of jQuery events.
  • reCAPTCHA: Moves script code to a separate file.
  • reCAPTCHA: Changes the name of the field for reCAPTCHA response token from g-recaptcha-response to _wpcf7_recaptcha_response.
5.1.9 2020-05-20
  • Special mail-tags: Reflects WP timezone to [_date] and [_time] mail-tags.
  • WPCF7_FormTag: Reflects WP timezone to get_date_option() output.
  • User input validation: Strictly compares to boolean false.
5.1.8 2020-05-14
  • reCAPTCHA: Shows no warning on upgrading from v2 if the global sitekey is defined.
  • reCAPTCHA: Improves the frontend JavaScript coding.
  • Accessibility: Improves the response message markup.
  • Fixes the regular expression pattern in wpcf7_is_tel().
  • Fixed: Character count was not reset after a successful submission.
  • Fixed: The fourth parameter of the wpcf7_special_mail_tags filter hook was not correctly set.
5.1.7 2020-03-07
  • CSS: Adds an explicit LTR direction style rule for code inputs.
  • Accessibility: Uses Error instead of ERROR in warnings.
5.1.6 2019-11-30
  • CSS: removes a style rule from the stylesheet that was unnecessary and conflicting with Twenty Twentys rules.
  • REST API: retrieves the contact form ID explicitly from the route parameters.
5.1.5 2019-11-12
  • Config Validator: New test item for the unavailable_html_elements error.
  • Config Validator: New test item for the attachments_overweight error.
5.1.4 2019-08-04
  • reCAPTCHA: Introduces the wpcf7_recaptcha_sitekey and wpcf7_recaptcha_secret filter hooks.
  • Adds $status parameter to the wpcf7_form_response_output filter.
  • Creates a nonce only when the submitter is a logged-in user.
  • Introduces WPCF7_ContactForm::unit_tag(), a public method that returns a unit tag.
  • reCAPTCHA: gives a different spam log message for cases where the response token is empty.
  • Acceptance Checkbox: supports the label_first option in an acceptance form-tag.
5.1.3 2019-05-19
  • Fixes a bug making it unable to unselect an option in the Mail tab panel.
5.1.2 2019-05-18
  • Constant Contact: Introduces the contact list selector.
  • Constant Contact: Introduces the constant_contact additional setting.
  • reCAPTCHA: Introduces the wpcf7_recaptcha_actions and wpcf7_recaptcha_threshold filter hooks.
5.1.1 2018-12-18
  • reCAPTCHA: Modifies the reaction to empty response tokens.
5.1 2018-12-11
  • Introduces the Constant Contact integration module.
  • Updates the reCAPTCHA module to support reCAPTCHA v3.
  • Adds Dark Mode style rules.
5.0.5 2018-10-29
  • 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.
5.0.4 2018-09-04
  • 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.
5.0.3 2018-07-12
  • 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.
5.0.2 2018-05-22
  • 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.
5.0.1 2018-02-27
  • 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.
5.0 2018-01-31
4.9.2 2017-12-09
  • Remove improper uses of esc_sql().
  • Fix the refill REST-API request so that a nonce is set when available.
  • Give more contrast to unused mail-tags in the Mail tab panel to make them easier to recognize.
  • Undo the previous change of HTTP status code for the REST-API response.
4.9.1 2017-10-31
  • Code using create_function() has been removed to avoid security risks and warnings given when using with PHP 7.2+.
  • Display the notice of config validation again to encourage admins to apply some important validation items recently added.
  • REST API endpoint returns more specific HTTP status code 409 instead of 400.
  • Fixed appearance of configuration error signs in the Additional Settings tab.
4.9 2017-08-18
  • Supports subscribers_only setting
  • Changes the default value of WPCF7_VERIFY_NONCE to false
  • WPCF7_FormTagsManager::collect_tag_types() supports invert option
  • New filter hooks: wpcf7_verify_nonce, wpcf7_subscribers_only_notice, wpcf7_remote_ip_addr, and wpcf7_submission_is_blacklisted
  • Fixed: Form-tag's tabindex option did not accept 0 or negative integer values
  • Shows a validation error when no option in a radio buttons group is checked
  • Config validator: Adds a validation rule against the use of deprecated settings (on_sent_ok and on_submit)
  • Allows to pass the skip_mail option through the WPCF7_ContactForm::submit() and WPCF7_Submission::get_instance() function parameters.
  • Triggers wpcf7beforesubmit custom DOM event. You can manipulate the formData object through an event handler.
4.8.1 2017-07-24
  • wpcf7.initForm JavaScript function added to isolate form initialization process.
  • Fix response message duplication caused by repeated click on submit button.
  • Clear $phpmailer->AltBody to avoid unintended inheritance from previous wp_mail() calls.
  • Fix incorrect character count of textarea input.
  • Akismet: Exclude the comment_author, comment_author_email, and comment_author_url values from the comment_content value.
  • REST API: More reliable approach to build route URLs.
  • Include free_text inputs into event.detail.inputs.
4.8 2017-06-01
  • Stopped using jquery.form.js.
  • Added custom REST API endpoints for Ajax form submissions.
  • WPCF7_FormTag class implements ArrayAccess interface.
  • WPCF7_FormTagsManager::filter() filters form-tags based on features they support.
  • New form-tag features: do-not-store, display-block, and display-hidden
  • Removed inappropriate content from h1 headings.
  • Added the support of size:invisible option to the reCAPTCHA form-tag.
4.7 2017-03-03
  • Added REST API custom endpoints to manipulate contact form data.
  • Config Validator: Added test items for field names and attachment file paths.
  • Added custom DOM events: wpcf7invalid, wpcf7spam, wpcf7mailsent, wpcf7mailfailed and wpcf7submit.
  • New action hook: wpcf7_after_flamingo.
  • Added size option to select and select* form-tag types.
  • Made it possible to use the 3rd parameter of wpcf7_add_form_tag() to specify "features" of the form-tag type.
4.6.1 2017-01-23
  • Fixed: "0" input could pass the minlength validation.
  • Fixed: exclude_blank option was applied to all mail fields, not only to the message body.
  • Fixed: wpcf7_autop() incorrectly inserted <br /> around hidden and block-type form-tags.
  • Fixed: Applying strtolower() to uploaded file names was unnecessary and could cause troubles in a non-English environment.
4.6 2016-12-03
  • Ajax loader: HTML markup changed to <span> to be easily customizable with CSS.
  • Appends a proper header and footer to HTML mail content automatically.
  • [_serial_number] special mail-tag.
  • New form-tag type for hidden fields.
  • default:shortcode_attr form-tag option.
  • WPCF7_Shortcode, WPCF7_ShortcodeManager, wpcf7_add_shortcode(), wpcf7_scan_shortcode(), and some other classes and functions have become deprecated.
  • Removed all language files from the languages folder. Translations have moved to
4.5.1 2016-09-27
  • Avoids JavaScript strict-mode errors seen with ill-designed themes.
  • Fixed a bug around reCAPTCHA's callback and expired-callback options.
  • Specifies cursor style for file uploading fields.
  • Corrects language tags for locale codes with modifying suffix like '_formal'.
  • Corrects wpcf7_is_rtl() output. Added 5 locales to the RTL locales list.
  • Language Packs: Language files for Portuguese (Brazil) (pt_BR) and Hebrew (he_IL) have been removed.
4.5 2016-08-08
  • The default contact form template is revised.
  • reCAPTCHA: Run grecaptcha.reset() after a submission.
  • The autocomplete option for form-tags and wpcf7_form_autocomplete filter hook are introduced to manage autocomplete attribute.
  • The config validator is revised. The wpcf7_config_validator_validate action hook is introduced to allow 3rd-party to cut in.
  • A bug in character count form-tag is fixed.
  • Language Packs: Language files for Danish (da_DK), Polish (pl_PL), and Czech (cs_CZ) have been removed from the plugin package.
4.4.2 2016-04-30
  • Language Packs: Language files for French (fr_FR), Russian (ru_RU), Slovak (sk_SK), and Turkish (tr_TR) have been removed from the plugin package.
  • Config Validation: Interoperability support for WordPress MU Domain Mapping plugin: Treats a mapping domain as the site domain when you compare an email address with the site domain.
  • Config Validation: Made email-in-site-domain verification case-insensitive.
4.4.1 2016-03-28
  • Config Validation: Added a link to FAQ.
  • Config Validation: Relaxed email domain validation.
  • Config Validation: Added mail header syntax check for Cc, Bcc, and Reply-To.
  • Fixed: Incorrect character count for quotation marks.
  • Language Packs: Language files for German (de_DE), Italian (it_IT), Romanian (ro_RO), Estonian (et), Spanish (es_ES), and Finnish (fi) have been removed.
4.4 2016-02-20
  • The configuration validator has been introduced.
  • The language selector has been removed from Add New Contact Form screen.
  • Attach a plain text version of the message when sending HTML mail.
  • Added do_not_store additional setting to tell data storage add-ons not to store data through the contact form.
  • The minimum required WordPress version has been changed from 4.2 to 4.3.
4.3.1 2015-11-23
  • Use wp_loaded action hook instead of init to initialize the controller process.
  • Fixed: Validation error messages for Really Simple CAPTCHA fields didnt appear.
  • Display an alert message if there is a reCAPTCHA widget left unanswered.
  • Translations for Portuguese, Hungarian, and Turkish have been updated.
4.3 2015-09-17
  • reCAPTCHA module has been introduced.
  • Translations for Croatian, Danish, Persian, and Swedish have been updated.
  • WordPress 4.2 or higher is required.
4.2.2 2015-07-30
  • Fixed: Possible empty name attribute of form element (invalid HTML5).
  • Translations for Portuguese, Hungarian, and Spanish have been updated.
4.2.1 2015-06-22
  • Corrected admin script dependencies.
  • Shows a hint for keyboard operation in the editor screen.
  • Translations for Estonian, Portuguese, Dutch, and Turkish have been updated.
4.2 2015-06-07
  • Renewal of the editor screen.
  • Translation for Slovene has been updated.
  • WordPress 4.1 or higher is required.
4.2-beta 2015-05-18
4.1.2 2015-04-23
  • Added role="form" to wrapper div elements.
  • Added wrapping label elements to quiz question strings.
  • Translation for Portuguese has been updated.
4.1.1 2015-03-14
  • Security enhancement: use wp_rand() instead of mt_rand() for CAPTCHA file name generation to make it harder for attackers to predict its next value.
  • Modified wpcf7_plugin_url(): use plugins_url() internally.
  • Translations for Russian, Hungarian, Swedish, German, and Turkish have been updated.
4.1 2015-01-26
  • Added maxlength and minlength options to several form-tag types.
  • Added [count] form-tag type that represents character count for form fields.
  • Introduced WPCF7_Validation class to handle the user-input validation process.
  • Added the front-end URL normalization for [url] fields.
  • Added default:get, default:post and default:post_meta options to get default values from the context.
  • Translations for Turkish, German, Portuguese, Dutch, and Hebrew have been updated.
  • WordPress 4.0 or higher is required.
4.1-beta 2015-01-06
4.0.3 2014-12-14
  • The contextual help tab has been added to admin pages.
  • Changed the admin menu icon to "email" dashicon.
  • Translations for Croatian, Turkish, and Catalan have been updated.
4.0.2 2014-11-24
  • Introduced wpcf7_build_query() to correctly apply urlencode to keys and values in URL queries.
  • Translations for Portuguese, Spanish, Hungarian, and German have been updated.
4.0.1 2014-10-16
  • Fixed a bug that caused an error when creating new contact forms in some environment.
  • Translations for Portuguese and Croatian have been updated.
4.0 2014-10-13
  • The default mail template changed (see Best Practice to Set Up Mail).
  • Translations for Slovak, German, Turkish and Portuguese have been updated.
  • WordPress 3.9 or higher is required.
3.9.3 2014-09-03
  • Fixed: file uploading was disabled in some of server environments because of wrong use of mt_rand() function.
  • Translations for Hungarian has been updated.
3.9.2 2014-08-31
  • Fixed: incorrect behavior seen in demo mode.
  • Fixed: Flamingo saved submitter's contact info even when the submission was spam.
  • New: Introduce wpcf7_skip_mail filter.
  • Enhancement: add a random-named directory to each uploaded file's temporary file path in order to make the path harder for a submitter to guess.
  • Translation for Punjabi has been created.
  • Translations for Turkish, Korean and Slovak have been updated.
3.9.1 2014-07-31
  • Fix: options with empty values didn't work correctly in a drop-down menu.
  • Fix: broke layout of input fields after validation by an incorrect jQuery use.
  • Fix: couldn't enqueue JavaScript manually with wpcf7_enqueue_scripts() when WPCF7_LOAD_JS was false.
  • Fix: couldn't enqueue CSS manually with wpcf7_enqueue_styles() when WPCF7_LOAD_CSS was false.
  • Translations for Greek and Hungarian have been updated.
3.9 2014-07-14
  • A major change has been made to the internal structure. For details, see beta release announcement.
  • The exclude_blank mail option has been introduced.
  • The wpcf7_load_js and wpcf7_load_css (functions and filter hooks) have been introduced.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.51.0.
  • Translations for Persian and Slovak have been updated.
  • WordPress 3.8 or higher is required.
3.9-beta 2014-07-02
3.8.1 2014-05-12
  • Fix: misuse of functions that Akismet 3.0 has marked deprecated.
  • Fix: some URL outputs used esc_url_raw in places where esc_url should be used.
  • Translation for Finnish and Thai have been updated.
3.8 2014-04-16
  • Introduced data option for select, checkbox and radio form-tags. With Listo plugin, you can make a menu with hundreds of options.
  • Accessibility improvement: add an invisible response message block before <form>.
  • Added relative date notation support in min and max options of date form-tags.
  • Added html_name attribute support in [contact-form-7] shortcodes.
  • WordPress 3.7 or higher is required.
  • Translation for Ukrainian has been updated.
3.7.2 2014-02-26
  • Fixed a bug that allowed to avoid CAPTCHA validation.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.50.0.
  • Translation for Dutch has been updated.
3.7.1 2014-02-19
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.49.0.
  • Fixed a bug of auto-p formatting around [response].
  • Translations for Russian, Korean, Hungarian, and German have been updated.
3.7 2014-02-03
  • Support free_text option that allows checkbox/radio to have an additional free text field.
  • Restore floating-tip style validation error as an option.
  • Support html_id and html_class attributes in [contact-form-7] shortcode.
  • Fixed bug that Flamingo stored submissions in demo-mode.
  • Fixed bug where auto-p function wrapped [response] with p.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.48.0.
  • Translation for Haitian has been created. Translations for German, Hungarian, Czech, Turkish, Lithuanian, French, Basque, and Brazilian Portuguese have been updated.
3.6 2013-12-12
3.5.4 2013-11-11
  • Fixed: Strip slashes from some text inputs before validating them.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.45.0.
  • Translations for German, French, Persian and Romanian have been updated.
3.5.3 2013-10-07
  • Checking of file extension when uploading has been enhanced.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.44.0.
  • Translation for Central Kurdish (ckb) has been created.
  • Translations for German, Hungarian and Japanese have been updated.
3.5.2 2013-08-19
  • Fixed: Strip newlines to prevent mail header injection.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.40.0.
  • Translations for Spanish and Dutch have been updated.
3.5.1 2013-08-11
  • Fixed: Submissions with array value cause PHP error.
  • Translation for Indian Bengali (bn_IN) has been created.
  • Translations for Spanish, Tagalog and Japanese have been updated.
3.5 2013-08-08
3.4.2 2013-06-24
  • Fixed: Unintended tabindex attributes are added to checkbox items.
  • Fixed: Added an unique number to each getJSON request for avoiding cache-related issues.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.36.0.
  • Translation for Gujarati language has been created by Apoto.
  • Translations for French, Polish, Simplified Chinese, Arabic, Catalan and Japanese have been updated.
3.4.1 2013-05-06
  • Fixed: Watermark option doesn't work on old browsers.
  • Fixed: Telephone number validation doesn't accept space and parentheses.
  • Translations for Russian, Slovak, Hungarian, German and Turkish have been updated.
3.4 2013-04-08
3.3.3 2013-01-21
  • Fixed: Logic of resolving upload directory on WordPress 3.5 multi-site install.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.25.0.
  • Translations for French, German, Russian and Turkish have been updated.
3.3.2 2012-12-13
  • Fixed: Add the additional headers only when they are not empty.
  • Fixed: Don't load hidden files in the modules folder.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.23.
  • Irish translation has been created by Vikas Arora.
  • Translations for German, Thai, Hungarian and Tagalog have been updated.
3.3.1 2012-10-14
  • Fixed: Apply esc_html() to response outputs. In the case it is necessary to use HTML tags in the response messages, new wpcf7_form_response_output filter is available.
  • Fixed: Don't use $_POST for internal data passing. Use global $wpcf7 variable instead.
  • Fixed: Treat array value correctly in the Akismet module.
  • Fixed: Escape outputs of [_user_agent] spacial mail tags used in the HTML mode.
  • Fixed: Don't show the notice about conflicting with Jetpack to new users who rarely see such conflicts.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.18.
  • Translations for Danish and Finnish have been updated.
3.3 2012-09-24
  • New: Introduce a new special mail tag [_user_agent] for user agent information.
  • New: Make WordPress Comment Blacklist applicable for inputs through contact forms.
  • New: Introduce new form of mail tag [_raw_{field name}]. This allows to output raw user input those have not been modified with pipes.
  • New: Make mail tags available in response messages.
  • New: Introduce new additional setting on_submit. It works like on_sent_ok and has one-line JavaScript code, but on_submit code is fired regardless of whether or not the mail has been sent successfully.
  • New: Introduce 5 new jQuery custom event triggers (invalid.wpcf7, spam.wpcf7, mailsent.wpcf7, mailfailed.wpcf7, submit.wpcf7).
  • Fix: Nonce used in a form have been changed to have no time limit.
  • Fix: Make every post metas key have underscore prefix.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.15 and compressed with YUI compressor.
  • The required WordPress version has been changed and now requires WordPress 3.3 or higher. If you use WordPress 3.2, you will need to upgrade WordPress.
  • Translations for Arabic and German have been updated.


3.2.1 2012-07-31
  • Fixed: Error for use of array_key_exists function with invalid first argument.
  • Fixed: Adding unnecessary rewrite rules.
  • Fixed: "Screen Options" doesn't appear on each contact form edit screen.
  • Change the comment_type value sent to Akismet from 'contactform7' to 'contact-form' following their blog post.
  • Introduce wpcf7_add_meta_boxes function and action with the same name. This makes it easier to add custom meta boxes to the edit screen.
  • Pass meta informations of each form submission (e.g. client's IP address) to Flamingo.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.14 and compressed with YUI compressor.
  • Translation for Basque has been created.
  • Translations for German, Italian, and Polish have been updated.
3.2 2012-06-05
  • Enhanced admin panel. Introduced list table view for contact forms.
  • Moved the Contact menu to the upper position (just below the Comments).
  • Show alert message when Jetpack contact form is active.
  • Introduced Flamingo module.
  • Made capabilities more customizable.
  • wpcf7_admin_url() is deprecated. Use admin_url() or menu_page_url() instead.
  • Changed the default defined value of constants WPCF7_PLUGIN_DIR and WPCF7_PLUGIN_URL.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.09 and compressed with YUI compressor.
  • Translations for Latvian, Swedish, and Czech have been updated.


3.1.2 2012-04-12
  • Auto-generate .htaccess file in the CAPTCHAs temporary folder to hide answer files in it.
  • Make sure all fields given by form-tags are in the posted_data property.
  • Fix the RTL style sheet for admin pages.
  • Bug fixed: names of uploaded files dont appear in mail body.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 3.08.
  • Translations for German, Hungarian, Slovene, and Lithuanian have been updated.
3.1.1 2012-02-22
  • Introduce wpcf7_verify_nonce() and wpcf7_create_nonce() for front-end use. This fixes the wrong nonce issue on cached pages.
  • Preserve new line characters in form shortcode contents to bypass auto-p filter.
  • Use [\r\n\t ] instead of [\s] in regex to prevent issues of checkbox/radio options containing some UTF-8 characters are dropped.
  • Bug fixed: tag generator menu is incorrectly shown on WordPress 3.2.x.
  • The jQuery Form Plugin (jquery.form.js) has been updated to 2.96.
  • Translations for Latvian, Hebrew, German, and Japanese have been updated.
3.1 2012-01-31
  • Offer nonce verification for contact forms.
  • Add several options to retrieve logged-in user info as default value of field.
  • Introduce wpcf7_validate filter for validation independent from specific form tag type.
  • Search contact form by title when failed to find by ID.
  • Include all $_POST variables into $cf->posted_data and make them referable from mail.
  • Add watermark option to captchar (CAPTCHA-response) field.
  • Introduce wpcf7_ajax_loader() function and wpcf7_ajax_loader filter.
  • Introduce wpcf7_akismet_comment_check filter.
  • Introduce menu icons created by Takao Honda.
  • Translation for Azeri has been created.
  • Translations for Italian, Russian, Arabic, Danish, Persian, Romanian, and Portuguese have been updated.

= 2011-12-18
  • Fix a critical bug of losing checkbox option values when you save contact form.
3.0.2 2011-12-18
  • Show alert messages when you use it on old version of WordPress.
  • Introduce wpcf7_is_rtl() to avoid not exist error of is_rtl().
  • Take back data conversion from Contact Form 7 1.x.
  • Normalize newline characters to \n (line feed) on save (fix export/import problem).
  • Rewrite wpcf7_admin_url() and use menu_page_url() inside it.
  • Use wp_enqueue_scripts and admin_enqueue_scripts action hooks instead of wp_print_styles and admin_print_styles.
  • Use wp_safe_redirect() instead of wp_redirect().
  • Updated jquery.form.js to 2.94.
  • Translations for Esperanto has been created.
  • Translations for German, Japanese, Malay, Thai, Slovak, and Hungarian have been updated.
3.0.1 2011-11-03
  • Removed unused icl.php file from modules folder.
  • Replaced deprecated get_bloginfo('text_direction') with is_rtl().
  • Made Acceptable file types field in the File upload tag generator being able to accept comma (,) and pipe (|) as separating character in addition to space.
  • Added sanitization for $_POST['_wpcf7_unit_tag'] value for avoiding possible abuse.
  • Updated jquery.form.js to 2.87.
  • Translations for Tagalog, Belarusian, and Maltese have been created.
  • Translations for Italian, German, Japanese, Russian, Latvian, and Afrikaans have been updated.
3.0 2011-09-17
3.0-beta 2011-08-20
2.4.6 2011-07-12
  • Fixed the bug that didn't accept '0' as valid value of drop-down menu.
  • Fixed the incorrect shortcode regexp blocking use of multiline content of textarea.
  • Updated jquery.form.js to 2.83.
  • Translations for Vietnamese (Khang Minh), Brazilian Portuguese (Caciano Gabriel Batista), Traditional Chinese (James Wu), Bahasa Indonesia (Belajar Seo Indonesia), German (Ivan Graf) and Hungarian (Farkas Gyz) have been updated.
2.4.5 2011-05-01
  • Fixed the bug that makes it not accept "0" value as watermark.
  • Fixed too much normalization to form-tag shortcode with content.
  • Fixed wrong regexp pattern for form-tag shortcode with content.
  • Check $_POST of checkboxes and select menus to avoid warnings.
  • Use proper action hook for enqueueing scripts: wp_enqueue_scripts and admin_enqueue_scripts.
  • Bundled jquery.form has been updated to 2.72.
  • Translations for Czech (Tomas Vesely) has been updated.
2.4.4 2011-02-22
  • Translation for Sinhala has been created by Nitin Aggarwal.
  • Translations for German (Ivan Graf), Russian (Denis Voituk), Simplified Chinese (Keefe Dunn) and Polish (RafalDesign) have been updated.
  • Fixed wrong [_url] special mail tag output.
2.4.3 2011-01-09
  • Translation for Armenian has been created by Emmanuelle Traduction.
  • Translation for Tamil has been created by Nitin Aggarwal.
  • Translations for German (Ivan Graf), Dutch (Rene), Arabic (Yaser Mohammed) and Romanian (Anunturi Jibo) have been updated.
  • Bundled jquery.form has been updated to 2.52.
2.4.2 2010-11-11
  • Translation for Macedonian has been created by Darko.
  • Translation for Malay has been created by Zairul Azmil.
  • Translations for Danish (Georg S. Adamsen), French (Matre M), German (Ivan Graf), Latvian (Sandis Veinbergs) and Persian (Mohammad Musavi) have been updated.
2.4.1 2010-09-23
  • Fixed a bug causing fatal error on WordPress 2.9.
  • Translations for Norwegian (Peter Holme) and Italian (Gianni Diurno) have been updated.
2.4 2010-09-22
  • Moved PO files to the external branch. They were space-consuming and enlarging the plugin package.
  • Added an option for size attribute of <input type="file">.
  • Added 'acceptance_as_validation' additional setting. This setting allows you to use acceptance checkbox as object of validation.
  • Added watermark support to text, email and textarea tags.
  • Use the latest jQuery Form plugin instead of the old one which WordPress bundles.



2.3.1 2010-08-03
  • Fixed: wrongly applying 'autop' filter to message body of HTML-formatted mail.
  • Fixed: possible cause of some Ajax-related troubles.
  • Fixed: wrong HTML format of the result of [response] tag.
  • Fixed: rewrote a few codes for avoiding warnings.
  • Fixed: wrongly applying 'autop' filter to <textarea> contents.
  • You can customize ajax loader image with new wpcf7_ajax_loader filter.
  • Translations for Ukrainian (Ukrainian WordPress localization team), Brazilian Portuguese (Gervsio Antnio) and Serbian (Aleksandar Uroevi) have been updated.
2.3 2010-07-15
  • The required WordPress version has been changed and now requires WordPress 2.9 or higher. If you use WordPress 2.8, you will need to upgrade WordPress.
  • When you insert multi-line text input into the message body of HTML-formatted mail, Contact Form 7 automatically applies an 'autop' (auto paragraph) filter to the text. This makes it so that the original user input styles remain -- and does not break paragraph styles in the HTML view.
  • Translations for German (Ivan Graf), Finnish (Mediajalostamo), Thai (kazama) and Danish (Georg S. Adamsen) have been updated.



2.2.1 2010-05-25
  • Filters for special mail tags have been moved to modules/special-mail-tags.php.
  • A bug that caused erroneous formatting around <fieldset> tags has been fixed.
  • A bug of pipes, which happened when you used a label with apostrophe and the pipe wouldn't work, has been fixed.
  • esc_html() is applied to posted texts when the texts are inserted into the message body of HTML-formatted mail.
  • Action hooks, wpcf7_enqueue_scripts and wpcf7_enqueue_styles, have been added.
  • Translations for Italian (Gianni Diurno), German (Ivan Graf), French (Oncle Tom), Traditional Chinese (James Wu) and Hungarian (Farkas Gyz) have been updated.
2.2 2010-03-23
2.1.2 2010-02-23
  • Incorrect JSON syntax causing conflict with jQuery 1.4 has been fixed.
  • Some incompatibility issues with IE in admin panel have been fixed.
  • The logic verifying if a plugins JavaScript is loaded has been improved.
  • Translations for German (Ivan Graf) and Slovak (Patrik Bna) have been updated. Translation for Malayalam has been created by RAHUL S.A.
2.1.1 2010-01-26
  • Some other plugins that attempt to include files in inadvisable way were conflicting with Contact Form 7 2.1. A workaround for avoiding these types of issues has been introduced.
  • Translations for Chinese (traditional; James Wu), Danish (Georg S. Adamsen), German (Ivan Graf) and Italian (Gianni Diurno) have been updated. Translation for Afrikaans has been newly created by Schalk Burger.
2.1 2010-01-04
  • The required WordPress version has been changed and now requires WordPress 2.8 or higher. If you use WordPress 2.7, you will need to upgrade WordPress.
  • New "special mail tags" ([wpcf7.post_id], [wpcf7.post_name], [wpcf7.post_title], and [wpcf7.post_url]) have been introduced.
  • The multilingualization functionality has been improved. You are now able to create contact forms in any languages with just a few clicks.
  • The Tag Generator's JavaScript coding has been wholly reconstructed and you can extend it from the additional modules.
  • Interoperability with cache plugins (WP Super Cache, etc.) has been improved.
  • When known issues are found on your web host, a warning message is shown on the administration panel.
  • Uninstall.php file has been added. This will clean up its table from your database when you remove Contact Form 7 from your site.
  • Translations for Estonian (by Egon Elbre), German (by Ivan Graf), Hindi (by Ashish) and Italian (by Gianni Diurno) have been updated.



2.0.7 2009-11-12
2.0.6 2009-10-13
2.0.5 2009-09-25
2.0.4 2009-09-20
2.0.3 2009-09-19
2.0.2 2009-09-01
2.0.1 2009-07-31
2.0 2009-07-21
2.0-beta 2009-07-15
1.10.1 2009-07-05 2009-06-01
1.10 2009-05-31 2009-04-22
1.9.5 2009-04-22
1.9.4 2009-03-22
1.9.3 2009-02-22 2009-02-07 2009-01-31
1.9.2 2009-01-21
1.9.1 2009-01-02
1.9 2008-12-10 2008-11-11
1.8.1 2008-11-09 2008-10-26 2008-09-21 2008-09-07 2008-08-30
1.8 2008-08-11
1.7.8 2008-07-13 2008-05-05
1.7.7 2008-04-06 2008-03-23
1.7.6 2008-03-02
1.7.5 2008-01-25
1.7.4 2007-12-30
1.7.2 2007-12-13
1.7.1 2007-12-06
1.7 2007-11-27
1.6.1 2007-10-30
1.6 2007-10-17
1.5 2007-10-07
1.4.4 2007-09-17
1.4.3 2007-09-15
1.4.2 2007-09-13
1.4.1 2007-09-11
1.4 2007-09-07
1.3.2 2007-09-03
1.3.1 2007-08-26
1.3 2007-08-25
1.2 2007-08-17
1.1 2007-08-03