Constant Contact Forms


Constant Contact Forms makes it fast and easy to capture visitor information right from your WordPress site. Whether you’re looking to collect email addresses, contact info, or visitor feedback, you can customize your forms with data fields that work best for you. Best of all, this plugin is available to all WordPress users, even if you don’t have a Constant Contact account.

Constant Contact Forms allows you to:

  • Create forms that are clear, simple, and mobile-optimized for every device.
  • Choose forms that automatically select the theme and style of your WordPress site.
  • Customize data fields, so you can tailor the type of information you collect.

BONUS: If you have a Constant Contact account, all new email addresses that you capture will be automatically added to the Constant Contact email lists of your choosing. Not a Constant Contact customer? Sign up for a Free Trial right from the plugin.

Constant Contact Forms requires a PHP version of 5.4 or higher. You will not be able to use if on a lower version. Talk to your system administrator or hosting company if you are not sure what version you are on.


  • Adding a New form when connected to Constant Contact account.
  • Viewing All Forms
  • Lists Page
  • Settings page
  • Basic Form


Constant Contact Forms Options

Frequently Asked Questions

Constant Contact List Addition Issues

cURL error 60: SSL certificate problem

Add Google reCAPTCHA to Constant Contact Forms

How do I include which custom fields labels are which custom field values in my Constant Contact Account?

You can add this to your active theme or custom plugin: add_filter( 'constant_contact_include_custom_field_label', '__return_true' );. Note: custom fields have a max length of 50 characters. Including the labels will subtract from the 50 character total available.


Simple, easy and gets the job done

This worked well for us for a few months. Then the spam began. Now we get a regular stream of spam daily and are going to pull the plugin because Constant Contact has not put in a robust Captcha system. Well, it turns out with the help of the author we found out we were woefully out of date. ReCaptcha has been added and we’ve added it to the site. Hopefully that will once and for all hold the bots at bay. Thanks! We are super happy to get this taken care of.

It works fine, IF you setup, configure & test

The CC plugin for WP works fine if you double check your settings and test it thoroughly.
You also what to make sure the CC/WP setting for “Add subscribers to” and make sure is set to a list you either already have or to a list you created for the CC/WP form you have created.*
I had created a new list in CC and selected it in the CC/WP settings within a few minutes of managing the configuration in WP. When I went to test the form, the email was not in the newly created list but, it had gone into the default list.
When I went back and checked the CC/WP settings, it had reverted back to the “Add subscribers to” default setting which is the ‘default’ CC list. I changed back to the newly created list for the form, saved changes and it worked as expected.

My sense is that CC had not fully resolved the newly created list and it just took a little longer than expected for all of the changes to solidify.

Also make sure WP is updated to the latest version and all of your other plugins are up-top-date. These are always the first things to check with any WP setup and or issues.

Broken – Do Not Use Until Fixed

As of October 5, 2018, installing this plugin causes the following error:

“Connection lost. Saving has been disabled until you’re reconnected. We’re backing up this post in your browser, just in case.”

As soon as I deactivated this plugin and refreshed the page I was trying to edit, the message disappeared.

The developer should check these resources to correct the problem:

Thank you

Thank you for the Constant Contact Form. It has doubled the traffic to my sight and has also led to more new subscribers. Thanks!!!

Read all 43 reviews

