Anyway to do a Bulk Member Import with subscription dates

I have about 6500 paid members which I would like to migrate into Membership v3.0 plugin. Is there a way to bulk upload a csv and then have subscription renew dates carry over? I can export my existing members data into any timestamp format as needed. I have looked through the forums and haven’t see anything like this, so I figured I would as before I developed an import script to do this.

  • jayham
    • New Recruit

    Is there any ETA on when this may be coming because I also have a large user base I would like to transition over to membership? I know S2member has a bulk import option, but was hoping I would be able to use this plugin.

  • KevinDLyons
    • Flash Drive

    ThomasNelson, great to see you guys here. We probably know some of the same people (authors/business development team/former CEO). Feel free to reach out to me personally if you need some additional help.

    I am just wrapping up a successful migration from Amember to the WPMU Membership plugin along with BuddyPress integration. There is not a nice 1-click migration process out there. WPMU Member "SueCline" has a script that looks solid but didn't follow the implementation approach we needed. You can find it here: Bulk Import.

    I ended up going through a three stage import process focusing mainly in MySQL but with some helper tools. I also highly recommend taking the time to do some data hygiene and clean up in the process. For a quick, clean, and accurate migration it's all about the data and formatting.

    Here's the recipe that work for me.

    1. Create WordPress users and fill Membership meta data in wp_usermeta (Tables: wp_users, wp_usermeta): I used the "Import Users from CSV" plugin to keep this simple. It has a great feature for pushing data in to the wp_usermeta table which is tricky. I've attached a screenshot of my data format. I'm a Mac guy but I usually reach in to MS Access to do data shaping. It's just easy. You can see the first 6 fields are wp_users data then you can define your own wp_usermeta fields. You just need to match these up with your configuration. (Tip: build a test site and look at the database tables.) One the csv was created I imported about 260 members in less than a minute. Watch your time formats. The Membership plugin developers seem to like switching between Unix, mm/dd/yyyy, yyyy/mm/dd, etc. Also account for timezone changes when you are morphing time formats.

    2. Set the users up with memberships/subscriptions (Tables: wp_m_membership_relationships, wp_usermeta): Next, after retrieving the user ids from wp_users for the newly created users I constructed an table to import in to wp_m_membership_relationships (see 2nd screenshot). You will need your subscriptions set up first and the gateway is critical for continuity. The table in MySQL has a rel_id field plus the 8 fields shown in the screenshot. The rel_id field auto-increments so no need to reproduce it. I created a csv file and did an import straight in to the MySQL table. Upon import the memberships were live and working.

    3. Populate the BuddyPress profiles (Tables: wp_bp_xprofile_data). This is an extra step and was not necessary for Memberships but we are extensively using the BuddyPress profiles. It's basically just another round of mapping some fields and constructing a csv file to fit in to the wp_bp_xprofile_data table. You can use the wp_bp_xprofile_fields table as a roadmap of possible fields to import. Note, that field "1" which is usually a "full name" required field installed by BuddyPress is already populated with the user import in step #1. Don't duplicate that field. Oh, the "last_activity" field in step one is critical to populate so BuddyPress knows the user is "active". I don't understand why… but it worked.

    That's about it. You will usually only do an import once in the life of a project like this so take your time and do it right. There are some oddities like how Membership uses the wp_usermeta table to store replicated data like the start and expiry dates that are also found in the wp_m_membership_relationships table. I did notice if I manually edit the subscription/membership expiry date in wp_m_membership_relationships it does actually extend the membership but changing it in wp_usermeta doesn't do anything. (Feature request: There should be an option in the admin panel to extend this. )

    Hope this helps. It's not as bad as it sounds but make plenty of backups along the way. Our site was somewhat live during the migration but thankfully I didn't have to do any restores.


  • Kimberly
    • Champion of Loops

    I’ve mailed Barry on this and he was going to be looking into it. We’re deep in a non-plugin priority project behind the scenes here to upgrade you guys experience here :slight_smile: so he is a bit swamped

    As it seems others are popping in I have gone ahead and flagged him down as a feature request here as well.

    I’ll move to feature requests if no-one objects :slight_smile:

    If you do then please let me know.



  • Kimberly
    • Champion of Loops

    Chris have you looked at Kevin’s post above?

    He has a workaround that he has streamlined from another member.

    I cannot find the OP that it was discussed, perhaps he remembers?

    @kevin, do you remember the thread where you and Susan? first discussed the import for membership?

  • exnet
    • Design Lord, Child of Thor

    Hi Kevin, thanks for sharing this tip.

    I’m trying to migrate almost one thousand users from Joomla to WP Membership.

    Some of them have a free registration, and some other have paying sub.

    I don’t see another solution to migrate them, than to copy/paste them one by one in my csv file …

    In you csv file, how do you change your member sub date from (for example) 2013-08-24 17:32 to 1377365544 ?

    My csv looks like this :


    where do I define the level of the member, and his subscription ?

    Sorry, I’m not very comfortable with the SQL and database use.

    If someone can help me to solve this task, this is the only one missing to launch my new website.

    kind regards,


Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.