Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository

MailChimp User Sync

Synchronize your WordPress Users with a MailChimp list.

MailChimp User Sync

Synchronize your registered WordPress users with a MailChimp list of your choice.

To use MailChimp User Sync, please install either the free or premium version of the MailChimp for WordPress plugin.

MailChimp User Sync, at a glance..

MailChimp User Sync will monitor your WordPress user base and automatically synchronize any changes with a selected MailChimp list. This allows you to keep a MailChimp list of subscribers that is an exact mirror of your WordPress user base.

  • Automatically subscribe new users to your MailChimp list.
  • Sync all profile changes with MailChimp, even when a user's email address changes.
  • When a user is deleted, the associated MailChimp subscriber will be unsubscribed as well.
  • Synchronize all user roles or a specific one, eg all users with the "customer" role.
  • Synchronize all existing users
  • Choose whether you want to use double opt-in and send a welcome email to new subscribers.
  • WP CLI commands to synchronize a large amount of WordPress users at once.

After activation, the plugin will listen to all changes in your WordPress users and make sure everything stays in sync with the selected MailChimp list.

Development of MailChimp User Sync

Bug reports (and Pull Requests) for MailChimp User Sync are welcomed on GitHub. Please note that GitHub is not a support forum.

More information

Author ibericode
Contributors Ibericode, DvanKooten, hchouhan, lapzor
Tags mailchimp, mailchimp list, mc4wp, sync, synchronize, users, woocommerce, zapier
  1. mailchimp-sync screenshot 1

    Synchronization settings

  2. mailchimp-sync screenshot 2

    Status overview

MailChimp for WordPress

Since this plugin depends on the MailChimp for WordPress plugin, you will need to install that first.

Installing MailChimp User Sync

  1. Make sure MailChimp for WordPress is installed (free or premium).
  2. In your WordPress admin panel, go to Plugins > New Plugin, search for MailChimp User Sync and click "Install now"
  3. Alternatively, download the plugin and upload the contents of to your plugins directory, which usually is /wp-content/plugins/.
  4. Activate the plugin
  5. Set your MailChimp API key in MailChimp for WP > MailChimp Settings.
  6. Select a list to sync with in MailChimp for WP > Sync.]
  7. (optional) Select a specific user role to synchronize.
  8. (optional) synchronize your existing users.

1.5.3 - January 18, 2016


  • Pending subscribers (when double opt-in is enabled) would be subscribed again on every profile change.


  • Plugin can now update email addresses in MailChimp without creating a separate (new) subscriber. Thanks to Maymay for the great help.
  • Now showing pending background jobs on settings page.
  • Background queue improvements for long-lived processes
  • Errors in background jobs will now be logged to the debug log.

1.5.2 - September 28, 2016


  • Interest groups were always being replaced, instead of added to the existing subscriber's interest groups.


  • Always write to debug log when webhook receives request for user.


  • Added mailchimp_sync_webhook_data filter to manipulate data received by webhook before it is processed.

1.5.1 - September 7, 2016


  • Don't delay other cron jobs when an error occurs.


  • Only send user fields to MailChimp when not empty, to prevent overriding existing data when webhook is not configured.
  • Ask for confirmation before changing webhook secret.

1.5 - August 4, 2016


1.4.7 - July 8, 2016


  • Incorrect user count resulting in lots of duplicate "Fetched 0 users" statements in Manual Synchronization wizard.


1.4.6 - June 14, 2016


  • Webhook not updating user fields because it couldn't find an associated user.


  • Added webhook settings to settings page.
  • Added "secret key" option to webhook, to further secure webhook endpoint.
  • Preparations for MailChimp API v3.

1.4.5 - May 25, 2016


  • Error on PHP 5.3. Square bracket array assignment is a PHP 5.4 feature.

1.4.4 - May 25, 2016


  • Only add MailChimp status to user profile when user matches criteria.
  • CLI command now defaults to role selected on settings page when no role argument given.


  • Show success notice when manually subscribing or updating a user.
  • Show "skipped" message when wizard attempts to synchronize a user that is excluded by the mailchimp_sync_should_sync_user filter.
  • Show notice that numbers are off when using mailchimp_sync_should_sync_user filter.
  • Various UX improvements to settings page & manual synchronization wizard.
  • Various performance improvements.

1.4.3 - April 13, 2016


  • When user switches role or no longer matches custom conditions (using the mailchimp_sync_should_sync_user filter) he will now be unsubscribed from the selected MailChimp list.
  • User fields which are an array of values are now automatically converted to a comma-separated string before they are sent to MailChimp.

1.4.2 - March 14, 2016


  • Re-run subscribe method if email isn't found on MailChimp list (because of an invalid email, for example)


  • Setup schedule to run sync process at least once an hour, to prevent long delays.
  • Strip EMAIL from available field map fields to prevent invalid configurations.
  • Webhook updating a user will now write to the debug log.

1.4.1 - February 10, 2016


  • Webhook verification not working when setting up webhook in MailChimp.


  • Remove JS sourcemaps from admin scripts.

1.4 - January 26, 2016

This update requires you to update MailChimp for WordPress to version 3.1 first.


  • Deleted users were no longer unsubscribed in some cases.


  • Use new Queue class from MailChimp for WordPress 3.1 for improved background processing.
  • Use new debug log for easier debugging.
  • Add HTTP status codes to Webhook listener.
  • Miscellaneous code improvements


  • WP CLI commands are now named wp mailchimp-sync all and wp mailchimp-sync user <user_id> (backwards compatible)


  • WP CLI command wp mailchimp-sync all is now showing a progress bar

