The #1 Mailchimp plugin for WordPress. Allows you to add a multitude of newsletter sign-up methods to your site.
Allowing your visitors to subscribe to your newsletter should be easy. With this plugin, it finally is.
This plugins helps you grow your email list in Mailchimp. You can use it to create good looking and accessible sign-up forms or integrate with any other existing form on your WordPress site, like your contact, comment or checkout form.
Some (but not all) features
Connect with your Mailchimp account in seconds.
Sign-up forms which are good looking, user-friendly and mobile optimized. You have complete control over the form fields and can build your forms using native HTML.
Seamless integration with the following plugins:
WordPress Comment Form
WordPress Registration Form
Contact Form 7
WooCommerce
Gravity Forms
Ninja Forms 3
WPForms
BuddyPress
MemberPress
Events Manager
Easy Digital Downloads
Give
UltimateMember
HTML Forms
AffiliateWP
Is the plugin you want to integrate with not listed above? You can probably still use our custom integration feature. Alternatively, the plugin comes with a PHP API to programmatically add a new subscriber to Mailchimp.
Mailchimp for WordPress Premium: Send your WooCommerce orders to Mailchimp so you can see exactly what each subscriber purchased and how much revenue your email campaigns are generating.
A multitude of available add-on plugins and integrations:
Ready for PHP 8.4, but backwards-compatible all the way down to PHP 5.6.
What is Mailchimp?
Mailchimp is a newsletter service that allows you to send out email campaigns to a list of email subscribers. It is free for lists with up to 500 email subscribers, which is why it is the newsletter-service of choice for thousands of small businesses across the globe.
The plugin provides various filter and action hooks that allow you to modify or extend the default behavior. We’re also maintaining a collection of sample code snippets.
Installation
Installing the plugin
In your WordPress admin panel, go to Plugins > New Plugin, search for Mailchimp for WordPress and click “Install now“
Alternatively, download the plugin and upload the contents of mailchimp-for-wp.zip to your plugins directory, which usually is /wp-content/plugins/.
The form shows a success message but subscribers are not added to my list(s)?
If the form shows a success message, there is no doubt that the sign-up request succeeded. Mailchimp could have a slight delay sending the confirmation email though. Please check again in a few minutes (sometimes hours) and don’t forget to check your junk folder too.
When you have double opt-in disabled, new subscribers will be seen as imports by Mailchimp. They will not show up in your daily digest emails or statistics. We always recommend leaving double opt-in enabled.
How can I style the sign-up form?
You can use custom CSS to style the sign-up form if you do not like the themes that come with the plugin. The following selectors can be used to target the various form elements.
Very minor code-size improvements to public forms related JavaScript.
Update third-party JS dependencies.
Bump tested WordPress version to 6.6.
4.9.13 – Apr 25, 2024
Fix issue with Composer classmap throwing a fatal error when an older version of Composer is already loaded.
4.9.12 – Apr 22, 2024
Fix last 10 Mailchimp lists not being pulled-in when having more than 10 lists.
4.9.11 – Jan 8, 2024
Update third-party JS dependencies.
Bump tested WordPress version.
4.9.10 – Nov 20, 2023
Integrations: Update CheckoutWC hook name for WooCommerce checkbox integration.
Forms: Don’t show form preview to users without edit_posts capability.
Forms: Explicitly exclude form preview from search engine indexing.
General: Don’t unnecessarily go through service contrainer while bootstrapping plugin.
General: Remove some unnecessary JavaScript now that browser support has caught up.
4.9.9 – Oct 3, 2023
Fix class “MC4WP_Usage_Tracking” not found error for WP Cron / WP CLI processes.
4.9.8 – Oct 3, 2023
Remove the opt-in usage tracking functionality as we’re not really using it for decision making anymore.
Add missing label element to the select element for setting the logging level.
Our JavaScript assets are now transpiled to support the same set of browsers as WordPress core. This drops support for some very old browsers, but results in smaller bundle sizes for the supported set of browsers.
Update third-party JS dependencies to their latest versions.
4.9.7 – Aug 29, 2023
Update third-party JS dependencies.
Minor textual improvements.
Bump tested WordPress version.
4.9.6 – Jul 12, 2023
Update third-party JS dependencies.
Address some minor codestyle issues.
4.9.5 – Jun 7, 2023
Fix generated HTML for list/audience choice fields.
Fix deprecation warning in includes/admin/class-review-notice.php.
Update JavaScript dependencies.
4.9.4 – May 2, 2023
Fallback to default checkbox label if none given. Thanks to Shojib Khan.
Improve WooCommerce integration settings page by disabling position field if integration is disabled. Thanks to Shojib Khan.
Update JavaScript dependencies.
4.9.3 – Mar 31, 2023
Defend against breaking change in latest WPForms update.
Remove Google reCaptcha feature. This was already disabled if you were not already using it.
4.9.1 – Feb 7, 2023
Fix generated value attribute for fields of type choice (dropdown, checkboxes, radio fields).
Fix type of marketing_permissions field in API requests. Thanks to George Korakas.
Refactor list overview JS to not depend on Mithril.js anymore.
Simplify admin footer text asking for a plugin review.
When renewing lists, renew cached marketing permissions too.
4.9.0 – Jan 13, 2023
Removed deprecated filter hook mc4wp_settings_cap, use mc4wp_admin_required_capability instead.
Removed deprecated filter hook mc4wp_merge_vars, use mc4wp_form_data or mc4wp_integration_data instead.
Removed deprecated filter hook mc4wp_form_merge_vars, use mc4wp_form_data instead.
Removed deprecated filter hook mc4wp_integration_merge_vars, use mc4wp_integration_data instead.
Removed deprecated filter hook mc4wp_valid_form_request, use mc4wp_form_errors instead.
Removed deprecated function mc4wp_get_api() and deprecated class MC4WP_API.
Removed deprecated function mc4wp_checkbox().
Removed deprecated function mc4wp_form(), use mc4wp_show_form() instead.
Added filter mc4wp_debug_log_message to modify or disable messages that are written to the debug log.
Fix color of invalid Mailchimp API key notice.
Sanitize IP address value from $_SERVER['REMOTE_ADDR'] too.
Fetch GDPR marketing permissions via first subscriber on list and show them in lists overview table.
4.8.12 – Dec 06, 2022
Minor performance, memory usage & size optimizations for all JavaScript code bundled with this plugin.
4.8.11 – Nov 1, 2022
Improved default styling for the WooCommerce sign-up checkbox integration.
Add <strong> to allowed HTML elements for GDPR disclaimer text on settings pages.
Remove all references to obsolete placeholders.js polyfill.
Move the GiveWP sign-up checkbox closer to the email input field. Thanks Matthew Lewis.
4.8.10 – Sep 14, 2022
Fix mc4wp_get_request_ip_address() to return an IP address that matches Mailchimp’s validation format when X-Forwarded-For header contains a port component.
4.8.8 – Aug 25, 2022
Fix mc4wp_get_request_ip_address() to pass new Mailchimp validation format. This fixes the “This value is not a valid IP.” error some users using a proxy may have been seeing.
4.8.7 – Mar 2, 2022
Fix PHP 8.1 deprecation warnings in MC4WP_Container class.
Fix name of action hook that fires before Mailchimp settings rows are displayed on the settings page. Thanks LoonSongSoftware.
Only allow unfiltered HTML if user has unfiltered_html capability. Please read the below.
Despite extensive testing, we may have missed some more obscure HTML elements or attributes from our whitelist. If you notice that some of your form HTML is stripped after saving your form, please get in touch with our support team and provide the HTML you attempted to save.
4.8.6 – Jun 24, 2021
Add nonce field to button for dismissing notice asking for plugin review.
Add strings from config/ directory to POT file.
Add nonce check to AJAX endpoint for refreshing cached Mailchimp lists.
Add capability check to AJAX endpoint for retrieving list details.
Schedule event to refresh cached Mailchimp list upon plugin activation.
Thanks to the team over at pluginvulnerabilities.com for bringing some of these changes to our attention.
4.8.5 – Jun 1, 2021
Add nonce verification to all URL’s using _mc4wp_action query parameter. This fixes a CSRF vulnerability where a malicious website could trick a logged-in admin user in performing unwanted actions.
A special thanks to Erwan from WPScan for bringing this issue to our attention.
4.8.4 – May 7, 2021
Add defer attribute to JS file, so page parsing isn’t blocked at all.
Rewrite plugin CSS to optimize for selector performance and get rid of some duplication.
Write to debug log if Google reCAPTCHA secret key is incorrect.
Validate reCAPTCHA keys when savings form settings.
Allow setting an empty “successfully subscribed” message.
4.5.0 – March 27, 2019
Additions
Built-in integration with Google reCAPTCHA to prevent bots from subscribing to your Mailchimp lists.
Improvements
Minor improvements to the JavaScript that is loaded on admin pages.
4.4.0 – March 1, 2019
Fixes
AffiliateWP integration subscribing the wrong user if affiliate ID differs from user ID.
Improvements
Renamed “MailChimp” to “Mailchimp” to match Mailchimp’s new branding.
More accurate handling of timeouts for accounts with many MailChimp lists.
UX improvements for integrations overview page.
Validate MailChimp API key format when it’s entered.
Improved compatibility with Klarna Checkout in the WooCommerce checkout integration.
Bumped required PHP version to 5.3 (soft requirement for now).
Additions
Added Gutenberg block for easily adding a form to a post or page.
Added subscriber tags setting to forms.
4.3.3 – December 31, 2018
Fixes
Update WPForms integration to properly detect if the WPForms plugin is activated.
Improvements
Write API request parameters to the debug log in case of connection timeouts.
Update JavaScript dependencies.
4.3.2 – December 11, 2018
Fixes
Use of readonly function, which is only available in WordPress 4.9 or later.
4.3.1 – November 28, 2018
Fixes
Fatal error on PHP versions older than 5.5
4.3 – November 28, 2018
Additions
Added MC4WP_API_KEY PHP constant which can be used to set your Mailchimp API key.
Add mc4wp_mailchimp_list_limit filter hook to modify the maximum number of Mailchimp lists to fetch. Defaults to 200.
Improvements
Apply mc4wp_integration_gravity-forms_options filter hook on Gravity Forms integration options so the checkbox can be prechecked and the checkbox label text modified.
The updated_subscriber JS event is now fired forms not using AJAX as well (when applicable).
4.2.5 – Sep 11, 2018
Improvements
Only re-add subscriber to list if we want to re-trigger a double opt-in confirmation email.
Change Gravity Forms field name to “Mailchimp for WordPress”
Get rid of cached result of Mailchimp API connection.
4.2.4 – July 9, 2018
Improvements
Ensure type-safety on some global variables.
Stop showing trashed forms immediately.
Pre-check Mailchimp list when creating a new form if there is only 1 list.
Send null for unknown values in usage tracking data (only when opted-in).
Additions
Add methods for accessing Mailchimp’s e-commerce promo code endpoints to API class.
4.2.3 – June 11, 2018
Fixes
Don’t wrap “agree to terms” input in hyperlink element.
Allow [ENTER] key again after field helper overlay is closed.
Improvements
Fallback to meta-refresh if redirect fails because of “headers already sent” error.
4.2.2 – May 22, 2018
Fixes
Events Manager integration was not working with logged-in users.
Form preview URL should respect admin HTTP(S) scheme.
Removed use of PHP 5.4 function.
Improvements
Add “agree to terms” checkbox to field helper.
Additions
Add filter mc4wp_http_request_args.
4.2.1 – April 11, 2018
Fixes
Namespace usage warning when running PHP 5.2
Improvements
Remove obsolete type attribute from all <script> tags printed by the plugin.
Improved tooltips on settings pages.
Do not pre-check integration checkboxes by default.
Add textual warnings to settings that may affect GDPR compliance.
Added Gravity Forms integration. You can now integrate with Gravity Forms by adding the “Mailchimp” field to your forms.
4.1.9 – September 19, 2017
Improvements
Add <label> element to sign-up checkbox for WCAG compatibility.
Custom integration now works with Enfold theme’s contact form element.
4.1.7 & 4.1.8 – September 8, 2017
Fixes
Properly escape the return value of add_query_arg when it is used in HTML attributes to prevent cross-site scripting. Thanks to Karim Ouerghemmi of RIPS for responsibly disclosing.
Now loading integrations after WPML so that String Translations work properly.
Additions
Add sign-up integration for WPForms forms.
Improvements
Updated internal JS dependencies.
Form tag {data key="foo.bar"} now allows you to access nested array values.
4.1.6 – July 31, 2017
Fixes
Method on API class for retrieving campaign data.
Improvements
Show Akamai reference number when an API request is blocked by Mailchimp’s firewall.
Minor output buffering improvements in form previewer.
4.1.5 – June 27, 2017
Fixes
Failsafe against outputting sign-up checkbox twice in registration forms.
Properly close HTML anchor element in French translation files.
Fix BuddyPress sign-ups when using WordPress Multisite.
Improvements
Fire action hook mc4wp_form_updated_subscriber whenever a form was used to update a subscriber in Mailchimp.
Increase browser timeout for AJAX request when fetching Mailchimp lists.
Additions
Added campaign & template methods to API client class.
4.1.4 – June 15, 2017
Fixes
Some form specific JS events were not firing due to incorrect event names.
Registration form integration now works with WooCommerce registration form.
Notice that asks for a plugin review would re-appear after dismissing it.
4.1.3 – May 24, 2017
Improvements
Randomise time of cron event that renews Mailchimp lists.
Always try to show Mailchimp list info when API key is given.
4.1.2 – May 8, 2017
Fixes
Use earlier hook priority for Ninja Forms 3 integration so action is registered on time.
Improvements
Improved Mailchimp list fetching & memory usage for accounts with many lists.
Show error message when fetching lists fails.
Updated plugin translations.
4.1.1 – April 11, 2017
Fixes
WPML String Translation not working with the checkbox label for sign-up integrations.
Improvements
Use updated order methods when using WooCommerce 3.0, thanks to Liam McArthur.
Updated JavaScript dependencies.
4.1.0 – March 14, 2017
Improvements
Updated all JavaScript dependencies in the plugin.
Failsafed filter hooks to prevent invalid variable types.
Explain that greyed out integrations means that specific plugin is not activated.
Conditional form elements now uses event delegation, so it works with forms in Boxzilla pop-ups.
Updated language files.
Additions
Added support for Ninja Forms 3.
Added mc4wp_integration_show_checkbox filter.
4.0.13 – February 8, 2017
Improvements
Ensure fields are HTML decoded before sending to Mailchimp.
Better OptimizePress compatibility.
Show all address-type fields as required when form contains 1 or more fields of the same address group.
4.0.12 – January 16, 2017
Fixes
Don’t call stripslashes on POST data twice.
Improvements
Plugin review notice is now dismissible over AJAX.
Improved formatting of birthday fields.
Updated Polish translations, thanks to Mateusz Lomber.
Updated German translations, thanks to Sven de Vries.
Additions
Add update_ecommerce_store_product method to API class.
Throw form specific JavaScript events, like 15.subscribed to hook into “subscribed” events for form with ID 15.
4.0.11 – December 9, 2016
Fixes
Unescaped request variable on integration settings page, allowing for authenticated XSS. Thanks to dxwsecurity for responsibly disclosing.
Improvements
Add $args parameter to API::get_lists_activity method. Relates to the Mailchimp Activity plugin.
4.0.10 – December 6, 2016
Improvements
You can now enable or disable debug logging from the “Other” settings page.
No longer using deprecated function in Contact Form 7, thanks to stodorovic.
Improved UI for adding hidden interest groupings fields to a form.
4.0.9 – November 23, 2016
Fixes
Issue with escaped HTML when using form tags introduced by previous update.
4.0.8 – November 23, 2016
Improvements
Improved handling of large debug logs.
Improved error messages when writing exceptions to debug log.
Show notice when form is missing required Mailchimp fields.
Custom form integration now handles arrays with 1-level depth. Thanks to Mardari Igor.
You can now use nested tags in your form code, eg {data key="utm_source" default="{current_path}"}
Hidden fields which referenced interest groups by name were not sent to Mailchimp.
Adding hidden field to form would reset value on every change.
Improvements
Decrease file size of JavaScript for forms by about 30%.
4.0 & 4.0.1 – August 9, 2016
This release updates the plugin to version 3 of the Mailchimp API. Please read through the upgrade guide before updating to make sure things keep working as expected for you.
Changes
“Send welcome email” is now handled from your list settings in Mailchimp.
Filter mc4wp_form_merge_vars is now called mc4wp_form_data.
Filter mc4wp_integration_merge_vars is now called mc4wp_integration_data.
New format for GROUPING fields in forms & filter hooks.
Value delimiter in hidden fields is now a pipe | character.
Additions
New filter: mc4wp_form_subscriber_data.
New filter: mc4wp_integration_subscriber_data.
New form tag: {cookie name="mycookie"}
Improvements
The plugin now communicates with the latest & greatest Mailchimp API.
Previously unsubscribed subscribers can now be re-added without errors.
Add User-Agent header to all API requests.
Available fields in form editor are now split-up by category.
Birthday fields now accept a broader range of values and delimiters.
Fixes
Issue with only 10 Mailchimp lists / fields / interests being returned.
Incorrect form message showing when double opt-in is disabled.
Error in upgrade routine when API request fails.
List fields not fetched when list has just 1 non-default merge field.
3.1.12 – July 28, 2016
Improvements
Smarter scrolling after submitting form & reloading page.
Format output of {subscriber_count} tag.
You can now use <img> in your form messages.
Add Mailchimp API error code to debug log lines.
Add plugin name + version to User-Agent header for all Mailchimp API requests.
Make sure value of MC_LANGUAGE field is limited to 2 characters.
3.1.11 – July 5, 2016
Improvements
Update JavaScript dependencies for admin screens.
Test debug log & show notice when it’s not writable.
Additions
Add “placeholder” option for dropdown fields.
3.1.10 – June 21, 2016
Fixes
Styles Builder in Premium not building because of incorrect flag in core plugin.
Improvements
Don’t show position option for WooCommerce integration when sign-up is implicit.
Improvements to form previewer logic.
Make sure admin notifications are always shown exactly one time.
3.1.9 – June 7, 2016
Fixes
Placeholder polyfill wasn’t loaded (only in IE8 and below).
Improvements
Don’t write to debug log if it is not writable.
Reset some CSS properties for commonly used class names in Form Editor & Debug Log.
Do not unnecessarily register styles which are then immediately enqueued.
Additions
Add “is required field” option for dropdown & radio fields in Field Helper.