How to Sync WordPress Users with Mailchimp
1. Installation
Plugin installation is pretty similar to any WordPress plugin installation:
- Download the ZIP archive of the plugin after the purchase.
- Open your WordPress dashboard and go to Plugins > Add new.
- Upload the plugin and activate it.
- You will need to provide your Mailchimp API key in plugin settings Settings > Mailchimp Sync.

2. Configure audiences and tags
Once your API key is configured, more options will appear in the settings. First of all, you can now configure rules on how you would like your WordPress users to be synchronised with Mailchimp.
You can set one or multiple rules for every default or custom WordPress role. For example, below I set multiple rules for a custom “Customer” role.

3. Sync additional fields
Additional fields are also called *|MERGE|* tags. In the previous version of this plugin, they could only be configured with a hook (code snippet), but now a friendly interface is available.
Long story short, you can send any user’s metadata, such as first names, last names, and maybe birthday dates (depending on your website) to Mailchimp. As a result, this data will appear in your audience contacts, and you can do segmentation using it. For example, to send specific emails only to contacts whose age is above 20.
More details about syncing WordPress user meta fields with Mailchimp *|MERGE|* tags can be found in this support article.
4. How does it work, exactly?
I think the best way to describe how the plugin works is with this table:
| Trigger | Action |
|---|---|
| A user was registered. A user was added manually in the admin area. A user was registered in the custom code using wp_insert_user(), wp_create_user() or register_new_user() functions. | The user’s email will be subscribed to Mailchimp audiences connected to the user’s roles. All the appropriate merge tags will be added as well. |
| A user was registered with the “Double Opt-In” option turned on. | If users never existed in these specific audiences to which we are going to subscribe, they will receive a confirmation email then. |
| Personal information (First name, Last name, Email, etc.) was updated by the user or by the administrator. Personal information was updated in the code via wp_update_user() function. | The information will be updated in Mailchimp automatically. |
A user role was changed in the admin area or in the code with the wp_update_user() function. | The user’s email will be unsubscribed from audiences connected to his previous role and subscribed to an audience connected to the new role. If a new user role isn’t connected to any audience, the user will be unsubscribed. |
| Both the user role and user email were changed at the same time | The old user’s email will be removed from Mailchimp audiences connected to his old role, and the new user’s email will be subscribed to the list connected to the new role. |
| User was removed | The user’s email will be unsubscribed from all the audiences connected to the user’s role. |
5. Manually resync all users to Mailchimp
I completely understand that sometimes you may install the plugin on an existing website with hundreds or maybe thousands of users. That’s why I added the feature that allows us to manually sync WordPress users with Mailchimp audiences, depending on their roles.

Syncing back from Mailchimp to WordPress
The plugin also supports two-way synchronization:
- allows you to update user profile information on your WordPress website when a specific user profile has been updated in Mailchimp,
- or to delete site users when they unsubscribe from a Mailchimp audience.
In order to make this functionality possible, you need to install a free add-on, which is available in your Member’s area after the plugin purchase. The add-on also provides additional options in Settings > Mailchimp Sync:

Mailchimp for WooCommerce Memberships
The plugin is also ready to be used with your WooCommerce Memberships plans. An example of plugin configuration for a specific membership plan is in the screenshot below.
Every plan status can be synced with a specific audience (list ID).
