How to restrict content based on points and achievements
WordPress does not natively track points or achievements, so it cannot gate content by them on its own. A custom plugin can store progress and conditionally render content, but most membership and LMS sites should use a gamification plugin with restriction rules. Set the rule, protect the content, then test as a member.
- 01Define the access rule
- 02Build the manual route
- 03Create the points and achievements
- 04Attach the restriction to content
- 05Choose the blocked response
- 06Use GamiPress for the fast way
What you need
- A WordPress site with user registration enabled
- Administrator access
- A defined points or achievement system
- A staging site or test member account
Define the access rule
Write the rule in plain language before configuring anything. For example: a member needs 500 course points, the Module 1 complete achievement, or both. Decide whether requirements are cumulative, whether guests should see a login message, and whether members can pay or spend points to bypass the rule.
Keep each rule easy to explain. Combining several achievements and point thresholds can make support requests difficult when a member believes they have qualified.
Build the manual route
WordPress alone does not provide a points ledger, achievement engine or achievement-based content gate. A genuine manual implementation therefore means building a small plugin that records each user’s points and achievements, checks the current logged-in user, and replaces or withholds protected content when the rule is not met. WordPress recommends keeping site functionality in a plugin rather than relying on a theme.
You would normally expose the check through a custom enclosing shortcode or a block, then place the protected material inside it. WordPress shortcodes are designed for dynamic content and must return their output rather than print it.
This route is fine for a bespoke site with one or two simple rules, but you must also build point-awarding events, achievement administration, audit history, reset rules, access messages and security checks. Do not put the whole system in a theme’s functions.php; changing themes can remove the functionality.
Create the points and achievements
With a gamification plugin, create the points type and decide how members earn it, then create the achievement types and the individual achievements that qualify users for access. Use names members will understand, such as Completed quiz 1 rather than an internal identifier.
Check the award rules carefully. Duplicate triggers, imported orders or repeated lesson views can award points more than once, which may give access earlier than intended. Keep an activity or earnings log so you can investigate disputed access.
Attach the restriction to content
Open the post, page, lesson or other public post type you want to protect and enable its content restriction settings. Add requirements for points earned, a particular achievement, an achievement type, or all achievements in a type. The Restrict Content documentation describes these requirement choices and notes that users must meet all configured requirements.
For an entire lesson, choose access restriction or replace the full content. For a teaser, explanation or bonus section, use an inline restriction instead. Whole-post access and partial-content restriction are different jobs, so do not use a section shortcode when the lesson URL itself must be protected.
Choose the blocked response
Decide what an unqualified visitor sees: a login prompt, an excerpt, a trimmed preview, a custom message or a redirect to a course-prerequisite page. Restriction tools commonly separate access, content, links and images; access restriction is the strongest option because it prevents direct viewing of the post.
Test four cases before publishing: a logged-out visitor, a logged-in member below the threshold, a member who has just qualified, and an administrator. If the result is wrong after an award, clear the site and browser cache and check that your page cache is not serving an anonymous copy to a logged-in user. Cached membership pages are a recurring source of stale restriction messages.
Use GamiPress for the fast way
For the quickest no-code setup, use GamiPress with its Restrict Content add-on. Create the points and achievement rules, edit the target post, enable the GamiPress – Restrict Content box, add the requirements, and choose the replacement or redirect shown to users who do not qualify. It supports whole posts and pages as well as inline content restrictions.
If you want optional pay-to-unlock access, configure the restriction to allow access by expending points, or use points as the only unlock condition. For inline content, use the documented restriction shortcode and close it properly; an unclosed enclosing shortcode can make the rest of the page behave unexpectedly.
GamiPress is a sensible recommendation when you need achievement- and points-based gates across membership pages, lessons or custom post types without maintaining the tracking and access logic yourself.
Let GamiPress do it
Achievement- and points-based content gating with optional pay-to-unlock access, suited to gamified memberships and courses.
Sources
- developer.wordpress.org /plugins/intro/?utm_source=openai
- developer.wordpress.org /apis/shortcode/?utm_source=openai
- developer.wordpress.org /themes/core-concepts/custom-functionality/?utm_source=opena…
- gamipress.com /docs/gamipress-restrict-content/configuring-the-requirement…
- gamipress.com /docs/gamipress-restrict-content/configuring-the-restriction…
- wordpress.org /support/topic/how-to-enable-cache-for-logged-in-customers/?…
Questions
- Can WordPress restrict content by points without a plugin?
- No, WordPress core does not include a points ledger or achievement system. You can build one in a custom plugin that records user progress and checks it before returning content, but that also means maintaining award rules, achievement records, administration and security. For a small bespoke project it may be reasonable; for a membership or LMS site, a dedicated gamification and restriction system is usually safer to maintain.
- Should I restrict the whole lesson or only part of it?
- Restrict the whole lesson when users must not access its URL until they qualify. Restrict only part of the content when you want to show a preview, introduction or call to action first. GamiPress documents separate controls for restricting access to a post and restricting a portion of content with a shortcode, so choose the method that matches the access requirement.
- Why can a qualified member still see the locked message?
- The usual causes are stale page or browser cache, an award that has not been recorded, a points type mismatch, or an achievement requirement that is not actually complete. Test in a separate member account, inspect the user’s points and achievement record, then purge relevant caches. Logged-in and logged-out versions must not be mixed by a page cache, or the wrong restriction state may be displayed.
- Can members spend points to unlock restricted content?
- Yes, a points-based restriction can be configured so users either complete the requirements or spend a specified amount of points, or so spending points is the only unlock method. Decide whether the unlock is permanent and explain the cost before the member confirms it. The documented setup provides an automatic get-access button for these configurations.