Description
Webkoding AgeWall adds real, server-side age verification to WordPress. Unlike simple “click to confirm” overlays that only hide content with CSS or JavaScript, AgeWall withholds protected content on the server: an unverified visitor never receives the restricted markup in the HTTP response, so it cannot be revealed by disabling scripts or reading the page source.
Gate your whole site, or just the pages, posts and blocks that need it. Set the minimum age, choose how visitors prove it, and decide what happens when they have not — all from one settings screen.
Key features
- True server-side enforcement. Protected content, shortcodes and blocks are withheld before the response is sent. The gate requirement (minimum age and method) is signed and re-derived on the server, so it cannot be weakened by tampering with the request.
- Whole-site gate or per-content gates. Gate the entire site with an overlay or a dedicated page, or gate individual pieces of content with the
[agewall]shortcode and the AgeWall block. - Per-post and per-category restrictions. Mark any post, page, custom post type or term as age-restricted, with its own minimum age and method.
- Two verification methods.
- Confirmation (“I am over N”) — a lightweight self-declared check.
- Date of birth (DOB) — a self-declared date, validated on the server.
- Choose your enforcement. Withhold the content entirely (the default and the strictest), redirect to a gate page, or cover the page with an overlay when you need search engines to keep seeing it.
- Search-engine friendly. Optionally allow known search-engine bots to bypass the gate for SEO.
- Customizable gate appearance. Set the gate title, message and logo, and choose an overlay, modal or inline template.
- No accounts, no tracking, no third-party calls. AgeWall stores no personal data and contacts no external service.
- Translation ready. All strings use the
webkoding-agewalltext domain and alanguages/webkoding-agewall.pottemplate is included.
Developers
AgeWall is built to be extended. Documented hooks let you add your own verification provider (agewall/register_providers), supply your own rule set (agewall/rules), resolve the visitor’s country (agewall/visitor_country), observe every verification attempt (agewall/verification_attempt), and add your own settings tabs and admin screens (agewall/settings_tabs, agewall/admin_menu).
Screenshots


![A public article with one age-restricted section locked by the [agewall] shortcode. The surrounding paragraphs stay public.](https://ps.w.org/webkoding-agewall/assets/screenshot-3.png?rev=3667441)
[agewall] shortcode. The surrounding paragraphs stay public.


Blocks
This plugin provides 1 block.
- AgeWall Gate Withhold the inner content until the visitor verifies their age (server-side).
Installation
- Upload the
webkoding-agewallfolder to the/wp-content/plugins/directory, or install the plugin through the WordPress Plugins screen. - Activate the plugin through the “Plugins” screen in WordPress.
- Go to AgeWall in the admin menu, set your minimum age, verification method and appearance.
- (Optional) Mark individual posts, pages or terms as age-restricted from the AgeWall box on their edit screen.
FAQ
-
Does AgeWall really hide content from unverified visitors, or is it just a visual overlay?
-
It genuinely withholds the content on the server. Restricted content is never placed in the HTTP response for an unverified visitor, so it cannot be exposed by disabling JavaScript, editing CSS, or viewing the page source.
This depends on the rule’s action, and the difference is important: withhold and redirect are content-withholding — the protected page is never rendered or sent to an unverified visitor — and withhold is the default. Overlay is a soft/SEO mode: the page still renders and is sent in the response with the gate painted over it, so use it only when you want search engines and existing rankings to keep seeing the page, not when the content must actually be withheld.
-
Which verification methods are included?
-
Confirmation (“I am over N”) and self-declared date of birth. Both are checked on the server, and a visitor verified by the stronger method also satisfies the weaker one.
-
What personal data does AgeWall store?
-
None. AgeWall stores no personal data about your visitors, creates no database tables, and makes no third-party requests. A visitor’s proof of age is held in a signed cookie that records only the scope, the minimum age and the method it was granted for — never a date of birth.
-
Can I enforce a different age for different countries?
-
No. Every visitor is held to the same rule, which you set once in Settings. The plugin does not geolocate visitors and does not vary the minimum age by country. Developers can hook
agewall/rulesandagewall/visitor_countryto match on their own criteria. -
Can I add my own verification method?
-
Yes. Implement
Agewall\Providers\ProviderInterfaceand register it on theagewall/register_providersaction. It will appear automatically everywhere a method can be chosen. -
Is AgeWall translation ready?
-
Yes. Every user-facing string uses the
webkoding-agewalltext domain, and alanguages/webkoding-agewall.pottemplate is bundled for translators.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Webkoding AgeWall – Age Verification and Age Gate” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Webkoding AgeWall – Age Verification and Age Gate” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.1
- Renamed: the listing now says what the plugin does, not only what it is called. No functional change.
1.0.0
- Initial release.
