ResultsAiX Membership is $47 a year for 3 of your sites. Everything on this page, no add-ons, and no cut of anything you sell.
Everything It Does

Every Feature In ResultsAiX Membership, In Plain English

Twenty-three sections. Every capability, nothing invented. What it protects, how it takes the money, how it moves members between levels on its own, what the AI builds when you ask, and how your old plugin's site comes across without a single page being edited.

← Back to the membership page
5
Ways to sell the same level, all into one member record
138
Levels running on the members area this was built for
39,853
Memberships imported in one afternoon, dates intact
18
Legacy shortcodes answered so no page needs editing
8
Shortcodes of its own, from a login form to a whole profile
60
Lessons the AI will write and drip for you, on request
12
Event types the timeline records, from a login to a refund
22
Training guides built in, with a search across them
517
Automated checks passing on the build you download

Protecting your content

Every request is checked on the server before a byte goes out, and this part of the plugin loads for everybody whatever your licence is doing.

Pages, posts and every custom type

A Membership Protection box sits high in the editor sidebar on every public post type your site has, including the ones other plugins add. Tick protect, pick the levels, set a drip delay.

Whole categories and tags

Protect a category once and every post inside it follows, including posts you publish months later. One screen holds the whole matrix, with post counts beside each one.

Bulk protect, in one pass

Every item of a content type, optionally narrowed to a single category, with levels and a drip delay applied as it goes. It tells you how many it changed.

Protection stacks, it does not fight

A post protected directly and by its category opens to the union of both lists, so widening access never means hunting for the original rule.

Empty means administrators only

Content marked protected with no level ticked is locked to admins. It is never public by accident, and deleting a level never makes its content public either.

The page, before it renders

Redirect mode acts before your theme has drawn a pixel, so a non-member never sees a flash of the thing they are not supposed to see.

Content and excerpt together

Both are replaced, so an archive listing can never leak the opening paragraph of something people paid for.

Your RSS feeds

Protected items serve your message instead of your content, judged as an anonymous reader rather than as whoever the feed reader is.

Comments

Closed and emptied on any post the viewer cannot open, so a conversation about paid content is not readable from outside it.

Archives, search and lists

Hide protected items from them entirely, on by default, while a direct visit still gets your message rather than a confusing 404.

The WordPress REST API

Protected content and excerpts are blanked, so a headless front end, a mobile app or a page builder preview cannot walk around the lock.

Three ways to say no

Show your message, show the excerpt as a teaser and then the message, or redirect to a page of your choosing. A login link is added automatically for logged out visitors.

Preview as a stranger

Administrators can step out of bypass with one setting, so you can look at your own site the way a visitor does without logging out of it.

A filter over every decision

Your own code receives the verdict, the post and the user, so an unusual rule takes five lines instead of a fork.

Membership levels

A level is a named access group. Members hold levels, content is protected for levels, and everything else hangs off that one idea.

Unlimited levels

Each with a name, a slug, a description and a sort order. The members area this was built on runs 138 of them without complaint.

Expires after any number of days

Or never, which is how most sites run. A daily job lapses whatever is due and tells your other tools it happened.

Free registration, per level

Switches on a signup form for that level and nothing else, so a free tier can feed your paid ones without opening the paid ones.

Its own pages

Where members of this level go after logging in, after registering and after logging out, with a global fallback underneath for everyone else.

A price, if you want one

One off, or every month, or every year, with an optional free trial of up to two years. A level with no price stays exactly as free as it always was.

Its own mailing list and tags

So a Gold buyer and a free member never land in the same welcome sequence, and every level can carry its own extra tags.

Its own syncs

Tick the bridges that should run when somebody joins this level, from the list you already built.

A quiet offer on the profile page

Show this level to members who do not hold it, in your words, with your button. Soft selling, never a price they already paid.

Or kept off that page entirely

For holding levels, internal tags, and levels whose name ends in Expired that a rule moves people onto. They keep the access, they never see the level.

Slugs that never fail a save

A collision gets a suffix rather than an error message, so naming two levels something similar is not a puzzle.

Names matched forgivingly

Case, spacing and HTML entities are all normalised before comparison, everywhere a level name is typed by hand.

A price is only written when you send one

So an importer, an API call or an older form can never quietly turn a paid level free the next time anything touches it.

Files and whole folders

A download sitting on a plain address is one shared link away from being free. These close that door two different ways.

A sealed library

Uploads land in a folder the web server refuses to serve, sealed the moment it is created and resealed every time the plugin touches it.

Streamed, never linked

Members download through a checked address that verifies their levels first, sends the right file type, and never exposes where the file really lives.

Download counts

Per file, so you can see what people actually came for, with a Test download button that opens the real gated link.

Whole folders on disk

Anywhere under your site root: course areas, video folders, the download folder your old plugin used. Every request inside goes through the level check.

The guard is written for you

And anything already in that folder is preserved underneath it. Unprotecting removes only our block, and deletes the file only if nothing else is left.

Checked, not assumed

Every folder shows whether its guard is really on disk. A missing one is flagged in red rather than quietly trusted.

Scripts inside never execute

PHP files in a guarded folder are refused outright, so an upload area can never become a way in.

Traversal closed off

The real path is resolved and confirmed to sit inside the folder you protected before a single byte is sent.

File counts and sizes

Per folder, cached for an hour with a Recount link, plus a running total across everything you have guarded.

Honest about your server

On anything that is not Apache or LiteSpeed the screen says so plainly and hands you the rule to give your host. The file library works everywhere.

Drip and timing

Release a course over time without anybody needing to remember to publish anything.

Days after joining

Set per page from the editor, per block from a shortcode, or across a whole batch from the bulk tool.

Each member's own clock

Somebody who joined in March and somebody who joined this morning both see lesson one on their day one. There is no shared calendar to manage.

Imported dates are kept

So nobody's course restarts the day you change plugins, which is the single most common way a migration goes wrong.

Measured per level held

A member who qualified through an older membership is never pushed back by a newer one they just bought.

Expiry runs daily

Up to two thousand rows a pass, flipping lapsed grants and firing the hook your autoresponder is listening for.

A queue for delayed actions

Anything scheduled by a rule waits with a due date and runs on the same daily job, checking the member still qualifies first.

Managing members

WordPress users are the identity layer. This records which levels they hold, and gives you a screen built for tens of thousands of them.

One row per member

The default view. Somebody holding seven products is one line with their levels as chips beside it, not seven lines of the same face.

Or one row per membership

The second view, one click away, which is the right one when you are working on a single level.

Every column sorts

Both directions, in either view, including a Last active column. The per member view opens with whoever turned up most recently at the top.

Search and filter

Across email, username and display name, with level and status filters that stay applied as you page through.

Real statuses

Active, cancelled, expired, pending and removed. Each one is a field, not a guess from a missing flag.

Cancel, put back or remove

From the row, without leaving the page, with a proper confirmation that says what will happen.

Removing keeps the record

The membership stays, marked removed and dated, so you can see it happened and undo it with one click. Delete for good is there when you truly want the row gone.

An eye button

Beside Edit on every row, opening the whole member panel without navigating away from your list.

Add a member properly

Search your existing users with a live pick list, or create the account there and then and email them their login details.

Every grant remembers where it came from

Manual, registration, CSV import, an import from your old plugin, the API, Stripe, or the name of the marketplace.

CSV out

Every membership, streamed in pages so a large site never times out, with the columns a spreadsheet actually wants.

CSV in

It accepts the column names people really use, creates accounts for addresses that do not exist yet, resumes where it stopped, and deletes the file from your server the moment it finishes.

The member side panel

Click any name anywhere in the admin and their whole story slides in from the right.

Who they are

Gravatar with a letter fallback, their full name, a clickable email, and buttons through to their memberships and their WordPress profile.

Four numbers

Active levels, how long they have been a member, what they have spent with you, and when they were last here.

Every membership

