Skip to main content
The ProofAge Age Verification plugin puts the hosted verification in front of your content or your checkout, without code. It requires WordPress 6.4+ and PHP 8.1+; WooCommerce is optional.

What it protects

  • The whole site, or selected pages and post categories.
  • WooCommerce products and product categories, with exclusions.
  • Add-to-cart, the cart, checkout, and the Store API used by block-based checkouts: a shopper who is not verified cannot buy protected products.
A protected page shows a full-page gate or a blocking overlay. The verification opens in a modal on the page, in the same window, or in a new tab, as you choose.

Install

  1. Create a workspace in the ProofAge console, usually Facial age estimation or age verification by ID document, and copy its public and secret keys.
  2. Download the plugin from GitHub and upload it under Plugins → Add New → Upload Plugin, then activate it.
  3. Open Settings → ProofAge Verification and enter the two keys.
  4. Choose the launch mode, the gate texts, how long a verification stays valid, and what to protect.
  5. In the ProofAge console, set the workspace’s webhook URL to https://your-store.example/wp-json/proofage/v1/webhook.
The plugin returns shoppers to https://your-store.example/?proofage-return=1 and from there to the page they started on.

What the shopper sees

A gate explaining that the content is age-restricted, with a button that opens the ProofAge verification. When the verification is approved, the gate lifts and the shopper continues where they were. The plugin learns the outcome from the webhook, and also checks the status when the shopper returns, so a delayed webhook does not block them.

Orders

For WooCommerce orders the plugin stores a snapshot of the verification on the order and shows it in the order’s admin view, so you can see which verification allowed each sale.

Languages

The gate texts can be translated with Polylang or WPML String Translation. The plugin passes the storefront’s language to ProofAge when the widget supports it.

What it does not do

  • Capture inside your own UI: it always uses the hosted verification.
  • Integrate with theme-specific quick-view pop-ups beyond the standard add-to-cart hooks.