We designed this plugin to give you an error free import of a user/member to a WordPress/Paid Memberships Pro site. It supports both adding and changing user data. Unlike the “Import User From CSV Integration” add-on by Paid Memberships Pro, this “Import Members from CSV” plugin will verify the data
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 5.0 and PHP 7.3.
SourceWordPress plugins · Oct 19, 2026
01 / Source details
About this tool.
We designed this plugin to give you an error free import of a user/member to a WordPress/Paid Memberships Pro site. It supports both adding and changing user data.
Unlike the “Import User From CSV Integration” add-on by Paid Memberships Pro, this “Import Members from CSV” plugin will verify the data you are trying to import during the import operation. This is done to reduce the probability of problem after the import. If there are any errors/issues, information about the problem will be logged to the e20r_im_errors.log saved in the wp-content/uploads/ directory.
NOTE : You can run the import multiple times with the same/slightly modified import .csv file and the appropriate settings (see the FAQ/description below). If you configure the plugin settings correctly, this will only result in overwriting/changing the existing member data.
Using a CSV (Comma Separated Values) file, the will add users with basic user information as well as user meta data fields, the user role (if applicable) and the specified Paid Memberships Pro member configuration/information. It can also generate an order record to ensure your recurring subscriptions continue to get attributed to the imported member.
If you’ve exported the user’s passwords as hashed strings, you can import them without re-encrypting them again (by setting the option).
You can also choose to send a notification to the new users and to display password nag on user login.
This plugin supports Network Activation on a WordPress Multisite (WPMU) installation (see the settings page when using in a multisite configuration)
Check out my other plugins.
Features
Imports all WP User database table fields
Imports user meta
Imports PMPro membership data
Update existing users if they already exist in the WP Users database (if the option is selected)
Overwrite preexisting membership records for the same membership level as is being imported (if the option is selected)
Set/Update the user WordPress role for the member (if the role is specified in the import file)
Sends new user a notification message (if the option is selected)
Deactivate the standard WordPress user update email notices during the import operation
Shows password nag on user login (if the option is selected)
Allows large user/member import without having to configure the PHP max_execution_time variable (if the option is selected)
Import hashed password for new/updating users (if the option is selected)
NOTE : The plugin may not import some of data if it detects a problem. To find out what the problem was, read this documentation and the FAQ section to ensure you have correctly formatted all of your import data.
For feature request and bug reports, please use the issues section on GitHub . Code contributions are welcome on Github .
NOTE : In order to hide the “Donation” button after a donation, this plugin will attempt to track the admin’s IP address. This action may have GDPR implications for you or your administrators.
The tracking information is stored in the WordPress options table (wp_options) using the e20r_import_has_donated option name and can safely be deleted in the database if you do not wish to leave it. Deleting the option from the database will obviously re-enable the Donation nag.
The Nag tracking can be disabled altogether with the e20r_import_donation_tracking_disabled filter:
Click on the ‘Import Members’ link in the ‘Membership’ menu, then select your CSV file. Next you have to decide whether you:
01want to deactivate previously existing member record(s) for the user – The CSV record has to specify the same membership as the user previously had so this is most useful when having to reimport/update data (default: enabled and recommended),
02update the existing user/member’s information (default: enabled and recommended)
03send a notification email to new users (default: disabled),
04want the password nag to be displayed when the user logs in (default: disabled),
05have included a hashed (encoded) password specified in the import file and (default: disabled)
06want to use the background import option (default: enabled and recommended)
07create a PMPro order record based on supplied payment info in the .csv file (default: disabled)
Then click the ‘Import’ button.
Each row in your CSV file should represent a user; each column identifies user data, user meta data or user membership data If a column name matches a field in the user table, data from this column is imported in that field; if not, data is imported in a user meta field with the name of the column or into the PMPro custom membership tables.
Look at the examples/import.csv file in the plugin directory (also linked on the “Import Members” page) to have a better understanding of how the your CSV file should be organized and what the data fields need to contain as far as formatting/values go.
You can always try importing the examples/import.csv file and look at the result, assuming the values specified for the membership_id in the example file match your membership level configuration.
The .CSV file from the “Export to CSV” button on the “Members List” page won’t import?
The purpose of the resulting .CSV file from the “Export to CSV” is to generate reports that are meaningful to a human, not a file that can be imported easily. This is true for any of the available Import from .CSV plugins/add-ons for Paid Memberships Pro.
Basically there are a few key differences between the file resulting from the Export function and the file contents needed to import the same member.
As of version 2.5, this plugin includes data checks for some of the more common mistakes I’ve seen in the .CSV file(s).
You should also check out the import example file that is linked on the “Import Members” page (under the “Choose File” button).
My import fails, what is wrong?
This is almost always related to the data in the file being imported. As a result, I’ve added some data tests for some of the typical mistakes I’ve seen in the .CSV file(s) being imported. There is also a link to an example file on the “Import Members” page (under the “Choose File” button) that illustrates a functional import file. Things lik what the field names are and the format you’ll most likely need to use for the data in that column.
Check the wp-content/uploads/pmp_im_errors.log log file for details on the import operations (link should also be included in a wp-admin dashboard notice if there are errors/warnings). The log should contain suggestions on some of the more common mistakes in the data being imported.
Do I need to include all the columns from the sample file?
No. Only include the columns where you have data to import. I.e, if none of your members need to have their membership end date defined (i.e the membership you’re importing doesn’t have an expiration or it’s a recurring membership with a linked Payment Gateway subscription plan), just remove the column(s) you don’t need. That way, the plugin doesn’t try to import data that isn’t there.
If a column has no data, you should remove the column and it’s column header from the import file!
The plugin didn’t import any membership data!?!
This is a pretty common question and the reason is almost always because there is something unexpected in the membership_ portion of the row being imported.
Most often it’s the date/time format for the membership_startdate and membership_enddate columns.
If you use MS Excel(tm) to prepare your .CSV file, you’re in for a treat…
In my experience, MS Excel(tm) is really good at changing the date format in a spreadsheet column to whatever it thinks works best (i.e. human readable). (If my sarcasm doesn’t shine through; This actually isn’t a good thing!)
However, human readable is often problematic for CSV imports, so you have to make sure the date format follows the YYYY-MM-DD HH:ii:ss template (where ii = 2 digit minute value). For startdate I’d recommend using 00:00:00 and for the enddate I’d suggest using 23:59:59 .
Just to be clear: The only date format for the membership_startdate , membership_enddate and the user_registered columns that this plugin will accept is the MySQL datetime format: YYYY-MM-DD HH:ii:ss.
Use anything else and your membership data will not be imported !
You can change the way Microsoft Excel(tm) handles date and time data in the Regional settings, but I’ve yet to figure out what the ideal settings are here. Truth be told, I’m using Apple Numbers and others have had great success using Google Sheets to process and export their .CSV files. Because there are alternatives to Microsoft Excel(tm) and they seem to work a lot better for this specific task, I’m not at all inclined to spend more time on fixing something that I view to be a rather significant “bug”[1] in Excel(tm).
[1] = Being that it’s an intentional usability feature, I realize Microsoft is unlikely to be all that interested in fixing this “as designed” capability they’ve implemented.
Can this plugin be used to link sponsored members with their sponsors?
Yes.
In version 2.60, we added support for importing Sponsors and their sponsored members. So, if you have the PMPro Sponsored Members add-on installed, active and need to link sponsors and their sponsored members during the import with this plugin.
Importing the Sponsored user
To link sponsored users with their sponsors, add the pmprosm_sponsor column to your import file.
On the data row for the sponsored user, the pmprosm_sponsor column must contain the user key for the sponsor you want to link them with.
Or, if they don’t have a sponsor, that column must be blank.
The sponsor key is either the email address they used when registering on your system – or the user_email column value for their user record if they’re also being imported at the same time, the WordPress user ID value (numeric), or the login name used (user_login value).
Importing the Sponsor
First of all, you will need to include a pmprosm_seats column as well. This column contains a numeric
See it in action
Screenshots & previews.
User import screenOngoing (background) import screenDefault settings on the user import screen
02 / Source details
Getting started.
For an automatic installation through WordPress:
01Go to the ‘Add New’ plugins screen in your WordPress admin area
02Search for ‘Import Users from CSV’
03Click ‘Install Now’ and activate the plugin
04Upload your CSV file in the ‘Users’ menu, under ‘Import From CSV’
Or use a nifty tool by WordPress lead developer Mark Jaquith:
05Visit this link and follow the instructions.
For a manual installation via FTP:
06Upload the pmpro-import-members-from-csv directory to the /wp-content/plugins/ directory
07Activate the plugin through the ‘Plugins’ screen in your WordPress admin area
08Upload your CSV file in the ‘Members’ menu, under ‘Import Members’
To upload the plugin through WordPress, instead of FTP:
09Search for the plugin (“Paid Memberships Pro Import Members from CSV” on the ‘Add New’ plugins screen in your WordPress admin area and activate.
10Upload your CSV file in the ‘Memberships’ menu, under ‘Import Members’
Frequently Asked Questions
11Upload the pmpro-import-members-from-csv folder to the /wp-content/plugins/ directory.
12Activate the plugin through the ‘Plugins’ menu in WordPress.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati