Skip to content
GPLWP Guides

How to import membership data into WordPress

Membership & LMS Time About 30 minutes for a small import; several hours for a large migration 7 steps Updated 9 Sep 2026

MEMBERSHIP & LMS
The short answer

Importing membership data is not a WordPress core feature. You can import basic users with WP-CLI, but memberships, payments and recurring subscriptions need the importer supplied by your membership plugin; for large MemberPress migrations, use its CSV importer.

The route
  1. 01Back up and map your data
  2. 02Create the destination memberships
  3. 03Prepare separate CSV files
  4. 04Import users manually first
  5. 05Upload membership records
  6. 06Verify access and payments
  7. 07Use the faster bulk-import route

What you need

  • A full WordPress backup and staging site
  • Administrator access to WordPress
  • CSV exports from the old membership system
  • Your membership plugin installed and configured
  • WP-CLI access if using the manual user-import route

Back up and map your data

Take a complete backup of the database and files, then work on a staging site. List the data you need to move: users, membership levels, access rules, one-time payments, recurring subscriptions, expiry dates and custom profile fields.

Do not assume that an export from one membership plugin can be uploaded directly to another. The destination plugin normally expects its own column names, date formats and record relationships.

Create the destination memberships

Install and configure the destination membership or LMS plugin before importing records. Create the membership levels, products and payment gateways that the imported records will refer to.

For MemberPress, memberships must exist before subscriptions are associated with them, and imported users must already exist in the WordPress Users area. Importing a recurring subscription does not create a live subscription or charge a customer; it records an existing subscription from the payment gateway.

Prepare separate CSV files

Prepare separate files for users, subscriptions and transactions instead of placing everything in one spreadsheet. Keep a header row, use UTF-8 encoding, and match the destination plugin’s sample template exactly. For MemberPress, user records need a username and properly formatted email address; custom fields must use the field slugs expected by the plugin.

Match every membership record to an existing username or email. Check dates, membership IDs, gateway IDs and status values before uploading. A common Friday-afternoon failure is importing users successfully and assuming that their memberships or payment history came with them.

Import users manually first

For a small migration, WordPress can import basic user accounts through WP-CLI. Prepare a CSV with columns such as user_login, user_email, display_name and role, then run wp user import-csv /path/to/users.csv. Existing users are matched by email address or login and updated unless you use the option to skip updates.

This manual route is fine when you only need WordPress accounts. It does not import membership levels, access rules, transactions or recurring subscriptions, so you still need the membership plugin’s own importer for those records.

Upload membership records

Use the destination plugin’s import screen and upload each matching CSV. In MemberPress, go to MemberPress > Import, select the file type, choose the CSV and upload it. Import users first. For recurring memberships, import the subscriptions file before the transactions file.

Read the result screen after every upload. Keep the failed-row CSV, correct the listed problems and reimport only those rows. Typical causes of failure include missing required headers, invalid email addresses, the wrong membership ID, non-UTF-8 encoding and a username or email that does not match an existing account.

Verify access and payments

Test several imported accounts as members and as non-members. Check that the right content is accessible, expiry dates are correct, custom fields appear, welcome or password-reset emails behave as expected, and transaction history is attached to the right user.

For recurring subscriptions, confirm that the gateway identifier is correct and that the subscription already exists at the payment processor. Do not create duplicate live subscriptions. Only after the checks pass should you switch webhooks or IPN settings from the old system and disable the old membership plugin.

Use the faster bulk-import route

For a large MemberPress migration, use MemberPress Importer. It provides CSV imports for users and membership data, field mapping and error reporting, so you can process the migration in batches instead of building separate WordPress and membership-data workflows.

Use the same order as the manual process: configure memberships, import users, then import subscriptions and transactions, followed by testing. This is the practical choice when you are moving a large dataset into MemberPress rather than importing a handful of accounts.

The fast route

Let MemberPress Importer do it

Bulk CSV migration for users, memberships, subscriptions, and rules; best when moving large membership datasets into MemberPress.

Get MemberPress Importer

Sources

  1. memberpress.com /docs/automatically-recurring-subscriptions/?utm_source=open…
  2. memberpress.com /docs/users-and-data/?utm_source=openai
  3. developer.wordpress.org /cli/commands/user/import-csv/?utm_source=openai
  4. memberpress.com /docs/migrating-overview/?utm_source=openai

Questions

Can WordPress import memberships without a plugin?
No. WordPress core can create or update user accounts, including through WP-CLI, but it does not know how a membership plugin stores levels, access rules, transactions or subscriptions. You need the importer provided by the membership or LMS plugin, or a custom migration script that writes the plugin’s data in its required format.
Should I import users or memberships first?
Import or create the destination membership levels first, then import users, followed by membership records, subscriptions and transactions. Membership records need an existing user and usually reference an existing membership ID. With MemberPress, recurring subscriptions must be imported before their related transactions.
Why did users import but have no membership access?
Users importing successfully does not assign them to memberships. User CSV files create or update WordPress accounts only; membership assignments, transactions and subscriptions are separate records. Check that you uploaded the correct membership CSV, that its username or email matches the imported account, and that the destination membership already exists.
Can I import active recurring subscriptions?
Yes, but importing records does not create a new billing agreement or charge the customer. The subscription must already exist at the payment gateway, and the CSV must contain the identifiers and membership details required by your plugin. Verify gateway IDs and webhook settings before switching the live site.
What should I do when some CSV rows fail?
Keep the importer’s failed-row output, fix the specific headers or values it reports, and reimport only those rows. Check encoding, required columns, email addresses, membership IDs, date formats and username or email matches first. Do not repeatedly upload the full file, because that can update existing users or create duplicate records.