How to Import and Export User and Membership Data in ProfilePress
Sooner or later, every membership site owner runs into a job that isn’t a default WordPress or ProfilePress feature.
You’re moving off another membership plugin and need to bring 3,000 members with you. You’ve sold a bulk license to a company that wants 200 seats created before Monday. You need to hand your accountant a spreadsheet of last quarter’s orders. Or you want a portable copy of your member list that doesn’t live inside your database.
All of these are import/export problems, and all of them are solvable — but only if you understand how ProfilePress actually stores your data first. This guide walks you through that, then shows you the practical routes for getting data in and out.
Where ProfilePress Stores Your Data
This is the part most people skip, and it’s the reason most migrations go sideways.
A ProfilePress member isn’t a single record sitting in one table. It’s several related records spread across the database:
- The WordPress user account lives in
wp_users— email, username, display name, registration date, password hash. - Profile fields live in
wp_usermeta— first name, last name, and every custom field you’ve added to your registration or edit-profile forms. - The customer record lives in ProfilePress’s own customers table, and tracks things like total spend, purchase count, and last login.
- Subscriptions live in the subscriptions table, linking a customer to a membership plan with a start date, expiry date, billing amount, and status.
- Orders live in the orders table, with amounts, statuses, payment methods, and transaction IDs.
- Membership plans are their own records, holding names, pricing, and billing frequency.
Why this matters: a plain WordPress user import creates accounts and nothing else. Your members will be able to log in, but they’ll have no plan, no subscription, no order history, and no access to the content you’re charging for. If you’ve ever migrated a membership site and ended up with a thousand logged-in users staring at a paywall, this is why.
A complete migration has to touch all of these layers, and it has to do them in the right order.
Before You Import Anything: Create Your Plans First
This is the single most important step, and it takes two minutes.
Every import method matches members to plans by name or ID. If your spreadsheet says Gold Plan and no plan called “Gold Plan” exists in ProfilePress yet, the user account will be created, and the subscription will be silently skipped.
So before you touch a CSV file:
- Go to ProfilePress → Membership Plans and create every plan referenced in your data — same names, same pricing, same billing intervals.
- Note the plan IDs if your import method uses IDs rather than names.
- Set up your payment methods if you’ll be importing orders or active recurring subscriptions.
Then back up your site. Imports write directly to your user and membership tables, and there’s no undo button.
Exporting Your Data Out of ProfilePress
For day-to-day reporting, you may not need to export anything at all. The ProfilePress → Dashboard reports let you filter revenue, orders, refunds, and taxes by date range and membership plan, and the Orders, Subscriptions, and Customers screens let you search and filter directly in the admin.
Where you do need a file, there are three common reasons, and each points to a different approach:
For compliance requests. If a member asks for a copy of their personal data under GDPR, use WordPress’s built-in Tools → Export Personal Data. It packages everything associated with that email address, including the data ProfilePress registers. It’s designed for one person at a time, not for bulk work.
For accounting or reporting. You typically want orders or subscriptions with dates, amounts, statuses, and the member attached — a flat file you can pivot in a spreadsheet.
For migration, backup, or bulk editing. You want the whole picture: accounts, profile fields, plans, subscriptions, and order history, in a format structured so you can edit it and push it back in.
The last two are where a dedicated import/export plugin earns its keep, because they need to read across all those tables at once and flatten them into rows.
The Bulk Import and Export Route
For anything at scale, we recommend using a CSV import/export plugin with proper ProfilePress support. We point people to WP Ultimate CSV Importer Pro by Smackcoders, which has a ProfilePress integration.
It’s a good fit because it doesn’t treat your members as plain WordPress users. It reads and writes to ProfilePress’s custom tables alongside wp_users and wp_usermeta so a single row in your spreadsheet can create the user account, attach the customer record, sync the subscription, and log the order in one pass.
It handles three record types — ProfilePress Users, Membership Plans, and Orders — so you can move your whole member base in one file or manage your plan catalog and order history separately.
A few things worth knowing about how it behaves:
user_emailis the required field, and it’s also the default matching key. Rows without a valid email are skipped.- Re-running the same file is safe. Existing members are matched by email and updated rather than duplicated, so you can fix a handful of rows and re-import without creating a mess.
- Registration emails are suppressed during import. Your 3,000 migrated members won’t all receive a welcome email at once.
- Blank subscription end dates mean lifetime access, which is what you want for one-time or non-expiring plans.
- Custom registration form fields are detected automatically and appear in the mapping screen alongside the core fields.
- Exports come back re-importable. You can pull your members into a spreadsheet, make bulk changes there, and push the same file straight back in — which is by far the fastest way to do things like shifting expiry dates across a whole plan.
Smackcoders has written a thorough step-by-step guide covering the CSV structure, the full field reference, the field mapping screen, update and duplicate handling, and troubleshooting. Rather than duplicate it here, we’d recommend reading it alongside this article:
👉 How to Import and Export ProfilePress Data Using WP Ultimate CSV Importer Pro
If you’re migrating a large site, it’s worth reading that guide end to end before you build your spreadsheet — mapping your columns correctly the first time will save you far more time than fixing them afterward.
Migrating From Another Membership Plugin
If you’re coming from MemberPress, Paid Memberships Pro, Restrict Content Pro, WooCommerce Memberships, or a hosted platform, the sequence is the same regardless of where you’re coming from:
- Export everything from your old system first — users, subscriptions, and transactions, usually as separate files.
- Rebuild your plans in ProfilePress with matching names and pricing.
- Reshape your old export into the ProfilePress column structure. This is the real work, and it’s spreadsheet work: renaming headers, normalizing dates, mapping old plan names to new ones.
- Test on ten rows. Import a small sample, then check Users → All Users and ProfilePress → Subscriptions to confirm the accounts, plans, and dates all landed correctly.
- Run the full import, then spot-check a few members across different plans.
- Tell your members what to expect. Passwords rarely survive a cross-platform migration, so plan a “reset your password” email as part of the launch.
Do the test import. Ten rows will surface every formatting problem in your file for a fraction of the cleanup cost of finding them after 3,000 rows have already been written.
A Word on Handling Exported Files
A full member export is a file containing the personal data of everyone who has ever trusted you with their details — names, email addresses, billing addresses, and hashed passwords among them.
Treat it accordingly. Don’t email it around unencrypted, don’t leave it in an uploads folder where it could be guessed at, don’t park it in a shared Drive folder with open link access, and delete it once you’re done. If you’re subject to GDPR, that file is squarely within scope, and a leaked export is a reportable breach.
Wrapping Up
Bulk member management stops being intimidating once you understand what’s actually moving: an account, a customer record, a subscription, and an order — four connected pieces rather than one.
Get your membership plans created first, keep your dates consistent, test on a small batch, and back up before you run anything at scale. With those in place, migrating a membership site, onboarding a corporate group, or updating expiry dates across your whole base all become a single-file job instead of a week of manual clicking.