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


This plugin provides 1 block.

Constant Contact: Single Form


Installation and Setup

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.


August 20, 2019
The company has high price subscription but they couldn't make their forms templates be copied over to their WordPress plugin. The plugin requires you to login with your Constant Contact account. It should be able to acquire your profile from Constant Contact but it doesn't. Waste of time. They could've done better.
July 26, 2019
After fussing with this plugin and getting inconsistent results and problems (submissions sometimes made it to the Constant Contact (CC) database, sometimes did not; "Lists" feature not working, no debugging info written to log even with option turned on, etc.), I decided to switch to embedding an "Inline Form" from the CC website. This seems to be working completely reliably. I'm uninstalling the plugin. For the record, I'm using the "CSS & JavaScript Toolbox" plugin to inject the "Universal Code" into the bottom of the "<body>" block on just the page(s) I want.
July 9, 2019
Was causing an unwanted pop-up everytime someone saved a post. Completely broke the wp editor. You would think a successful company with thousands of employees could make a simple wordpress plugin. Think again. A 12 year old could do a better job at developing this.
April 25, 2019
Had to redo an entire website because of major misuse by many while I was ill and had not realized that my site security had lapsed. I am not a programmer, and this app worked to position constant Contact code where it needed to bed!
Read all 53 reviews

Contributors & Developers

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


Change log


  • Fixed: Removed TGMPA library files that were causing some conflicts with premium themes or other plugins.
  • Fixed: tweaked shortcode assets URL reference in bundled library for better compatibility with various hosting environments.


  • Fixed: Javascript conflicts with Lodash and Underscores in conjunction with 1.5.0’s Gutenberg support.


  • Fixed: Issues with editor screen when no forms have been created yet.
  • Fixed: Missed endpoint change for wp-json details with Contant Contact Gutenberg integration.


  • Added: Gutenberg block. Easier to get a form set up on a Gutenberg powered post or page.
  • Added: Ability to customize “We do not think you are human” spam messaging.
  • Added: Ability to conditionally output a reCAPTCHA field for each form.
  • Added: Better compatibility with WP-SpamShield plugin.
  • Added: Quick button to reset a form’s style customization selections.
  • Added: Option to display form title with Constant Contact Forms output.
  • Fixed: Added missing label placement options in settings page and per-form dropdown options.
  • Updated: Ensure we have valid URLs when taking custom redirect values.
  • Updated: Append custom textarea content to existing notes for updated contacts.
  • Updated: Added some “alert” roles for better accessibility.
  • Updated: Added logging of API request parameters before the request is made.
  • Updated: Added logging around valid requests verifications when submitting a form.


  • Fixed: Conflicts with custom textareas and notes inside of Constant Contact account when updating an existing contact.
  • Fixed: Potential issues around reading Constant Contact Forms error logs when log file is potentially not readable.


  • Fixed: Hardened reCAPTCHA and form processing from possible AJAX bypass.


  • 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.