Description
AgeOnce helps WooCommerce stores protect age-restricted products and content with a secure age verification flow. Use it for alcohol, tobacco, vaping, cannabis, adult content, supplements, events, memberships, or any other WordPress content that should be shown only after age verification.
Instead of relying on a simple Are you 18?” popup, AgeOnce sends the visitor through a dedicated verification flow and then returns them to your store. The plugin can block WooCommerce checkout until verification is complete, protect selected posts or pages, and record verification details on WooCommerce orders.
You can start with the AgeOnce free plan. No credit card is required for the free tier, so you can install the plugin, connect your site, and test the full WooCommerce or content restriction flow before upgrading.
Why stores use AgeOnce
- Protect checkout for restricted products – Require age verification only when the cart contains products or categories that need it.
- Avoid blanket age gates – Keep normal products and public content open while gating only the items that require verification.
- Support 16+, 18+, and 21+ rules – Configure different minimum ages for different product categories, tags, posts, pages, or custom post types.
- Keep proof on WooCommerce orders – Store the verification status, transaction ID, and timestamp with the order.
- Start free – Use the free AgeOnce plan to test real verification before moving to a paid plan.
- Use one verification flow across your site – The same AgeOnce verification can unlock checkout and protected content.
- Respect privacy – The plugin only contacts AgeOnce when a visitor chooses to verify their age.
Features
- WooCommerce checkout age gate – Disable checkout until the customer completes age verification for restricted cart items.
- Product-level control – Mark individual WooCommerce products as requiring age verification.
- Category and tag rules – Protect products, posts, pages, and custom post types by taxonomy.
- Manual content locking – Add an AgeOnce metabox to lock individual posts or pages regardless of taxonomy.
- Multiple age thresholds – Configure 16+, 18+, and 21+ rules from the same settings screen.
- Order verification metadata – Save verification status, transaction ID, and verification time on WooCommerce orders.
- Secure OAuth flow – Uses state/nonce checks and server-to-server token exchange with AgeOnce.
- Content protection without WooCommerce – Gate posts, pages, and custom post types even if WooCommerce is not active.
Requirements
- WordPress 5.0 or higher
- WooCommerce 5.0 or higher (for checkout protection)
- AgeOnce account with OAuth credentials (Client ID and Client Secret)
Getting Started
- Install and activate the plugin
- Create an account at AgeOnce and start with the free plan or choose a paid plan
- Go to AgeOnce Settings in the admin menu
- Copy the Redirect URL from WordPress into your AgeOnce dashboard
- Enter your Client ID and Client Secret in WordPress
- Click Test connection to confirm the OAuth setup
- Configure rules for WooCommerce products, categories, tags, posts, pages, or custom post types
- Save changes and run one checkout or restricted content test
For the WordPress setup guide, see AgeOnce WordPress documentation. For plans, see AgeOnce pricing.
Privacy
This plugin sends data to the AgeOnce service (app.ageonce.com, api.ageonce.com) only when a user explicitly starts age verification, such as clicking Verify Age” at checkout or on restricted content. No tracking or data collection occurs without that user action.
The plugin does not send WordPress account passwords to AgeOnce. It may store a verification flag in the WooCommerce session or a cookie, and it may store verification metadata on WooCommerce orders. See the AgeOnce service for privacy and terms.
External services
This plugin relies on third-party services operated by AgeOnce (the verification provider). They are required for OAuth login and token exchange so the site can confirm age verification.
-
AgeOnce web app (app.ageonce.com) — Used for the user-facing OAuth authorization screen when someone clicks Verify Age”. The browser is redirected here with your site’s OAuth client ID, redirect URI, a state value, and required minimum age. The user completes verification on AgeOnce; no WordPress account password is sent to AgeOnce.
-
AgeOnce API (api.ageonce.com) — Used when the user returns to your site with an authorization code. The plugin sends a server-to-server request to exchange that code for an access token: it transmits the authorization code, redirect URI, OAuth state, and HTTP Basic authentication using your Client ID and Client Secret (stored in WordPress options). On success, the plugin may store a verification flag in the WooCommerce session or a cookie and optional transaction metadata for orders. This happens only during that callback after the user completes the flow.
-
Terms and privacy (AgeOnce) — Terms of service, Privacy policy.
Screenshots

