Licence and updates:
Your licence key activates this site and unlocks updates through the normal WordPress updates screen. Deactivating on a site you no longer use frees that activation for another one.
A lapsed key never locks your content:
The protection engine, the registration and login forms and the payment endpoints all keep running whatever your licence is doing. Only the admin management screens are gated.
A membership site must never fail open, and a member halfway through a checkout must never hit a dead endpoint because a key expired. That is the reason, and it is worth knowing before you ever need it.
A member says they cannot see content they paid for:
Members tab first. Check they hold the level and the status is active rather than cancelled or expired. Then check the page itself is protected for that level. If the level looks right, open the Payments tab and see whether the order completed.
A protected page is visible to everybody:
You are almost certainly logged in as an administrator. Turn off Administrators Always See Everything in Settings for a moment, or use a private browser window.
Protected content is still readable somewhere:
Check the three extra switches in Settings: the REST API, RSS feeds, and hiding items from archives and search. A caching plugin can also serve a member only page to a stranger, so exclude your protected pages from full page caching.
Folder protection is not working:
Whole folder protection uses an .htaccess file, which nginx ignores. Both the Files tab and Diagnostics warn you when that applies to your server. Use the file library and the raxm_file shortcode instead there.
There is no Payments tab:
It only appears once Stripe is connected. Until then the connect card is on the Integrations tab, next to the marketplaces, so there is always a way in.
There is no price field on my level:
Same reason. Connect Stripe first and the price block appears on every level.
Orders start and never finish:
The webhook. Check the endpoint in Stripe matches the address on your Payments tab exactly, that it sends the five events listed there, and that the signing secret you pasted back belongs to that same endpoint and the same mode. Test and live each need their own.
A level says Not Synced:
Stripe refused the price. A price under Stripe's minimum, or a currency it does not accept, are the usual two. Fix it and save the level again.
The import found nothing:
The old plugin's tables have to still be in the database. Diagnostics lists every table it can see. If they were retired, restore them from the Settings tab first.
Old shortcodes stopped working after I switched:
Turn on compatibility mode in Settings, and make sure the old plugin is deactivated. It stands by while the other plugin is still active and switches over on the next page load once it is gone.
Somebody was charged but has no access:
Leave it a day. The daily check finds exactly this and grants the level, writing what it did on the Payments tab. If you do not want to wait, add the level by hand on the Members tab.
Then fix the webhook, because the webhook is what let it happen.