✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount

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

SleekView table view for Simple Membership

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

1

Map the SWPM tables

Point SleekView at swpm_members_tbl, swpm_membership_tbl, and swpm_payments_tbl. Each becomes a navigable view with the columns SWPM already maintains.
2

Join on member_id

Build a member-centric view joining members to payments on member_id. Aggregate amount from swpm_payments_tbl for lifetime spend; show last-payment date and outcome inline.
3

Save the operational views

Build saved views for active by level, expired-but-still-listed accounts, the cohort joined this month, and the failed-payments dunning queue. Gate by role for finance, admin, support.
4

Edit through the SWPM API

State and level changes route through SWPM's API where supported so member-level hooks fire. Direct DB writes stay available for bulk migrations.

Sample columns

A typical Simple Membership roster

Members joined to level, payments, and account state in one view.
Source: 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_id matching
  • 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.

Starter

€79

EUR

per year

  • 3 websites
  • 1 year of updates
  • 1 year of support

Pro

€149

EUR

per year

  • Unlimited websites
  • 1 year of updates
  • 1 year of support

Lifetime ♾️

Most popular

€249

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