SleekView for Simple Membership: members & payments as tables
Simple Membership stores its data in swpm_members_tbl, swpm_membership_tbl, and swpm_payments_tbl. SleekView joins them so each member shows level, account state, last payment, and expiry on a single row.
♾️ Lifetime License available
Members and payments in one place
Simple Membership maintains its own user identity layer separate from wp_users. Members live in swpm_members_tbl with member_id, user_name, email, membership_level, account_state (active, expired, inactive, pending), member_since, and last_accessed_from_ip as columns. Levels themselves live in swpm_membership_tbl, and every payment lands in swpm_payments_tbl with the linked member_id and gateway transaction reference.
The default Simple Membership admin gives Members, Membership Levels, and Payments their own screens with their own filters. Joining a member to their last payment or their lifetime spend means jumping between screens and matching by member_id manually. The members screen lists account state but doesn't show the linked level name, the expiry date, or the last-payment outcome alongside it. Per-level cohort retention, dunning queues, and lifetime-spend rankings all sit somewhere between the default screens and a manual SQL query.
SleekView reads the three tables directly, joins members to their level via membership_level and to payments via member_id, and produces a single member-centric roster with state, level name, expiry, last payment, and lifetime spend as columns. Bulk state flips and inline level changes route through the SWPM API where supported.
Workflow
Simple Membership tables joined into one workspace
Map the SWPM tables
swpm_members_tbl, swpm_membership_tbl, and swpm_payments_tbl. Each becomes a navigable view with the columns SWPM already maintains.
Join on member_id
member_id. Aggregate amount from swpm_payments_tbl for lifetime spend; show last-payment date and outcome inline.
Save the operational views
Edit through the SWPM API
Sample columns
A typical Simple Membership roster
swpm_members_tbl + swpm_membership_tbl + swpm_payments_tbl
| Member | Level | State | Last payment | Lifetime spend | Joined |
|---|---|---|---|---|---|
| alex@studio.co | Gold | Active | Apr 24 | $240 | Jan 12 |
| ria@design.io | Silver | Active | Mar 14 | $120 | Feb 03 |
| tom@hello.dev | Gold | Expired | Mar 24 | $120 | Mar 12 |
| mia@brew.coop | Trial | Inactive | Apr 02 | $0 | Apr 02 |
Comparison
Default Simple Membership admin vs SleekView
Default Simple Membership admin
- Members, levels, and payments live in three separate screens
-
Joining members to last payment requires manual
member_idmatching - Per-level cohorts and dunning queues need custom SQL
- Lifetime-spend ranking isn't a sortable column
- Bulk state flips go one member at a time
SleekView
- Joined members + level + payments in one view
- Lifetime-spend and last-payment columns inline
- Filter by state and level for cohort retention
- Inline state and level edits via the SWPM API
- Save views per role for admin, support, finance
Features
What SleekView gives you for Simple Membership
Joined member + payment views
Combine swpm_members_tbl, swpm_membership_tbl, and swpm_payments_tbl into one row per member with level name, state, last payment, and lifetime spend as proper columns.
Cohorts and LTV
Sort members by lifetime spend aggregated from swpm_payments_tbl, filter by level plus join date for cohort views, and rank retention across signup months without exporting CSVs.
Inline state & level edits
Update account_state (active to expired to inactive) or change membership_level inline. Bulk-update across cohorts for migrations or scheduled flips with SWPM hooks firing where supported.
Audience
Who uses SleekView for Simple Membership
Finance ops
Payments table joined with member data, sortable by date and amount. Filter swpm_payments_tbl by status for the dunning queue and export as CSV for monthly-close reconciliation.
Membership admins
Active vs expired vs inactive members with inline state fixes. Spot accounts in pending that need manual approval or in expired that need win-back outreach.
Support
Per-member payment history visible during chat without screen-jumping. Last payment, lifetime spend, current state, and level all on one row for full context on every ticket.
The bigger picture
Why SWPM stores need joined tables
Simple Membership earns its name on configuration, not on operations. The plugin is straightforward to set up and serves smaller membership sites well, but its admin treats members, levels, and payments as three separate concerns with their own screens. Operationally that's fine for a hundred members and gets painful past a thousand, where every retention question, every dunning workflow, and every cohort analysis needs all three tables read together.
Did this member's last payment fail? Are they still listed as active despite that? How much have they paid since signup? SWPM stores the data to answer all of those, but reaching it from the default admin means three screens, manual member_id matching, and the occasional SQL query. SleekView's joined view collapses that into a single workspace where the row-level question is one filter away. Finance running monthly close, support handling chat, and growth running cohort retention all benefit from the same simplification — one screen instead of three.
Questions
Common questions about SleekView for Simple Membership
It maintains its own user identity in swpm_members_tbl separately from wp_users, optionally linking the two by username. SleekView reads the SWPM tables directly so the roster works regardless of whether the WordPress account link is configured.
Yes. State updates route through SWPM's API where supported so registered hooks (level-change emails, capability sync) fire as expected. Direct DB edits stay available for bulk cleanup and skip hooks by design.
 
Yes. Custom fields stored in swpm_form_builder_custom render as additional columns in the roster view. Filter and sort on them like any other column for segmented cohort views.
SWPM stores per-member expiry on swpm_members_tbl for fixed-duration levels. SleekView surfaces it as a date column with sort and filter support, so the lapse-in-7-days view is one saved filter.
Yes. Both add-ons write their transactions into swpm_payments_tbl with the gateway identifier on the row. Filter by gateway for per-channel reconciliation or join transactions to the member roster for support context.
Yes. Sort the joined view by last-payment date and filter the payment status to failed or pending. That's the dunning queue — members whose most recent charge didn't clear and need outreach before their level lapses.
 
Yes. Queries use the indexed member_id on swpm_payments_tbl and paginated reads on swpm_members_tbl. Sites with hundreds of thousands of members run smoothly because SWPM's own indexes drive the joins.
Category protection is configuration on the level row in swpm_membership_tbl rather than per-member data. SleekView surfaces those fields as columns on the level-config view if you want them, separate from the member roster.
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