With its join date, its expiry, where it came from, its status, and Cancel, Put back or Remove right on the row.

Their orders

Newest first, with the gateway, the amount, the subscription state, and a clear marker on anything that was a test purchase.

A full timeline

Up to sixty entries, each with an icon, the money where there was money, how long ago, and the admin who did it when it was not the member.

Their reading history

Last seen, pages read, what they were reading, their most read pages, and the searches that found nothing, which is usually the most useful line on the panel.

What your other sites know

Spend, purchases, email opens, clicks and their history from your main domain, merged into the same timeline and marked as theirs.

It works in place

Cancel a level in the panel and the panel refreshes itself, then the page behind it reloads when you close it so nothing is stale.

The member profile page

One shortcode on one page gives every member their own account area, ordered the way people actually use it.

Pick up where you left off

The first thing on the page, because it is the reason most people logged in. Their last few pages, with how long ago and how often.

Everything they can open

Grouped by the membership that unlocks it, so five hundred pages stay findable instead of becoming a wall of links.

A search box over the library

Plus a filter for what they have not opened yet, and a count of exactly how many that is.

New to them, and read when

Pages they have never opened are marked, and pages they have read say when they read them.

Anything ending soon

Its own block with the date and how long is left, and it only appears when something really is ending.

Memberships as a list

Searchable, filterable, collapsing after the first ten. A member with seventy nine of them can still use the page.

Quiet offers

Only the levels you ticked, only to people who do not hold them, in your words, with your button.

Money is never shown

Purchases are named, never priced. What a member spent is an admin number and it stays on the admin side.

Yours to rearrange

Sections render in the order you list them, and eleven more options control how much of each appears, right down to your own heading for every block.

It cannot come back blank

A section that fails is skipped and written to the log, and if the whole page cannot be built the member still gets their memberships.

Selling with your own Stripe

Connect your own account once. The money goes straight to you, we never touch it, and there is no fee from us on any sale.

One connection for everything

Shared by every ResultsAiX plugin on the site. One set of keys, one webhook endpoint, set up once.

Test and live, side by side

Two full key sets held separately, so you can prove the whole flow with test cards and then flip without re-pasting anything.

Keys encrypted at rest

In their own option, never autoloaded, never printed back into the page, and masked everywhere they appear.

A key in the wrong box is refused

Paste a live key into the test field and it tells you, rather than accepting it and charging somebody real money by accident.

Going live is deliberate

A tick that says real cards will be charged, enforced on the server as well as in the browser.

Cards never touch your site

Stripe's own hosted checkout, which is also what keeps your compliance paperwork to the short form and gets you strong customer authentication for nothing.

Access comes from the confirmation

Never from the page a buyer lands on, so closing the tab a second after paying cannot cost somebody the membership they just bought.

The account exists before payment

On purpose, so a hiccup at the end never loses them the account. An unpaid one is tidied up a day later, and never one that holds anything or wrote anything.

A failed renewal locks nobody out

It is flagged, they get a plain email with a link to update their card, and Stripe keeps retrying for days. This is where paid membership sites lose people.

A partial refund never revokes

A goodwill gesture should not turn a happy customer into a furious one. Only a full refund ends access.

Their own billing page

Stripe's, for cards, invoices and cancelling, reached through a signed link that expires. Without it every expired card is a support ticket.

A daily check against Stripe

It repairs the drift a missed webhook leaves behind, and writes down every change it makes in plain English.

It will not mass revoke

If more than a fifth of your members would lose access in one run it stops, changes nothing, and tells you to look at your keys.

Deleting a member cancels their subscription

So nobody keeps being charged for an account that no longer exists, and if it cannot, it tells you in capitals.

Prices are immutable in Stripe, and that is a feature. Changing an amount creates a new price and repoints the level, so existing members keep the price they signed up at and every old order still refers to what was actually charged.

JVZoo, Warrior Plus, ClickBank and PayPal

Paste a key, copy one address into the marketplace, map your products. Sales deliver straight into your levels.