Contributors & Developers

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




  • Fixed: Persistent spinner on Constant Contact Forms submit button when Google reCAPTCHA is anywhere on the page.
  • Fixed: Better messaging around debug logging when unable to write to the intended log file.
  • Updated: Changed the modal popup content for when we need to display Endurance Privacy Policy information.


  • Fixed: Issue with mismatched meta key for per-form destination email address.
  • Fixed: Ability to successfully submit a form with Google reCAPTCHA enabled, but when not validated, with a custom redirect URL is set.
  • Fixed: Prevent errors if Debug Log location is not writeable by the plugin.


  • Fixed: Issue with generic CSS selector causing other WordPress admin UI to be revealed unintentionally.
  • Fixed: Issue with emails losing submitted information due to newly mismatched md5 hash values for each field.
  • Updated: Re-added outlines styles in a couple of places in admin area for accessibility sake.
  • Updated: Made form ID optional during contact addition method for site owners using plugin for comment/login page signups.


  • Added: Various styling options during the form building process.
  • Added: Initial Akismet integration to help aid with spam submissions.
  • Added: Clear form fields after successful AJAX-based form submissions.
  • Added: Clear success/error message after small delay, for AJAX-based form submissions.
  • Added: WordPress action hooks before and after form output. Useful to add your own output for a given form.
  • Added: Compatibility with “Call To Action” plugin.
  • Added: Include custom field labels in email notifications.
  • Added: Ability to customize who receives email notifications, per form.
  • Added: Frontend form submit button disabled if hidden honeypot field has changed.
  • Fixed: Consistently applied ctct_process_form_success filter to AJAX form submission success messages.
  • Fixed: Prevent errors with Constant Contact social links and array_merge issues.
  • Fixed: Prevent errors with array_key_exists() and the ctct_get_settings_option function.
  • Fixed: Wording around associated lists for a form, in the WordPress admin.
  • Fixed: Removed .gitignore files from /vendor folders.
  • Fixed: Prevent potential PHP warnings and notices in various areas.
  • Updated: Better support for emailing notifications to multiple recipiants.
  • Updated: Better disabling of submit button during AJAX-based submissions.
  • Updated: Tightened up form builder screen to not use so much space.


  • Added: Logging functionality to help aid with debugging and the plugin not working as needed or expected.
  • Added: Passed form ID to filters related to including labels for custom fields.
  • Fixed: Made sure some Constant Contact markup was only added to the page when in a Constant Contact area.
  • Fixed: Issue with submitted custom field lengths when also including the original labels. Users were able to still go above 50 character limit.
  • Fixed: Addressed issue with email bypassing when not needing to opt in.
  • Updated: CMB2 library to version 2.3.0.
  • Updated: Guzzle library to version 5.3.2.
  • Updated: Code quality regarding translated text, namespaces, and returned value consistency.
  • Updated: Added minimum PHP version to plugin readme for use on
  • Updated: Reduced cache time for account information so changes reflect in WP admin more quickly.
  • Updated: Revised disclosure message on the form to be more GDPR compliant.


  • Fixed: Validate and potentially create full urls for values passed into custom “redirect to url” values. Prevents unintended destinations from partial urls.
  • Fixed: Error display for cron debugging was not showing correctly.
  • Fixed: Added required indicators to all appropriate fields in address fieldset on frontend.
  • Fixed: No form will be displayed if the form is not published.
  • Added: Address line 2 is no longer considered a required field.
  • Added: Plugin will now send email notifications if notifications are disabled but no Constant Contact list has been set for a form or opt-in is required but user does not opt in. Prevents possible lost submissions.
  • Updated: Wording for “Disable email” setting to clarify its purpose and intent.
  • Updated: Wording around some form builder fields.
  • Updated: Reworded emails and conditionally added messages regarding issues with form that required sending the email.
  • Updated: Adjusted plugin load order slightly to prevent conflicts with other plugins using GuzzleHTTP.


  • Fixed: Prevent submission status message from displaying on all forms with multiple forms on same page.
  • Fixed: Properly prevent submission via AJAX when required fields are not met.
  • Fixed: Properly prevent AJAX submissions from incorrectly collecting data from all forms on a page that displays multiple Constant Contact forms.
  • Fixed: Adjusted database query in Constant Contact Form lists display in conjunction with WordPress 4.8.2.
  • Fixed: Invalid markup with form display and checkbox items.
  • Fixed: Prevent possible issues with $_POST globals not being strings.
  • Fixed: Addressed issues with Google reCAPTCHA validation and verification of submitting users via allow_url_fopen.
  • Updated: Provided updated default values for button text, success message.
  • Updated: Rearranged and updated labels form builder fields to provide better clarity.
  • Updated: Added form’s unique ID to form markup output for styling options and specific targeting.


  • Fixed: Typo in code variable. Typo prevented forms with custom redirects from properly processing submission.


  • Fixed: Issue with failed list additions in relation to spam prevention measures in 1.3.2. Sorry everyone.


  • Added: More spam-preventive measures via timestamp comparison. Less than 5 seconds to fill in form and submit is rather bot-like.
  • Updated: touched up markup around frontend form output. Fieldsets don’t go in paragraph tags.
  • Updated: Moved some inline styles away from honeypot and into frontend stylesheet.
  • Fixed: Potential issues with API requests due to honeypot field.
  • Fixed: HTML class output missing for textareas.


  • Fixed: undefined index notice from helper-functions file.


  • Added: Per-form AJAX submission support.
  • Added: Display associated Constant Contact list in form listing.
  • Added: Display Constant Contact list count in Constant Contact List listing.
  • Added: HTML classes on form field wrappers for required fields.
  • Added: Plenty of WordPress filters around available email fields.
  • Added: UI field to customize text used to show successful submission.
  • Added: UI field to specify URL to redirect user to, after successful submission.
  • Added: Actions and filters after processing a form entry.
  • Added: Filter email used in get_email method, which determines where to send submission notifications to.
  • Added: Force a cursor pointer for submit buttons on frontend.
  • Added: Debugging information around WP_CRON on settings page when “ctct-debug-server-check” GET parameter present.
  • Added: Easily create a new form via the “New” menu area in the admin bar.
  • Added: maxlength attribute to custom field inputs to match Constant Contact API restrictions.
  • Fixed: mismatched textdomain that affected internationalization.
  • Fixed: Resolved issue with field builder when Constant Contact Forms is network activated.
  • Fixed: Prevent potential fatal errors for constant_contact function call.
  • Fixed: Append determined classes for the checkbox field.
  • Fixed: Increased the width for some settings text fields for better readability of content stored.
  • Fixed: Possible API failures if custom field listed first.
  • Updated: Output honeypot field regardless of reCAPTCHA status. Previously we did only reCAPTCHA if keys available. Else was honeypot.
  • Updated: Improved text sent to around custom fields. Should better reflect which field each line is related to. See Frequently Asked Questions regarding some limits to this feature and how to enable.
  • Updated: Improved return messages for submission failures.
  • Updated: Upgraded to the latest version of CMB2.


  • Fixed: Customized labels no longer reset to default when adding new fields.
  • Added: Ability to bypass using WP_CRON when trying to have form entries sent to lists. If you’re having trouble getting them sent, use this setting.
  • Updated: Revised content for “Disconnect” page when connected, and have not created a form yet.


  • Added: Google reCAPTCHA “I am human” checkbox support for forms. See Will fall back to honeypot prevention if not set up.
  • Fixed: Stray quote mark in honeypot markup.
  • Fixed: missing space after placeholder attribute for inputs.
  • Fixed: Removed unintentional “Leave page” confirmation popup when saving settings.


  • Fixed: Attempt to process forms that have provided a custom url via filter.
  • Fixed: Clean up class attributes regarding validation errors in text inputs.


  • Fixed: Conflicts with other plugins using the Constant Contact PHP SDK.
  • Fixed: Added honeypot-style spam prevention on forms.
  • Fixed: Removed anonymous function usage in widget to prevent potential errors.
  • Fixed: Hardened up helper function in cases where internal function does not exist.
  • Fixed: Issues with multiple custom textareas and the Constant Contact API. See the “Learn more” link/modal for some more information.
  • Added: Potential admin notice requesting users to review plugin if they have not already.


  • Fixed: Re-show sections of “Publish” metabox incorrectly hidden for post types outside Constant Contact Forms.
  • Fixed: Issues with transparent background on frontend forms when input is valid.
  • Fixed: Fatal errors on deactivation if user is on PHP 5.3 or lower.
  • Fixed: PHP Warnings regarding missing parameters for maybe_log_mail_status().
  • Updated: Bumped Guzzle to 5.3.1 for PHP7.1 compatibility.


  • Added: Reveal shortcode for newly published form in admin notice and popup for non-connected accounts.
  • Added: Classes for individual form inputs and textareas on rendered form.
  • Added: Request to opt into some anonymous data tracking for Constant Contact’s information usage.
  • Added: Note about no forms being available in modal popup, if none available.
  • Added: Ability to disable emails if Constant Contact account is connected and “disable email” option checked.
  • Added: Necessary disclosure text to output on comment form and login/registration form when able to do advanced opt-in for list enrollment.
  • Fixed: Possible issues with PHP 5.2 compatibility from the widget.
  • Fixed: Prevent status message from displaying multiple times if multiple forms present on the page.
  • Fixed: Ability to remove description values from various available form inputs.
  • Updated: Changed field order in admin UI for creating Constant Contact form.
  • Updated: Better compatibility with TwentyFourteen.


  • Fixed: Made frontend form default to an empty action attribute to take care of occasional 404 errors after submission.
  • Added: New filter on the default empty string from above, so others can provide their own redirect location if desired.


  • Added: Widget that allows you to select a form to display.
  • Added: Small metabox in form editor showing shortcode to use for current form.
  • Added: Field and filter for text shown on the rendered submit button.
  • Added: Developers: Inline documentation of actions and filters.
  • Fixed: Loading position of Constant Contact stylesheet. Should now load in <head>.
  • Fixed: Removed redundant “Add form” button on Constant Contact form editor TinyMCE.
  • Fixed: Removed required attribute for Address line 2 when line 1 is required.
  • Updated: Labels in Constant Contact Form list around none available and none in trash.