AgeOnce settings dashboard with setup checklist, OAuth credentials, redirect URL, test connection, and first-run test guidance. 
Content Rules screen for selecting age groups, product categories, tags, and advanced taxonomies that require age verification. 
WooCommerce checkout age gate that blocks restricted carts until the customer completes AgeOnce verification. 
Restricted content gate for posts and pages that require age verification before viewing.
Installation
- Install the plugin from WordPress.org or upload the
age-verification-with-ageoncefolder to/wp-content/plugins/ - Activate the plugin through the Plugins” menu in WordPress
- Go to AgeOnce in the admin menu
- Create or open your AgeOnce account and add the WordPress Redirect URL to your AgeOnce OAuth settings
- Enter your AgeOnce Client ID and Client Secret in WordPress
- Configure content rules for WooCommerce products, categories, tags, posts, pages, or custom post types
- Enable AgeOnce verification and save changes
FAQ
-
Is this just an age popup?
-
No. AgeOnce is designed for stores that need more than a basic self-declaration popup. The plugin starts a secure AgeOnce verification flow, returns the visitor to your site, and can store verification status for checkout and order records.
-
Do I need an AgeOnce account?
-
Yes. You need an AgeOnce account to obtain the Client ID and Client Secret used by the secure verification flow.
-
Can I use AgeOnce for free?
-
Yes. AgeOnce offers a free plan that lets you install the plugin, connect your WooCommerce or WordPress site, and test real age verification before upgrading.
-
Can I protect only selected WooCommerce products?
-
Yes. You can require age verification for individual products, selected product categories, selected product tags, or other configured taxonomy rules.
-
Does AgeOnce block checkout automatically?
-
Yes. If the cart contains a restricted product and the customer is not verified, the plugin shows an age verification prompt and prevents checkout until verification is complete.
-
Does it save verification proof on orders?
-
Yes. When checkout is completed after verification, the plugin can save the AgeOnce verification status, transaction ID, and timestamp on the WooCommerce order.
-
Does it work without WooCommerce?
-
The plugin loads without WooCommerce, but checkout protection requires WooCommerce. Content protection (posts, pages) works independently.
-
Can I restrict content by category?
-
Yes. In Content Rules, expand a post type (e.g., Posts) and select categories/tags that require verification for each age group (16+, 18+, 21+).
-
What data is sent to AgeOnce?
-
When a visitor clicks Verify Age”, the browser is redirected to AgeOnce with your OAuth client ID, redirect URI, state value, and required minimum age. After verification, the plugin exchanges the returned authorization code with AgeOnce through a server-to-server API request.
-
Does this replace legal advice?
-
No. AgeOnce helps enforce age verification rules on your WordPress or WooCommerce site, but requirements vary by country, state, product type, and business model. Review your local compliance requirements before selling age-restricted products.
Reviews
Contributors & Developers
“AgeOnce Age Verification for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “AgeOnce Age Verification for WooCommerce” 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.2
- Improved the first-run admin experience with a setup checklist, connection testing, automatic credential saving after a successful test, and clearer toast notifications.
- Redesigned Content Rules with a quick-start guide, recommended versus advanced taxonomy groups, selected-item counters, and clearer control explanations.
- Updated WordPress.org screenshots and plugin copy to better explain setup, free plans, documentation, and WooCommerce/content restriction flows.
1.0.1
- WordPress.org review: document external services in readme; sanitize nested content rules; align text domain with plugin slug; validate OAuth state (nonce) and redirect URL on callback; harden metabox saves with capability checks.
1.0.0
- Initial release for WordPress.org
- WooCommerce checkout protection
- Content rules by post type and taxonomy
- Manual locking via metabox
- Product-level age verification
