1. Segment Member Emails with MailChimp & Restrict Content Pro
  2. Segment Member Emails with MailChimp & Paid Memberships Pro
  3. Segment Member Emails with MailChimp & MemberPress
  4. Segment Member Emails with WooCommerce Memberships

Today we’re continuing our series on segmenting member emails with some tips for segmenting member emails with WooCommerce Memberships.

Communication with your members is vital for keeping them informed of benefits or new content, but getting member data into your marketing email service is necessary to send member emails. While MailChimp is my preferred email service (so that’s what our tutorial will cover), the tips we’re outlining here can be used with most marketing email services.

Why Segment Member Emails

When a member joins your site, they’ve agreed to trade your membership fee for the benefits offered. If you want members to continue making that choice, you’ll need to keep them engaged with your site, and deliver consistent value.

Segmenting member emails gives you an excellent tool for creating value — you can personalize emails to the access or benefits a member has, informing them of helpful information or new benefits and products.

Segmenting your member emails by memberships status or plan / access type is usually helpful for these kind of emails, but you could also consider segmenting by signup or expiration date as well, depending on what member data to which you have access.

When segmenting emails with WooCommerce Memberships, we can run into a problem: as your members can have more than one membership, segmenting emails for these memberships can be difficult. For example, if you want to email “active silver members”, but a member has an active gold membership + an expired silver one, this can get tricky with MailChimp.

We’ll take a look at how you can set up your membership lists and segments to target members via email with relevant, personalized information.

Member Emails with WooCommerce Memberships: Set up MailChimp Lists or Fields

The first thing you’ll need to do is determine how you’d like your MailChimp account set up — whether you want an email list per plan, or if you want to use one combined email list.

The benefit to using one list per plan is that you can have more advanced segmentation. As every merge tag / field in MailChimp will correspond to one type of membership, you can segment based on status, start date, expiration date, or other membership data easily. However, this could cost more money. MailChimp charges based on subscriber count, so if a member has multiple memberships and is part of more than one list, they’ll be counted twice towards your total subscriber count.

Having multiple lists also makes it difficult to email all members at once if you have site-wide announcements.

You’ll need to determine whether you want to use one list or multiple lists, as this will determine how you set up your member fields. In my example, I’m going to use a single list for all of my members, so I’ll only have fields for the membership plan. The value of the field will be the status — active, pending, expired, etc — so I can target certain members using this field set.

Add a MailChimp field for each membership plan available on your site.

MailChimp Member List Fields

Member Emails with WooCommerce Memberships: Export Members from WooCommerce

Now we need to get your member data into MailChimp and allow member data to update these fields. To do so, we’ll need to export members to a CSV file so we can upload this file to MailChimp.

The Memberships documentation has several tips on importing and exporting members, but the exporting part is pretty easy. You’ll go to WooCommerce > Memberships > Import / Export to find the “Export to CSV” section. This will allow you to set export conditions and get your member list.

WooCommerce Memberships Export Tool

The member list will have one row per membership, not one row per user. As a result, one user could have multiple rows in your file. As a result, I recommend breaking the export up on a per-plan basis so that you export only one plan-type at a time (regardless of how you have MailChimp set up).

WooCommerce Memberships: export by plan

Export by Plan

You can also export by status if you’d like to only export active members. Likewise, if you want to mass-unsubscribe inactive members in MailChimp, you could export all inactive statuses instead.

WooCommerce Memberships: export by status

Export by Status

If you only want to export a few members manually, you can use a bulk action from the Members list to do so as well.

WooCommerce Memberships: bulk action export

Bulk Action export

Once you’ve exported your members, you’ll download a CSV file with all member data available. (Though your CSV will probably only have one plan’s member data for now.)

WooCommerce Memberships sample export CSV

I’m going to delete most columns from this except for the member name, email, and status, as that’s all I’ll use within MailChimp to create email segments.

Member Emails with WooCommerce Memberships: Import Members to MailChimp

You should now have one CSV file per membership plan. If you’re using separate lists with MailChimp, getting these members into MailChimp is simple: import the appropriate CSV to each list. You may want to keep more of the columns in the CSV file and create merge tags for them, such as start / end date, if you’re going this route for more advanced segments.

If you’re using one list, we’ll do multiple imports. Each time, you’ll import the “status” column to the appropriate merge tag. For example, when I upload my CSV of “Platinum” members, I’ll map the status column to the “Platinum” merge tag. Likewise, when I import my gold members, I’ll map this to the “Gold” merge tag instead.

WooCommerce Memberships MailChimp Import

