SleekView for Paid Memberships Pro: members & orders as tables
Paid Memberships Pro splits members and orders across pmpro_memberships_users and pmpro_membership_orders. SleekView reads them so you can build joined views with status, level, and lifetime spend visible at a glance.
♾️ Lifetime License available
Member ops without per-record clicks
Paid Memberships Pro keeps its operational data in two custom tables: pmpro_memberships_users stores one row per user-membership pair with status (active, expired, cancelled, admin_cancelled), level ID, start date, and end date, and pmpro_membership_orders stores every transaction with subscription_transaction_id linking renewals together. Membership levels themselves live in pmpro_membership_levels, and discount codes plus their usage live in pmpro_discount_codes and pmpro_discount_codes_uses.
PMPro's default admin gives Members and Orders separate screens, with reporting in a third tab. Joining a member to their lifetime-spend total or their last-order outcome means either jumping between screens or running custom queries through the Reports module. The PMPro Multiple Memberships add-on creates additional rows in pmpro_memberships_users — one per active membership per user — which complicates the default member view further because the same user appears multiple times.
SleekView reads both tables directly, joins on user_id, and aggregates orders per member for a single member-centric view with level, status, lifetime spend, last-order date, and join date as proper columns. Multiple-memberships installs render as one row per membership with the user_id grouping intact.
Workflow
PMPro members and orders in one workspace
Map the PMPro tables
pmpro_memberships_users, pmpro_membership_orders, and pmpro_membership_levels. Each becomes a navigable view with the columns PMPro already maintains.
Join on user_id
total from pmpro_membership_orders for lifetime spend; show last-order date and status inline.
Save the operational views
Edit through PMPro APIs
Sample columns
A typical PMPro members view
wp_pmpro_memberships_users + wp_pmpro_membership_orders
| Member | Level | Status | Lifetime spend | Last order | Joined |
|---|---|---|---|---|---|
| alex@studio.co | Pro | Active | $240 | Apr 24 | Jan 12 |
| ria@design.io | Annual | Active | $120 | Mar 14 | Mar 14 |
| tom@hello.dev | Pro | Expired | $120 | Mar 24 | Mar 24 |
| mia@brew.coop | Trial | Cancelled | $0 | — | Apr 02 |
Comparison
Default PMPro admin vs SleekView
Default PMPro admin
- Members and orders are in separate screens
- Joining member + order data requires reports or SQL
- Bulk status changes go one row at a time
- Filtering by level + status + last order isn't a saved view
- Cohort views (e.g. members who joined this month) need exports
SleekView
- Joined members + orders in one view
- Lifetime-spend and last-order columns inline
- Filter by level + status + join date together
- Inline-edit member status and level
- Save views per role
Features
What SleekView gives you for Paid Memberships Pro
Joined member + order views
Combine pmpro_memberships_users and pmpro_membership_orders into one row per member with all the fields you need — level, status, lifetime spend, last order, and join date.
Cohorts and LTV
Sort members by lifetime spend, filter by level plus join date for cohort views — without exporting CSVs. Compare retention across cohorts by signup month directly in the table.
Inline status & level edits
Update member status (active to cancelled to expired) or change level inline. Bulk-update across cohorts for migrations, comps, or scheduled flips with the PMPro API firing where supported.
Audience
Who uses SleekView for Paid Memberships Pro
Finance ops
Order audit table joined with member data, sortable by date and amount. Filter by status for the dunning queue and export as CSV for monthly-close reconciliation.
Membership admins
Active vs cancelled vs expired members with inline status fixes. Spot accounts in admin_cancelled state that need follow-up before automatic expiry.
Support
Per-member order history visible during chat — no jumping screens. Last order, lifetime spend, and current status all in one row for full context on every ticket.
The bigger picture
Why PMPro stores need joined tables
Paid Memberships Pro is popular because it does its core job well — member capture and access control — but its admin treats members and orders as two separate concerns. Operationally that's wrong: every retention question, every dunning workflow, and every cohort analysis needs both tables read together. Did this member's last order fail? Is their membership still active despite that? How much have they paid since signup? PMPro stores the data to answer all of those, but reaching it from the default admin means the Reports module, exports, and SQL.
SleekView's joined view collapses the two tables into one workspace where the row-level question is one filter away. Finance teams running monthly close, support handling chat queries, and growth teams building cohort retention analysis all benefit from the same simplification: one screen instead of three. For installs running PMPro Multiple Memberships or Recurring Subscriptions, the workspace adapts automatically — multiple-memberships rendered as one row per membership, recurring renewals grouped by subscription_transaction_id.
Questions
Common questions about SleekView for Paid Memberships Pro
Yes. pmpro_discount_codes is exposed as a separate view, with usage joinable to orders via pmpro_discount_codes_uses. Build a view of discount codes ranked by total uses and revenue attributed, or filter to expired codes that still have orders attempting to use them.
Yes. Filter by status to expired, cancelled, or admin_cancelled and SleekView shows the relevant cohort. Combine with end-date filters to find accounts that expired in a specific window — useful for win-back campaigns.
Yes when SleekView uses PMPro's API for status changes, so registered hooks (level-change emails, capability sync, integration callbacks) fire as expected. Direct DB edits skip hooks by design — choose per-view depending on whether you want side effects to re-trigger.
 
Multiple memberships are still rows in pmpro_memberships_users with the same user_id across rows. SleekView shows one row per membership with the user_id as a column, so you can either group by user_id or treat each membership as its own row depending on the view.
Yes. Any SleekView view exports to CSV or JSON, including joined member-plus-order views. Build a saved view filtered to last month's orders by level and export it as a monthly revenue report — no separate export script needed.
 
Yes. Recurring orders land in pmpro_membership_orders with a populated subscription_transaction_id linking them to their parent. Filter by that field to group renewals per subscription, or count renewals per member for retention analysis.
Yes. Sort the joined view by last-order date and filter by status to error or refunded. That's the dunning queue — members whose most recent payment didn't go through and need outreach before their membership expires.
Pay-by-check orders land in pmpro_membership_orders with status pending until manually marked paid. Build a view filtered to that gateway and pending status to see the queue of payments awaiting manual reconciliation, then update inline as cheques clear.
Pricing
More than 1000+
happy customers
Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.
Lifetime ♾️
Most popular
EUR
once
- Unlimited websites
- Lifetime updates
- Lifetime support
...or get the Bundle Deal
and save €250 🎁
The Bundle (unlimited sites)
Pay once, own it forever
Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.
What’s included
-
SleekAI
-
SleekByte
-
SleekMotion
-
SleekPixel
-
SleekRank
-
SleekView
€749
Continue to checkout