1.3.3 - January 14, 2016


  • Fatal error on settings page on lower PHP versions because of missing space between <?php and translation call. This gets Forced Sync to work again.

1.3.2 - January 13, 2016


  • Subscription status wasn't showing on user profile.


  • Check for correct request parameters before processing MailChimp webhook.
  • Change plugin name to "MailChimp User Sync"
  • Document all WP CLI commands.
  • Better mobile responsiveness for settings pages.
  • Use Browserify to handle script dependencies.
  • Improved compatibility with MailChimp for WordPress v3.0

1.3.1 - November 13, 2015



  • Added mailchimp_sync_get_user_field filter to get user fields from a custom source and sync those to MailChimp.

1.3 - October 17, 2015


  • Webhook not picking up on custom fields, it was only updating default user fields.
  • When creating user via mailchimp_sync_webhook_user filter, it was not staying in sync.


  • Changes are now sent to MailChimp after all changes are applied, at the end of the request.
  • Individual changes in user_meta will now be taken into account as well.

1.2.3 - October 12, 2015


  • Webhook listener not working since version 1.2.2.
  • Fields in additional fields section were stripped on settings save (when using "+ Add Line" button).


  • Various defensive coding improvements to the webhook listener

1.2.2 - October 7, 2015


1.2.1 - October 1, 2015


  • For mapping user fields, you can now manually type the "meta key" value of the field. Comes with autocomplete if you have users with that field already.
  • For WooCommerce checkout: run after custom fields have been added


  • Newly added rows could not be removed unless page was refreshed again.

1.2 - September 24, 2015


1.1.3 - September 9, 2015


  • Status indicator was not working for installations with a custom database prefix.


  • You can now view & clear the log file from the settings page.
  • Nothing will be logged unless WP_DEBUG is enabled.

1.1.2 - September 8, 2015


  • Status indicator (in sync / out of sync) is now showing the correct # of users when a role is set.


  • Field rules will now clear when changing the MailChimp list to subscribe to.
  • Make it more clear that settings should be saved after choosing a MailChimp list.

1.1.1 - August 28, 2015


  • Allows you to send the user role as well.

1.1 - August 28, 2015


  • You can now send additional user fields.
  • You can now subscribe individual users from their "edit user" page.

1.0.2 - August 18, 2015


  • Errors are now written to dedicated log file, usually located in /wp-content/uploads/mailchimp-sync.log.
  • Added mailchimp_sync_should_sync_user filter, which lets you set your own criteria for subscribing a user.

1.0.1 - July 14, 2015


  • More detailed error message are now shown in the log.
  • Force Sync will now start with unsynced users.

1.0 - May 29, 2015


  • Force synchronization would not work on large data sets (> 10.000). The process is now batched.


  • Pause & resume the forced synchronization process


  • Enable & disable auto-syncing
  • Choose a user role to synchronize.
  • WP CLI commands: wp mailchimp-sync sync-all and wp mailchimp-sync sync-user $user_id.
  • Filter: mailchimp_sync_user_data to modify user data before it's sent to MailChimp.

For more detailed usage info on the introduced features, have a look at the MailChimp User Sync FAQ.

0.1.2 - March 17, 2015


  • Synchronising would stop if a synchronize request failed
  • Conflict with other plugins bundling old versions of Composer, throwing a fatal error on plugin activation
  • Users who were deleted from a list would cause issues, they're now re-subscribed.


  • Added some feedback to Log whether a synchronization request succeeded or not.

0.1.1 - February 17, 2015


  • Force Sync got stuck on users without a valid email address. (#10, thanks girandovoy)
  • JSON response was malformed when any plugin threw a PHP notice


  • Progress log now auto-scrolls to bottom
  • Progress log now shows time
  • Progress log now shows more actions
  • Add settings link to Plugin overview
  • Various JavaScript improvements

0.1 - January 23, 2015

Initial release.

I think I found a bug. What now?

Please report it on GitHub issues if it's not in the list of known issues.

I have another question

Please open a topic on the plugin support forums.

Send additional fields to MailChimp

Since version 1.1, you can specify which additional user fields to send to MailChimp by mapping your fields on the settings page of the plugin.

If you need to send more complex data you can use the mailchimp_sync_user_data filter.

add_filter( 'mailchimp_sync_user_data', function( $data, $user ) {
    $data['WEBSITE'] = $user->user_url;
    return $data;
}, 10, 2 );

Only synchronize users based on a custom criteria

You can set your own criteria for subscribing a user by hooking into the mailchimp_sync_should_sync_user filter.

add_filter( 'mailchimp_sync_should_sync_user', function( $subscribe, $user ) {

    // check for custom user field
    if( $user->subscribe_me ) {
        return true;

    // do not subscribe otherwise
    return false;

Can I run this from the command-line?

Yes, you can. The plugin registers two WP CLI commands.

wp mailchimp-sync all                            # synchronize all users
wp mailchimp-sync all --role=administrator  # synchronize all users with "administrator" role
wp mailchimp-sync user $user_id             # synchronize the user specified by the given ID

This is especially useful for synchronising a huge amount of users.

Does this plugin synchronize data back from MailChimp?

Not by default, but you can enable this by configuring a webhook in your MailChimp account.

Version 1.5.3

Requires WordPress version: 4.1 or higher

Compatible up to: 4.7.2

Last Updated 18 Jan 2017

Date Added: 24 Jan 2015

Plugin Homepage


4.8 stars
13 ratings


Not Enough Data

Works: 0
Broken: 0