This way, you’ll get the status assigned for each merge tag / plan field:


Now when you do future imports, these merge tags can be updated by your CSV file for current membership statuses.

Member Emails with WooCommerce Memberships: Create Email Segments

Now that your member data is in MailChimp, you can create segments for different kinds of member emails.

All Members in a Specific Plan
To email all members in a specific plan is fairly straight-forward. Since a plan’s merge tag will only be blank if the person has never had a membership for that plan, we can check, “{Plan} is not blank” in MailChimp.

WooCommerce Memberships  email plan members

This will send an email to anyone who has an active or inactive membership for this plan.

Active Members in a Specific Plan
If you want to email active members for a specific plan, then we’ll need to do some checking around membership status. While selecting “Active” statuses is up to you, WooCommerce Memberships will let anyone with the following statuses access restricted content: active, complimentary, pending

I’d recommend adding a saved segment so you can re-use it for each plan that checks for each of these statuses.

WooCommerce Memberships email active plan members

You can have this segment auto-update in case a member’s status changes in the future. That way, you’re able to select this as a saved segment when creating a campaign.

WooCommerce Memberships select segment

Recently Expired Members
Since you can’t segment based on status and end date if you use one member email list, you could try to approximate a “recently expired” segment.

If you’re only updating members via CSV import, then it’s reasonable to assume that an “info changed” date would correspond to your latest upload / import. Therefore, you could use the status + the info changed date to determine whose information was recently changed via import.

WooCommerce Memberships email recently expired members

While this isn’t a perfect measure of whose memberships have recently expired (as they could have updated their own information, such as last name), it can be a rough way to send “win-back” emails for expired members.

Segment Member Emails with WooCommerce Memberships

Segmenting member emails with WooCommerce Memberships can be tricky since your users can have more than one membership. As a result, it’s not too clean to create email segments within MailChimp, as the member data in MailChimp can correspond to different plans.

Exporting members of a particular plan, then using a plan name = status merge tag set up lets you segment emails by plan and active / inactive status to keep your members informed.

You can then update this data in the future via re-importing members before sending campaigns, or you could bulk-unsubscribe a list of expired members (as you could target these statuses with an export).

Cover Photo Credit: Kate Ter Haar (CC BY 2.0 license)

Note: This post may contain affiliate links, which means we get a commission from the plugin, theme, or service provider if you choose to purchase. Regardless of this, we are committed to providing high quality, unbiased resources. Have more questions? See our affiliate policy. You can use the plain links below if you prefer that we not receive a referral commission:

Posted by Beka Rice

Beka Rice manages the direction of Sell with WP content and writes or edits most of our articles to share her interests in eCommerce. Or she just writes as an excuse to spend more time jamming out to anything from The Clash to Lady Gaga. Who knows.


  1. Hi Beka, thanks for the writeup!

    I’ve been trying to find a solution to sync up WooCommerce Memberships with our Mailchimp list. This looks like a good solution, but less than optimal for a growing membership community, given how much manual updating it’d require w/ the CSV imports / exports.

    I found something else that seems promising — an extention from Mailchimp for WordPress (MC4WP) called “Mailchimp Sync” (https://mc4wp.com/add-ons/mailchimp-sync/)

    This syncs WP user data over to Mailchimp, and by default can sync a particular user role to a list. But they also have an option to add custom fields (see here: https://mc4wp.com/kb/sync-custom-fields-to-your-mailchimp-list/) — so if I’m understanding correctly it seems that with just a few lines of PHP you could call the relevant membership data and sync that to the appropriate Mailchimp merge tag.

    Thought you might want to take a look if you hadn’t seen this; if it works it could be a similar solution to what you have here, but easier to maintain! We haven’t implemented this yet so curious what you think — seems straightforward enough but if you happen to come up with the code snippet to glue these things together, and confirm this solution works, would love to hear 🙂

    1. Hey Brendan, thanks for the heads up here! I haven’t seen the MailChimp sync myself.

      At first glance, I don’t think it would work, but it depends on how it “listens” for changes. As a membership isn’t saved as user data, I’m not sure that it would trigger updates when a membership status or plan is changed — is this info the plugin dev could provide? If you could change how it listens, then you can certainly get member data from the user object to set the merge tag value.

      If you’re using Subscriptions, one thing you can note is that it handles role changes from “customer” to “subscriber” and back again when a subscription is inactive, so you could sync the “subscriber” role to get all active members. I know that doesn’t give you the additional data on membership type, but it would work out of the box.

  2. […] Segment Member Emails with WooCommerce Memberships via SellwithWP […]

Comments are closed.