Four marketplaces

Each with its own switch, its own key and a setup note telling you exactly where that key lives on their site and which field to paste your address into.

Two forms of the address

A full one and a short one, because some marketplace fields have a length limit and will silently truncate the long one.

Eight events, all handled

Sale, rebill, refund, chargeback, cancel, uncancel, failed payment and test ping. Not just the happy one.

Signature checked first

Every notification is verified in that marketplace's own way before anything happens. A forged one is answered politely and logged, never acted on.

Nothing happens twice

The same notification arriving again changes nothing, which is what stops a double fire enrolling or emailing a buyer twice.

A missing key means retry

So the marketplace keeps trying until you have pasted it in, and the sales that arrived in the meantime are not lost.

Affiliate copies ignored

A copy of somebody else's sale is not a delivery, and it is logged as exactly that rather than enrolling the wrong person.

Product mapping

One product code to as many levels as you like. A bundle is simply a product with several levels ticked.

Paste a whole list at once

One mapping per line, marketplace aliases accepted, levels by id or slug, with a per line report of anything it could not place.

Your own rule on a refund

Per product: cancel their access, remove the levels completely, or keep it and just record what happened.

Your own rule on a cancellation

Including keeping access until the period they already paid for actually ends, which is what a fair seller does.

Buyers with no account get one

Created from the notification, with a set your password email and never a password in plain text.

Rebills extend, never shorten

The expiry moves forward from whichever is later of today and their current date, so a late rebill cannot cost somebody days.

A failed payment revokes nothing

It is written into their timeline and their access is left exactly as it was.

Everything is logged

Gateway, buyer, product, what was decided and why, with the secrets stripped out of the stored copy.

And replayable

Any notification can be run again with one button, which is the cure for a sale that arrived before its mapping existed.

The answers are chosen deliberately, because money depends on them. A forged notification gets an OK because there is nothing to retry. A missing key gets a retry because there is. A duplicate does nothing. An unexpected error asks the marketplace to try again, so a sale can never simply vanish.

Orders and money safety

One ledger for every route in, built so that the same payment can never be recorded twice.

One row per payment

With the gateway, the product, the amount, the currency, the tax and the subscription it belongs to, whichever way the sale came in.

Never recorded twice

Guaranteed by the database itself rather than by checking first and hoping, which is what makes a retried webhook harmless.

A refund is a new negative row

The original sale's amount is never edited, so your history stays true and your totals still add up.

Test orders are quarantined

Never counted as revenue, never sent to the family reporting hook, and labelled everywhere they appear.

A receipt page that never grants

It reports what has been recorded, links them to their membership, and waits politely with a spinner if the confirmation has not landed yet.

Warnings that matter

If checkouts are being started and never finished it says so in red, because that is what a missing webhook looks like from the inside.

A reconciliation log

The last hundred changes the daily check made, in plain English, with nothing to report as the normal state.

One hook for the whole family

So your mailer and your tracker can report on money without a shared table between them, and test mode never fires it.

Level actions: bundles, trials and upgrades

A rule is a sentence. When a member is added to Gold Bundle, add them to Silver, Bronze and Toolkit. You read it back and you know what it does.

Two events

Gained a level, or lost one. Lost covers removed, cancelled and expired, so nothing slips through a gap between them.

Four methods

Add them to, remove them from, cancel their, or move them to, which grants the target and takes the trigger back.

Now or later

Immediately, or after a delay of anything up to ten years, which is how a trial ends itself a week after it lapses.

However the member got there

Your checkout, a marketplace, the API, a registration form, or you clicking a button. One rule covers all of them.

Delayed actions check again

Somebody who refunded in the meantime is skipped rather than punished, and the check happens at the moment it runs.

No stacking, no loops

One pending job per member per rule, a rule cannot target its own trigger, and a chain that circles back is cut where it starts.

Never during an import

Imported members already hold everything the rules would give them, so the fan out does not run twice.

Pause instead of delete

And deleting a rule never takes a level off anybody who already received it through that rule.

