The Ultimate Member plugin is a formidable package for managing membership on a WordPress site. Surprisingly, however, it does not have a built-in way to import members through CSV file or other method. But, you can still do it using the method I describe here.
Install the “Import Users from CSV” Plugin
The first step (after installing Ultimate Member, of course), is to install the Import Users from CSV Plugin. This plugin had been somewhat abandoned but I’m glad to report that it’s now being maintained again!
FYI, there are a few alternate user upload plugins that I have not tried yet, but they should work: Import Users from CSV With Meta. Another one is Import Export WordPress Users.
Create Your Preliminary CSV File Template
After activating the plugin, go to Users -> Import from CSV (or Tools -> Import users from CSV if you’re using the newer plugin) and click the link to download the example CSV file. Use this as a starting point to create your CSV template. If you have other fields you want to import, add new columns with the Meta Key for that field in the first row.
To find a Meta Key for an Ultimate Member field, go to Ultimate Member -> Forms -> Registration Forms, then click on edit button for the field you want to add. The Meta Key field will be there.
Repeat for all of the Ultimate Member fields that you want to add.
Populate Your CSV File
The next step is to populate your CSV file with member data. Either copy it into your template CSV, or reformat your existing member CSV to fit the format of your template.
There are some very important steps to take when doing this:
- user_login is a required field, so make sure it is unique and not blank!
- Email address is actually not required, but it’s a good idea to have it unless you have a specific reason not to.
- Make sure there are no duplicate usernames or email addresses, or the import will fail part way through and you’ll have to clean up the mess.
- Passwords (user_pass) might not be required, but I always add them anyway. If I don’t have passwords, I generate them arithmetically in Excel based on other fields. Note that they will be encrypted before being written to the database, as with other WordPress passwords.
- For the “role” column, I use “subscriber” to give minimum WordPress privileges to members.
- Create a column with title ” account_status ” and populate it with “approved” for all members. This is used by Ultimate Member.
- VERY IMPORTANT: If you have any fields which are validated as URLs, make sure to include the “http://” or “https://” before the domain name, or else they won’t validate after entry and you’ll have to add them manually to every member!
When you’ve taken care of all of these issues, and made sure there are no invalid fields in your spreadsheet, export it as a CSV file if it is not already.
Check Ultimate Member Field Validations
At this point, you should double-check what kind of validations you have set for your Ultimate Member fields to make sure they match they type of content you have in your spreadsheet.
One type of field that might trip you up is email address. Ultimate Member has a validation setting called “Unique Email” for email addresses. This not only makes sure the email address is a valid address, but also that it is unique within this WordPress install. That means the import will fail if there are any duplicate email addresses in this field. That is what you want if the email address is the user’s primary email address, but it might not be what you want if the email address will be duplicated between members.
Think about this carefully and set your Ultimate Member form validations accordingly.
Set Notification Preferences
I learned this lesson the hard way, but one super-important thing to do before uploading is to think about Ultimate Member email notifications.
Go to Ultimate Member -> Settings -> Emails and turn off any email notifications that you don’t want to go out during the import process.
Upon import, users will be in the Pending state. Think about whether you want to move them to Approved yourself, or if you want them to get an email prompting them to do it, and set your email notifications accordingly. This is a very important step!
I forgot to do this, and I had to re-import a few times. This resulted in hundreds of emails going to confused members who thought their memberships were canceled and so forth. Please don’t make this mistake!
Do a Test Import
The most prudent thing to do at this point is to make a backup of your site, and then do a test import using your spreadsheet template and a few dummy users. Go to Users -> Import from CSV, and import the dummy CSV file.
Do the import and make sure they are imported into Ultimate Member correctly. If not, go back and fix what failed.
This is also a good time to make sure the email notification settings you chose are what you really want. Check to see if the appropriate emails got sent (or not sent if that is the case).
Do the Real Import
Okay, you are finally ready!
Go to Users -> Import from CSV. There are three check boxes related to notifications and so forth that you should carefully consider before proceeding. Once they are set accordingly, upload your CSV and go!
If successful, all of your imported members will be in the Approved state. However, in my latest testing, the role assigned to the imported members was only Subscriber. We need to add “Member” to that also.
Add the Member Role
To add the “Member” role to the imported users, go to Users and select all of the users that you’ve imported. Then click Grant Roles at the top, check “Member (um_member)” in the popup, then click OK.
Okay, that’s it. Bulk importing members into Ultimate Member is a somewhat tedious process that needs to be done carefully. But hopefully, you’ll only need to do it once!
Let me know if you have any other tips regarding this. Let me know how your Ultimate Member import experience went as well! – Brian
Please Leave a Question or Comment
Do you know how I can export members including their ID numbers?
Members are just WP users with a different role (“member”). Knowing that, you can find a plugin to export WP users. Here’s one that might work:
Hi Brian, firstly, thanks for the quick response – really appreciated!
Problem with this plugin is, although it gives me member I.D., it seems incomplete!
My situation; I run a not-for-profit club website with Ultimate Membership Pro as our membership plugin. This gives me the option to view those who have paid their subs, and those who have not, by filtering and exporting the CSV. However, it does not give me the membership number (ID).
This plugin exported around 200 of 400, but seemed to include both paid and not paid – very confusing.
Many thanks for your time
You’ll have to ask the plugin maker about that. Or, try one of the other WordPress User plugins out there.
Brian, thank you. Excellent, clear instructions. Very helpful!
Glad it worked for you Denise! Thanks for sharing!
Hi Brian, I reached out to the import user plugin author but have not heard back – do you know if there is a way to import the profile and cover images? We have a lot of members and adding them manually is taking a long time.
Sorry, I don’t know of a way to do it other than coding it from scratch.
Ok thank you for your quick reply Brian.
i am using free ultimate member plugin.
am bit confused how to import and export users.
i was trying to wordpress import and export plugin but it has so many fields.. what shall i do in this ? i should fill the fields or.. only mail field which i need for ultimate member.
password field also .. what i should type in MD5 pass or something else.
You don’t need to fill in all fields. Regarding password, see step 4 in the article. You don’t need to MD5 encode them.
Where is the ‘Member’ role created? It is not in the Users role dropdown.
I made a mistake
I exported all users (including admin user) and modified them and imported them.
now I cant access to the back end of my site.
please help my access my site again.
I fix it.never mind.
how to update specific data not all user profile?
and thank you for the post.
Hello , I tried to import users with new field , that i added To CSV file (meta-key)
but it does not work.
any suggestion please!
Not sure why it didn’t work. Try one of the alternate plugins I mentioned in the article.
Thanks for providing us with your insights. I have this task on my table and I’m glad that you shared your process.
Thank you very much for such a great instruction,
I am now trying with [account_status] as approved.
But I am keep receiving error
[There’s something wrong with your code…]
I uploaded csv like this,
The result is like this,
I wonder if anybody could help me to import with correct role, and approved straight away?
I’d say, turn on WordPress debug mode for a more detailed error message, and then go from there.
Thank you very much for your quick reply, I am so impressed!
In the end, according to your instruction, I placed like this on the CSV,
role = subscriber
account_status = approved
Then result was,
Role = subscriber
Approved = yes,
After that, I changed the role to the correct customed role by manual.
Fist time I tried too much on CSV,
role = um_custom_role_13
account_status = approved
I expected this works, for both Role and Approvement but I found 2 things does not work at the same time.
We have to give up Custom role to be imported, if we want it as [approved] status.
Your instruction was absolutely correct!
I have another question..
I use an unique password for 300 people for this import,
I expect each one of them to re-set the password after they received credential.
In that case, the best way is like this?
1. Send welcome message from UM
2. and check [show password nag on new users signon
I want to do 2 things in one-e-mail somehow,, I wonder if you have better idea to make it happen..?
I’m not sure how to do this one. You you might need to check with someone at Ultimate Member. Let me know if you figure it out.
Great instructions. I struggled with the passwords, as the current version kept using a different encryption that my site if I imported as user_password. if i used user_pass as the column heading, it imported the clear text. Solution – set up a user with the default password you want, go to the DB and copy the encrypted version of the password – past that into your CSV file in the user_pass column, and the clear text of the encrypted password is imported and then works on the site.
Now, I’m still not allowed to import multiple users with the same email. I need to do this because I’m bulk importing and don’t have emails for everyone. I noted your comments above about UM Form Validations, but so far, I’ve been unable to find these settings (at least not at the field level.) I’ve edited the default UM forms, and the user_email field on those forms to require “No Validation” but that doesn’t seem to have worked. Any further suggestions on how to configure to allow for multiple users with the same email (but a unique username) would be much appreciated.
Update – after reading lots of other articles, I think WordPress prevents duplicate email addresses. However, you can import data with a blank email as long as you have a unique username, which meets my needs. thanks again for the helpful article.
Ah, glad you figured out a solution, and thanks for following up!
Great article! Thank you very much!
I have one suggestion and one question :)
The suggestion is that you can probably automate the approval process by using a column “account_status” with value “approved” (haven’t tried it, but I see the meta field in the database)
And my question is, have you found a way to import Profile Photo? Seems like passing an URL won’t cut it..
Thanks for your comments! I think your first idea should work, although I haven’t tried it.
I’ve not found a way to import the profile photo; that could be tricky since the URL of media files usually have the year/month in the URL… Sorry, I don’t know of a quick solution. If you find one, please let me know and I’ll post it.
FYI, I found including “account_status” as “approved” to be a key step for Ultimate Member migration. You don’t need column with title “MembershipStatus” as he stated in the instructions above however.
Thanks, I’ve updated the article to use account_status instead of MembershipStatus!
One issue I found in my testing, however, is that the new users come in with only the Subscriber role, and not Subscriber and Member. I had to manually add the Member role after import. Is this what you found as well?
Thanks for your article, it is a help resource. I have a question though. You mentioned adding a column for ‘Role’ and setting it to subscriber. How does one set a persons status as Admin or Member on import? How should that column be labeled?
I believe the row title and fields should match what is in your database. So, use phpMyAdmin or a database viewer plugin to see how the database fields are labeled and label the spreadsheet the same way.
I’m using godaddy WP hosting and using their starfield mysql admin, I’m not able to find the db so I can see the UM tables and make sure I’m loading the correct fields. Any suggestions on how to do this.
You’re an incredible help – thank you soso much
Thank you for your comment – I’m so glad my article was helpful to you!
Hi Brian –
Thanks for the great info!
Do you happen to know how I can change the default email that’s sent to members by the Import? The one that’s there is quite terse and unfriendly. I’m moving my membership from Salesforce to WordPress and I’d like the initial email to say “Welcome to our new website”, and “Here’s how you log in”, and so on.
Any idea how to do that?
Most of the Ultimate Member emails are configurable on this page of the admin:
Ultimate Member -> Settings -> Emails.
Hi Brian, does this work for updating existing user memberships as well? For instance, My business is a certification body. I plan on having a “candidate” membership to the site with access to A materials. Once a user passes an off site certification test, I need to upgrade their membership to “Certified Member” with access to A + B materials. This process would be automated. Will importing the new data create new users or update them?
My gut feeling is that it will create new users, but the only way to know for sure is to try it out. Let me know if find out.
Thanks. I’ll let you know!
I am wondering why the profile images are not loading after import. What is the metakey for profile images? I’ve tried these so far: profile_photo, um-profile-photo-img, um_profile_photo_img, .um-profile-photo, .um_user_avatar, um_avatar, um_avatar, um-profile-photo, um_profile_photo and user_avatar_small. None of these seem to work so far. Brian, am missing something?
Sorry, I’ve never tried loading profile images in this way. Let me know if you figure it out and I’ll share it with everyone.
This was bothering me, too. Found out that the photos are kept in the images folder of the media library. A unique folder for each user labeled with the user id# is created when the user uploads through the profile entry interface, and several sizes of he photo are created in that folder. So, there is no meta key, unfortunately. Does make it harder to import!
Thank you, just followed this and it was very helpful.