Works with
RedeemID decides access on the server and leaves the rest of the site alone, so most publishing tools keep working. This page lists what we’ve checked and what to watch for. Unless a plugin is named as checked, we haven’t tested it. Try it on a staging copy first.
Page caches
Needs a setting. Pages that show members-only content send DONOTCACHEPAGE. Granted, preview and editor views of posts locked by a rule also send Cache-Control: private. Caches that honour either one never store a member’s page, and guests get the cached locked view.
Set your cache to bypass, or vary on, these cookies:
wordpress_logged_in_*redeemid_oauth_stateredeemid_fset, only if a feature uses thevarycaching option
The sign-in control and other personal pieces load after the page, so a cached page still works for a signed-in reader. When a rule changes, the redeemid_access_changed action passes the IDs of the posts affected, so you can purge them (Hooks has an example).
Avoid: a cache or CDN that ignores both DONOTCACHEPAGE and Cache-Control: private and serves pages to signed-in readers. It can show one reader’s page to another.
SEO plugins
Works as is with Yoast SEO and Rank Math (checked). Their descriptions, Open Graph and schema use the teaser, never the locked text, and locked posts carry isAccessibleForFree: false. Search engines see what a locked reader sees. To keep locked posts out of search, tick Keep locked items out for the post type on Access → Content rules.
Other SEO plugins that build descriptions from the raw post may quote locked text. Write an excerpt by hand for locked posts, or check their output on one.
Shopify’s WordPress plugin
Works as is. It runs the catalog and cart, and RedeemID runs sign-in and access. See Working with Shopify’s WordPress plugin.
Ads
Works as is, with a little wiring for ad-free. RedeemID doesn’t touch ads. To turn them off for members, register an ad-free feature, then hide ad slots with the feature check:
- ad blocks: the block’s Access → Feature setting, set to “does not hold it”
- ads placed in PHP or by an ad plugin’s hook:
redeemid_has_feature( 'ad-free' )
Don’t hide ads with CSS alone (the redeemid-feature-ad-free body class). The ad still loads and still counts as an impression.
Newsletters
Needs care. A newsletter tool that builds emails from the raw post content skips WordPress’s filters, so it can send a locked post in full. Use the tool’s excerpt or “read more” layout for locked posts, and send yourself a test first. Tools that use the post’s RSS feed get the teaser, because feeds show what a locked reader sees.
Analytics
Works as is. Page views are counted as usual. Locked and unlocked views are on the same URL; to tell them apart, read the post’s is-locked or is-unlocked class in your analytics tag. For membership events, the redeemid_levels_changed action fires when a member joins or leaves a level, which you can forward to your analytics or CRM (Hooks). RedeemID has no analytics of its own and sends no tracking data.
Other membership and paywall plugins
Avoid running two. Another plugin that also locks content will make its own decisions, and the two can disagree. Pick one to decide access. RedeemID can run beside a plugin that only does something else, such as forums or courses, if that plugin doesn’t restrict the same posts. Such a plugin can ask RedeemID instead of keeping its own members: redeemid_can_read() and redeemid_user_levels() answer from the synced account (Hooks).
Feeds, the REST API and WPGraphQL
Works as is. Each answers for the visitor making the request. Anonymous requests, such as feed readers and most headless front ends, get what a locked reader sees: the teaser and the wall.