Your existing rules come across

Imported with your levels. Forty two of them in one click on the site this plugin was built for.

Every firing is written down

In the member's own timeline, in the same plain English the rule is written in.

The AI Helper

A bubble on every screen that knows your site, answers from your real numbers, and builds things inside your admin. Nothing runs until you click the button.

Claude, OpenAI or Gemini

Your own key, with a primary and a fallback and a model choice for each. You pay them directly for what you use, and nothing extra to us.

Or no key at all

If ResultsAiX Mailer or the ResultsAiX Membership already holds one on this site, the helper borrows it and there is nothing to set up.

It tells you where to get one

A step by step panel with a direct link beside each field, what the key looks like, and the note that the account needs a little credit before it answers.

It knows your levels

All of them, with member counts, expiry and price, so you can ask which one is growing and get a real answer.

It knows your numbers

Joined this week, lost this month, expiring in seven days, revenue net of refunds, your top levels, your recent marketplace notifications.

It knows any member by email

Their levels, orders, timeline, last login and reading history, all from one question with an address in it.

It knows the plugin

The training guides are parsed and the relevant ones handed to it, so how do I connect JVZoo gets the actual clicks rather than a guess.

It builds a level

Named, described, with an expiry and a redirect, and hands you the link to edit it.

It builds a bundle rule

Resolving level names to your real levels and refusing anything that would loop.

It builds a product mapping

For any of the four marketplaces, and drops you on the mapping table to check it.

It protects pages

Merging your level into whatever is already on the page rather than clobbering the levels that were there.

It builds a whole course

The level, up to sixty protected lesson pages dripped however you like, and an index page listing every one with when it opens.

Then it writes every lesson

One request at a time so nothing times out, with a live progress bar, real structure, an action step at the end, and a retry for any single lesson that stumbles.

It builds a members area in one answer

The level, a written welcome page, your download button, their account panel, a join page, and both redirects pointed at it.

Conversations are kept

Up to thirty per admin, renameable and deletable, and reloading one brings its action buttons back with it.

Your data stays put

Nothing leaves the site until you ask a question, and then only the part needed to answer it goes to the company whose key you chose.

The setup wizard

It opens itself the first time you activate the plugin, asks which kind of person you are, and never shows you the other one's instructions.

Two doors

Starting from scratch, or moving a live business across. One question, and the rest of the wizard is different.

It looks before it asks

If another membership plugin's data is on the site, that card already says how many levels, memberships and protection rules it found there.

It creates your membership

From a name, a line of description, how long it lasts, and whether people can sign themselves up.

It builds the four pages

Where members land, how they log in, how they join and where they see what they hold. Untick anything you already built.

It wires them together

Setting the level's redirects, your login page, and where people without access are sent.

It locks what you tick

From a filtered list of your newest pages, with an optional drip delay applied as it goes.

It hands you the join link

At the end, with six tiles for what most people do next: charge for it, protect downloads, make a bundle, turn on the AI.

Safe to run again

It never creates a page or a level it already made, and you can skip it at any point without leaving a mess behind.

The dashboard

Ten numbers, five charts and two lists, all reading from your real records rather than from the day the plugin was installed.

Ten headline numbers

Active members, levels, protected pages, protected files and folders, new this month, lost this month, active this week, expiring in seven days, reading this week and page views this week.

New memberships

Charted from your real membership records, so a site that imported years of history sees that history instead of a flat line.

Member sign-ins

Worked out from your reading history: where everything is protected, opening a page means somebody was signed in. Your members home page is excluded, and you can exclude more.

Active members by level

Top ten as a horizontal bar chart that stays readable even when your level names are long.

Pages read, and revenue

Reading over the last fortnight, and revenue net of refunds in live mode only, which appears only when there is some.

Three chart styles

Area, line and bar, remembered in your browser, with a hide switch for when you want the numbers and nothing else.

Every chart says what it counts

And what period it covers, so a number is never read as something it is not.

A live activity feed

