Title: Webkoding AgeWall – Age Verification and Age Gate
Author: WebKoding
Published: <strong>avuvɔsun 26, 2026</strong>
Last modified: zosun 4, 2026

---

Search plugins

![](https://ps.w.org/webkoding-agewall/assets/banner-772x250.png?rev=3667441)

![](https://ps.w.org/webkoding-agewall/assets/icon-256x256.png?rev=3667441)

# Webkoding AgeWall – Age Verification and Age Gate

 By [WebKoding](https://profiles.wordpress.org/webkoding/)

[Download](https://downloads.wordpress.org/plugin/webkoding-agewall.1.0.3.zip)

 * [Details](https://fon.wordpress.org/plugins/webkoding-agewall/#description)
 * [Reviews](https://fon.wordpress.org/plugins/webkoding-agewall/#reviews)
 *  [Installation](https://fon.wordpress.org/plugins/webkoding-agewall/#installation)
 * [Development](https://fon.wordpress.org/plugins/webkoding-agewall/#developers)

 [Support](https://wordpress.org/support/plugin/webkoding-agewall/)

## 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-agewall` text domain and
   a `languages/webkoding-agewall.pot` template is included.

#### What the paid add-on adds

Everything above is the free plugin and none of it is stubbed, time-limited or waiting
for
 a key. If you need more than a self-declared age, there is a separate paid 
add-on, AgeWall Pro, that installs beside this plugin through the hooks documented
above:

 * ID document upload with manual review, stored outside the web root
 * Yoti and VerifyMyAge as verification providers
 * Ordered, country-aware rules — a different minimum age per jurisdiction
 * An audit log of every attempt, with a retention policy you set
 * WooCommerce: the cart and the checkout guarded, not only the product page

A self-declared “I am over 18” satisfies nobody who is actually regulated. The free
plugin
 holds the line on the server, which is the hard part; what it cannot do 
is tell you who passed, hold a Frenchman to a different age than an Australian, 
or show a regulator anything. That is what the add-on is for.

Details and price: https://webkodingtheme.com/plugins/agewall-pro

#### 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

[⌊Server-side enforcement: an unverified visitor's page source contains no restricted
markup at all. The protected text is absent from the HTTP response, not hidden with
CSS.⌉⌊Server-side enforcement: an unverified visitor's page source contains no restricted
markup at all. The protected text is absent from the HTTP response, not hidden with
CSS.⌉[

Server-side enforcement: an unverified visitor’s page source contains no restricted
markup at all. The protected text is absent from the HTTP response, not hidden with
CSS.

[⌊A page gated with the whole-page age gate, asking the visitor for a date of birth.⌉⌊
A page gated with the whole-page age gate, asking the visitor for a date of birth
.⌉[

A page gated with the whole-page age gate, asking the visitor for a date of birth.

[⌊A public article with one age-restricted section locked by the [agewall] shortcode.
The surrounding paragraphs stay public.⌉⌊A public article with one age-restricted
section locked by the [agewall] shortcode. The surrounding paragraphs stay public
.⌉[

A public article with one age-restricted section locked by the `[agewall]` shortcode.
The surrounding paragraphs stay public.

[⌊The AgeWall Gate block. The blocks nested inside it are rendered on the server
only after the visitor verifies.⌉⌊The AgeWall Gate block. The blocks nested inside
it are rendered on the server only after the visitor verifies.⌉[

The AgeWall Gate block. The blocks nested inside it are rendered on the server only
after the visitor verifies.

[⌊Settings: minimum age, verification method, and what happens when a visitor is
unverified — withhold, redirect or overlay.⌉⌊Settings: minimum age, verification
method, and what happens when a visitor is unverified — withhold, redirect or overlay
.⌉[

Settings: minimum age, verification method, and what happens when a visitor is unverified—
withhold, redirect or overlay.

[⌊The "Age restriction (AgeWall)" box on the edit screen, setting a minimum age 
and method for a single page.⌉⌊The "Age restriction (AgeWall)" box on the edit screen,
setting a minimum age and method for a single page.⌉[

The “Age restriction (AgeWall)” box on the edit screen, setting a minimum age and
method for a single page.

## Blocks

This plugin provides 1 block.

 *   AgeWall Gate Withhold the inner content until the visitor verifies their age(
   server-side).

## Installation

 1. Upload the `webkoding-agewall` folder to the `/wp-content/plugins/` directory, 
    or install the plugin through the WordPress Plugins screen.
 2. Activate the plugin through the “Plugins” screen in WordPress.
 3. Go to **AgeWall** in the admin menu, set your minimum age, verification method 
    and appearance.
 4. (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/rules` and `agewall/visitor_country` to match on their
own criteria.

### Can I add my own verification method?

Yes. Implement `Agewall\Providers\ProviderInterface` and register it on the `agewall/
register_providers` action. It will appear automatically everywhere a method can
be chosen.

### Is AgeWall translation ready?

Yes. Every user-facing string uses the `webkoding-agewall` text domain, and a `languages/
webkoding-agewall.pot` template 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.

Contributors

 *   [ WebKoding ](https://profiles.wordpress.org/webkoding/)

[Translate “Webkoding AgeWall – Age Verification and Age Gate” into your language.](https://translate.wordpress.org/projects/wp-plugins/webkoding-agewall)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/webkoding-agewall/),
check out the [SVN repository](https://plugins.svn.wordpress.org/webkoding-agewall/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/webkoding-agewall/)
by [RSS](https://plugins.trac.wordpress.org/log/webkoding-agewall/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.3

 * The Methods list now says, at the end of the list, that document and database
   checks are a separate add-on — where an admin choosing verification methods is
   actually standing, rather than only in the card at the foot of the page.
 * The add-on card at the foot of the settings screen no longer appears when the
   add-on is installed.

#### 1.0.2

 * Fixed: a WooCommerce product marked age restricted was still for sale. The gate
   covers
    post content, which on a product page is the description and nothing 
   else, so the price, the quantity field and Add to cart were untouched and the
   order went through without anyone being asked their age. The product is now taken
   out of sale until the visitor verifies, and a request sent straight to the cart
   is refused as well.
 * Fixed: the short description of a restricted product showed the gate’s words 
   with its
    markup stripped, buttons fused into one line. It now shows a sentence.
 * Added: after activation the plugin says what is left to do instead of appearing
   to do
    nothing, and one verification method is switched on so the Methods tab
   is not empty.
 * Added: links to the settings screen and to the paid add-on in the Plugins list.

#### 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.

## Meta

 *  Version **1.0.3**
 *  Last updated **20 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/webkoding-agewall/)
 * Tags
 * [age gate](https://fon.wordpress.org/plugins/tags/age-gate/)[age restriction](https://fon.wordpress.org/plugins/tags/age-restriction/)
   [age verification](https://fon.wordpress.org/plugins/tags/age-verification/)[compliance](https://fon.wordpress.org/plugins/tags/compliance/)
   [restricted content](https://fon.wordpress.org/plugins/tags/restricted-content/)
 *  [Advanced View](https://fon.wordpress.org/plugins/webkoding-agewall/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/webkoding-agewall/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/webkoding-agewall/reviews/)

## Contributors

 *   [ WebKoding ](https://profiles.wordpress.org/webkoding/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/webkoding-agewall/)