WordPress & WooCommerce

The WordPress age verification plugin for real age & ID checks

Most WordPress age gates are a checkbox and a cookie. AgeWallet runs real age verification – AI age estimation or government ID – through your site, gates the content you choose, and keeps working behind Cloudflare, WP Rocket, Varnish and LiteSpeed.

Wordpress Age Verification Preview

6.0+

Minimum WordPress version

GPL v2

Open source license

HPOS

WooCommerce-compatible

The Problem with Age Gates

A date-of-birth box is not age verification

Regulators in the UK, EU, and a growing list of US states now expect a real check, not a self-declared birthday any twelve-year-old can click past. The gap between “we have an age gate” and “we can prove we verified” is where the fines live.

Self-declaration fails

A dropdown that asks a visitor to confirm they're 18 provides no evidence and no defence. It stops nobody who doesn't want to be stopped.

Caching breaks most plugins

Age gates that rely on PHP session checks get cached and served to everyone, or bypassed entirely. Anyone running a CDN has probably shipped a broken gate without knowing.

Holding IDs is a liability

Collecting driver's licenses on your own server turns a compliance task into a breach risk. The safest ID data is the kind you never touch.

Two protection modes

Pick the mode that matches your risk

Some sites need content indexed and lightly gated. Others can’t let a single byte of protected content reach an unverified browser. AgeWallet ships both, and you switch between them from a dropdown.

Standard

Overlay

Gated content is hidden by a client-side overlay. Page HTML stays identical for every visitor, so it’s fully cache-compatible and search engines still see the page.

High Security

Strict

The page short-circuits entirely. Unverified visitors get a cookieless “skeleton” template from cache; the real content is fetched over an authenticated call only after verification passes.

WooCommerce

Gate only what you need, not the whole store

If you sell vape, alcohol, cannabis, knives, or adult products alongside everything else, gating your entire catalogue costs you conversions on the items that never needed a check. AgeWallet flags what’s regulated and gates only those carts.

Regulated status can be set per product, per category, or per tag — products inherit from any category or tag they belong to, so you can flag a whole product category once and be done.

Three checkout modes

In Conditional mode, a cart_triggers audit trail records exactly which products, categories, or tags fired the gate — useful when someone asks you to prove the rule worked.

Content guarding

Gate exactly what needs gating

Whole site

Protect everything, with an option to leave the homepage open so visitors and crawlers can still find you.

Paths

Gate specific URL paths like /shop/ or /videos/premium/ and leave the rest of the site open.

Taxonomies

Categories, tags, and custom taxonomies — including WooCommerce product categories.

Single posts

Override the rules on any individual post or page from the editor sidebar.

Inline blocks

Wrap part of a page in the [agewallet_protected] shortcode to gate one section while the rest stays visible.

Your own logic

Filters and action hooks let developers extend cookie handling, caching, taxonomy rules, and metadata.

Appearance

It should look like your site, not ours

The gate is the first thing a visitor sees, so it gets your logo and your words. Set the headline and body copy in a WYSIWYG editor, pick colors for the backdrop, card, text, and both buttons, and set the card and button border radius. Anything else goes in Appearance → Customize → Additional CSS, which AgeWallet renders into strict mode too.

What you can change

Setup

Live in about ten minutes

01

Install & Activate

Search for AgeWallet in Plugins → Add New, or upload the ZIP. Activate it from the Plugins screen.

02

Re-save your permalinks

Go to Settings → Permalinks and click Save Changes. This registers the /agewallet/callback/ verification route. Skip it and the return trip from verification will 404.

03

Run the setup wizard

Open AgeWallet in your admin menu and paste in the Client ID and Client Secret from your account. New accounts get $5 of verification credit.

04

Choose what to gate, then purge

Set your protection mode and rules on the Content Guarding screen, then clear your server, plugin, and Cloudflare caches so the new gate is the version visitors get.

Data handling

Your site never sees an ID

Verification runs against the AgeWallet service over OpenID Connect using the Authorization Code flow with PKCE. Your WordPress install sends a client ID, a one-time authorization code, and standard PKCE, state, and nonce values. What comes back is a pass or fail.

The only thing stored on the visitor’s browser is an HMAC-signed cookie confirming they passed — verified server-side on every request, so it can’t be forged.

Delete the plugin and uninstall.php clears every option, transient, cron event, and cached file it created.

Optional metadata pass-through

Attach an opaque string of up to 4 KB to any verification — static text, or JSON composed automatically from post, user, request, and cart context. It round-trips through the OIDC flow and comes back on /userinfo, so you can tie a verification to your own records without sending AgeWallet anything you don’t choose to.

Questions

WordPress age verification, answered

Is the AgeWallet WordPress plugin free?

Yes. The plugin is free and open source under GPL v2 or later, and there are no setup or monthly fees. You pay per verification, and new accounts start with $5 of verification credit.

Will it work with Cloudflare, WP Rocket, or my host's cache?

Yes, and this is the part most age gates get wrong. Standard (Overlay) mode serves identical HTML to every visitor and enforces the gate client-side, so caching is a non-issue. High Security (Strict) mode ships a cookieless skeleton page from cache and pulls the real content over an authenticated call after verification, which is compatible with “Cache Everything” rules. Tested against Cloudflare, Varnish, WP Rocket, and LiteSpeed.

Does it work with WooCommerce?

Yes. You can gate every checkout, gate only when the cart contains regulated items, or leave checkout ungated. Regulated status is set per product, per category, or per tag. The plugin declares WooCommerce High-Performance Order Storage compatibility.

Will an age gate hurt my SEO?

In Standard (Overlay) mode, no — the page HTML is unchanged and crawlers index it normally. High Security (Strict) mode deliberately withholds content from anything that hasn’t verified, including crawlers, which is the point of that mode. Use Overlay on pages you want ranking and Strict on pages that legally must not be seen.

Does my WordPress site store visitors' ID documents?

No. Verification happens on the AgeWallet service; your site receives only the pass or fail outcome. No personally identifying information is stored in your WordPress database. The visitor’s browser holds a signed cookie recording that they passed, and nothing else.

What age verification methods does it support?

Multiple age-assurance methods, including AI-assisted age estimation and document-based verification, so you can meet the requirement without collecting identity data yourself. Coverage spans over 220 countries.

Do I need an AgeWallet account?

Yes. The plugin is a client for the AgeWallet verification service. Register to get a Client ID and Client Secret, then enter them in the plugin’s setup wizard.

Can I gate just one section of a page?
Yes. Wrap the content in the [agewallet_protected] shortcode and it renders an inline placeholder for unverified visitors while the rest of the page stays open.

Add age verification to your WordPress site today

Install the free plugin, or let us walk through your setup and show you what verification will cost at your traffic.

No setup fees • No monthly fees • Enterprise support