Joins, cancellations, purchases and refunds as they happen, topped up from your real records on a site whose history predates the plugin.

Latest memberships started

One card per person, saying which level they were given and when, and how long they have been with you.

What members are reading

This week and all time, linked through to the live pages, so you can see what your members actually value.

Your mailing list, your syncs, your other sites

No connectors to configure and nothing extra to pay for. If one of these is on the site, the membership plugin finds it.

A list per level

And a different list per marketplace product, so Warrior Plus buyers and your own checkout buyers need not land in the same sequence.

Tagged, and retagged

By level with your own prefix, plus any extra tags you name, plus a bought-from tag on a marketplace sale. Cancelling swaps the tag rather than burning the address.

Never a permanent suppression

Because people come back, and a member who returns is simply re-added with their level tag restored.

Send everyone you already have

One button, in batches, silently, with no welcome emails fired at people who joined two years ago.

A source in the bridge builder

With an endpoint for new members, cancellations, returns, rebills and refunds, for any level or one level.

Refunds only go where asked

Cancellations and refunds reach only the syncs that name them, so a plain new members bridge never receives a refunder.

Your other sites, read only

Connect the mailer and the tracker on your main domain and every member's panel shows what that site knows about the same person.

Spend, opens, clicks, scores

Net spend, purchases, engagement, RFM and churn, VIP status, country, first purchase and what they bought there, cached for ten minutes.

Test with your own email

One button that checks every source and reports each one in plain words, including exactly why one failed.

Reading activity, in three places

The member panel, the Members list, and the member's own page, with locked pages never appearing in a member's lists.

A failure never breaks a membership

Every call to another plugin is wrapped, and a refusal is written to the log rather than thrown at your member.

Moving in from another plugin

Three buttons, in order, reading the other plugin's tables directly and never writing a single byte back to them.

Levels keep their numbers

Every level comes across with the id it already had, so your checkout, your licence server and your sync tools need no changes at all.

Expiry rules converted properly

Including the unit, so a three month level stays a three month level rather than becoming a three day one.

Redirects, but only real ones

Per level redirects are carried across only where that level genuinely overrode the global setting, so nothing invented arrives with them.

Free registration switched off

On every imported level, so signup links created years ago cannot quietly let people back in.

Protection rules rebuilt exactly

With the old plugin's own meaning, including inherited rules resolved one level up and category rules turned into category protection.

Only what was really protected

A page that had levels but was never switched on stays public, exactly as it was. No surprises the morning after.

Folders matched to disk

By reversing the checksum the old plugin stored, with the guards written for you and anything unmatched listed for your eyes.

Members in batches

With a progress bar, keeping their original join dates, transaction references and cancelled or pending flags.

Your autoresponder stays silent

Throughout the whole import, so nobody receives a welcome email because you changed plugins.

A verification screen

Old counts beside new counts, level by level, before you switch anything off. Read only on both sides.

Every step re-runnable

Run it twice and you get no duplicates, and each pass reports what it created, matched, skipped and could not place.

Old tables renamed, never dropped

When you retire them, with one click to put them back if you ever want to look.

The number that matters. 138 levels, 39,853 memberships and 42 automation rules came across in one afternoon on the members area this plugin was built for, and the old plugin was switched off the same day.

Switching without touching a page

This is the part every other plugin gets wrong. Your pages are full of blocks written for the old plugin's shortcode names, and your tools call its functions by name.

Eighteen legacy shortcodes answered

Including the ones the popular add on introduced, so not one page in your site needs editing.

Level names matched forgivingly

A stray space, a different capital letter or an HTML entity never hides your content by accident, which is what makes this survivable at scale.

Unknown names are logged, not guessed

A name that matches no level is written down for you instead of silently showing or hiding something to everybody.

The old PHP functions

More than thirty of them, with the same names, the same arguments and the same return shapes your other tools already parse.

The old action hooks

Fired from your own member events, so autoresponder bridges keep receiving exactly what they always received.

The same API address

