Move members in and out of Tiger Membership with CSV — the migration lever when switching from MemberPress, Paid Memberships Pro, or a spreadsheet. Both directions are free (never paywalled), because importing your existing members is how a site adopts Tiger Membership in the first place.
Where: WP Admin → Tiger Membership → Members → Export / Import.
Export
Export downloads every membership as a CSV — good for backups, reporting, or moving out to another tool. The file is generated on the server, so it includes fields the list view doesn’t show. Columns are: email, name, plan_slug, plan_name, status, started_at, current_period_end, gateway, source.
Import
Import reads a CSV, finds-or-creates a WordPress user per row, and activates their membership. Parsing, validation and writes all happen on the server — the browser only ships the file text. The CSV needs a header row with at least an email column; common synonyms are accepted (for example user_email→email, plan/plan_id→plan, start_date→started_at, expires/renews_at→current_period_end).
Dry-run preview
Import always runs a dry-run first, reporting how many rows would be processed, how many new users would be created, and how many would be skipped (with per-row error messages) — before anything is written. You confirm to commit.
Preserved tenure
Each row’s status and original join date (started_at, and current_period_end when present) are honored, so a migrated member keeps their standing and renewal date instead of resetting to “new today”. A row’s plan is resolved by slug or id, falling back to a default plan you select for rows that don’t name one.
How to migrate in
- Export members from your old platform to CSV (email + plan + status + join date).
- In Members → Import, upload the CSV and pick a default plan for unmatched rows.
- Review the dry-run preview and its per-row errors.
- Confirm to import — statuses and tenure are preserved.
Troubleshooting
The import is rejected before it starts.
The file must be valid CSV with a header row containing an email column, and no larger than 5 MB. Split very large exports into batches.
Rows are skipped with “no plan” errors.
A row’s plan slug/id didn’t match any plan and no default plan was selected. Fix the plan_slug values to match your plans’ slugs, or choose a default plan before importing.
Imported members lost their original join date.
Include a started_at (and optionally current_period_end) column with parseable dates. Blank or unparseable dates fall back to the import time.