Same credentials, same format, same error codes. Your licence server and your portal never learn that anything changed.

It waits its turn

While the old plugin is still active this one stands aside completely, and steps aside on its own if you ever switch the old one back on.

Every API change is logged

In plain English, which is where you confirm that a purchase really did enrol the buyer.

Shortcodes

Eight of its own, all plain WordPress shortcodes that work in any editor and any page builder that runs them.

ShortcodeWhat it puts on the page
[raxm_protect]A members only block inside any page. Levels by slug, id or name, with an optional drip delay and your own locked message.
[raxm_no_access]The inverse. Shown only to people without access, which is where the join pitch goes.
[raxm_login]A login form with remember me and a forgotten password link, which respects your per level redirects.
[raxm_register]A registration form with a spam trap and automatic login, or a one click join button for a visitor who is already signed in.
[raxm_account]Their memberships, join dates, expiry and a log out link.
[raxm_profile]The full member page: recent reading, everything unlocked, what is ending, what they hold and your offers.
[raxm_file]A protected download button for any file in your library.
[raxm_member_name]Their display name, for a personal line anywhere on the page.

Hooks for your own code

Everything the plugin does fires an event, so your checkout, your licence server or your own plugin can listen without a fork.

HookFires when
raxm_member_addedSomebody gains a level, whatever route they came in by, and tells you whether it was new or a return.
raxm_member_removedA level is taken away.
raxm_member_reactivatedA cancelled or expired membership comes back, with what it was before.
raxm_member_expiredA membership lapses on its own.
raxm_member_registeredSomebody signs themselves up through your form.
raxm_has_accessEvery access decision, filterable, with the post and the user.
raxm_timelineYour own plugin writes a line into any member's history.
raxm_gateway_saleA marketplace sale lands. Rebill, refund and cancel each have their own.
raix_payment_recordedMoney moves, in the shape the rest of the family reads. Test mode never fires it.

The craft in the admin

Small things, but they are the difference between a plugin you tolerate and one you enjoy using at scale.

Every level picker searches

With All and None links that act only on what you have filtered to, a live count, and two columns. A site with 138 levels must never be a wall of checkboxes.

No browser popups anywhere

Every confirmation is a proper dialog in your language, with a warning line, a red button when it deserves one, and Escape to back out.

Dangerous things are properly gated

The wipe needs a tick, the word DELETE typed in capitals, and a dialog, and the typed word is checked again on the server so the form cannot be replayed.

Secrets behave consistently

Masked by default, Show and Copy beside them, an empty field means keep what is stored, and an explicit box to forget one.

Keys we issue are hashed

Shown once, labelled, listed with when they were last used, and revocable.

Bulk everything

Protect a post type, save a whole category matrix, paste a list of product mappings, send every member to your list, import a CSV, run the whole migration.

Progress bars that resume

Close the tab halfway through an import and the button tells you how far it got and picks up from there without duplicating anything.

Nine colour schemes

Shared with the rest of the family, with live preview before you save, and Follow the Hub as the default so everything matches.

Tabs that appear when earned

The Payments tab arrives the moment Stripe is connected, and not one screen before it would do anything.

A view that fails shows an error box

Not a white screen, and the reason lands in your log with the page and the user attached.

Diagnostics and logs

When something is wrong you want the truth quickly, including when the something is not this plugin.

It catches white screens from any plugin

The error log is listening before WordPress has finished loading, so a fatal from anything on your site lands in it.

With the context that solves it

The page, the method, the user, and the list of plugins active at that exact moment, which is usually the whole answer.

Secrets scrubbed

Keys, tokens and passwords are stripped out of every entry before it is stored, so a log is always safe to share.

A separate activity log

So routine traffic never pushes an error out of view. One line per membership change made through the API, a marketplace or a rule.

One button report for support

Copied to your clipboard, covering versions, server, tables, folders, cron and the recent log, with no keys or passwords in it.

Honest answers about your server

Is the uploads folder sealed, is every folder guard really on disk, is this Apache, is the daily job actually scheduled.

A live self test

Of compatibility mode, showing how many legacy shortcodes are registered in this very request and which plugin is serving them.

Every table with its row count

Or the word missing, which tells you in one glance whether an install went wrong.

Licence, updates and safety

A membership site must never fail open, and a checkout must never hit a dead endpoint. Both of those shaped what the licence can and cannot touch.

Protection never depends on your licence

The engine, the file streaming, the shortcodes, the level actions, the marketplace endpoints and the Stripe webhook all load for everyone, always.

Only the admin screens are gated

So a lapsed key can never open a door, and it can never take money and grant nothing either.

Three of your own sites

On one key, managed from a panel that shows which sites are using it and lets you free one remotely without touching that site.

Switching the plugin off costs nothing

Deactivating stops the scheduled jobs and leaves your licence exactly where it was.

A lost key repairs itself

From the signed token already held on the site, on the next admin page load, with a line in the log saying it happened.

Updating needs no deactivation

And an update is never mistaken for tampering, because the plugin checks itself against the server the moment a new version lands.

An outage never punishes you

If the licence server cannot be reached, nothing changes and nobody is locked out of anything.

Every route is guarded

Capability and nonce on every form and every background call, and stray output cleared so another plugin's notice cannot look like a dead button.

Uninstall keeps everything

Unless you tick the box yourself, and it never deletes a WordPress user either way.

Training and support

Everything written down inside the plugin, where you need it, rather than on a site you have to go and find.

Twenty two guides built in

Covering every screen, every setting and every shortcode, in the same plain English as the rest of the plugin.

A search box across all of them

Type a word and it filters the guides, opens the ones that match and highlights the words in place.

Troubleshooting by symptom

Eleven specific things that look wrong, and exactly what to do about each one.

A full shortcode reference

With every attribute and what it defaults to, so you never have to guess at an option.

A developer section

The hooks, the payload shapes and working examples for wiring your own checkout or licence server in.

A Resources tab

That knows which of your other tools are already on this site and marks them as installed.

And the AI Helper has read it all

So you can simply ask, on whatever screen you are already looking at.

Your Investment

One Plugin. One Price. Three Sites.

$47 a year covers every single thing on this page, on up to 3 of your sites. No pro edition, no add-ons, no per member fees, and no cut of anything you sell. Your own Stripe account pays you directly and the marketplaces pay you the way they always have. Updates and support for as long as your licence is active.

Everything on this page, in one licence
  • Pages, posts, custom types, categories, tags, feeds, comments and the REST API
  • Sealed file downloads and whole folder guards
  • Unlimited levels, drip by join date, expiry and level actions
  • Your own Stripe plus JVZoo, Warrior Plus, ClickBank and PayPal
  • The AI Helper, including the course builder, with your own key
  • The member side panel, the member profile page, the dashboard and charts
  • The setup wizard, the three click importer and compatibility mode
  • AI Mailer, WP Sync, reading activity and your other sites
  • Your members are never deleted by an uninstall
GET RESULTSAIX MEMBERSHIP FOR $47 A YEAR →

30-day money-back guarantee. Install it, import your site, run it beside your current plugin. If it is not right for you, one email gets your money back.

The other way to get it

Every feature on this page is also in the ResultsAiX Bundle

If Membership is the only thing you need, the licence above is the right buy and this page is honestly the better deal. If you are already running more than a couple of our plugins, the arithmetic changes: the bundle is 26 plugins and the ResultsAiX Theme, Membership included, on one licence and one renewal.

  • Membership, exactly as described on this page, nothing held back
  • AI Mailer, WP Conversion Tracker and Audience Vault, the tools this plugin already talks to
  • Everything we ship next, at no extra cost, for as long as your licence is active
  • One renewal date instead of a calendar full of them
See What Is In The Bundle → $347 for your first year, then $147 a year, locked in.

ResultsAiX Membership · $47 a year · 3 sites · protect it, sell it, automate it

Get It For $47 LicencesOr Get All 26 Plugins →