Identity Verification for WooCommerce / OneGuard

Plugin Banner

Identity Verification for WooCommerce / OneGuard

by noahoneguard

Download
Description

Sell age-restricted products with less manual work.

Oneguard adds a guided age check to WooCommerce. Choose which products require verification, set the minimum age, and let customers complete the check on their phone after checkout.

Orders that need a check stay on hold. As soon as the customer succeeds, Oneguard updates the WooCommerce order automatically so your team knows it can continue.

Why stores choose Oneguard

  • Simple setup inside WooCommerce – no code required.
  • Age checks only for the products you select.
  • An individual minimum age per product or one global default.
  • An optional age confirmation when visitors first open the shop.
  • A clear, guided mobile experience for customers.
  • Automatic WooCommerce order updates after a successful check.
  • Face ID age estimation by default, with an optional identity-document fallback.
  • A compact verification overview with evidence, event history, and manual approval.
  • Name and address rules that can automatically hold or cancel matching orders.
  • German and English customer messages.
  • Compatibility with WooCommerce High-Performance Order Storage (HPOS).
  • Document images, face images, videos, and biometric raw data stay outside the WordPress database.

From checkout to ready to continue

  1. Mark the products that require an age check.
  2. The customer completes the normal WooCommerce checkout.
  3. The order stays on hold while the customer verifies their age.
  4. Oneguard returns the result and WooCommerce updates the order automatically.

Oneguard is suitable for shops that sell alcohol, tobacco, vaping products, adult products, or other goods that require an age check.

Plans and pricing

Oneguard for WooCommerce is available in three monthly plans: Starter (25 EUR, 10 checks included), Grow (90 EUR, 100 checks, personal support) and Scale (299 EUR, 500 checks, 24/7 support). Face ID and the identity-document check are included in every plan. Additional checks are billed per check at the plan rate. The purchase is started from the plugin and completed on the hosted OneGuard purchase page with Stripe; no payment details are collected in WordPress. Plans can be changed or cancelled monthly.

  1. Install and activate WooCommerce.
  2. Install Oneguard for WooCommerce from WordPress.org.
  3. Activate “Oneguard for WooCommerce” in WordPress.
  4. Open WooCommerce > Oneguard, choose a plan and complete the payment on the OneGuard purchase page.
  5. Edit WooCommerce products and enable age verification for restricted products.
  6. Place a test order and complete the age check once before going live.
  1. Customers can complete a guided Face ID age check on their phone.

    Customers can complete a guided Face ID age check on their phone.

  2. The guided ID scan helps customers submit an identity document when required.

    The guided ID scan helps customers submit an identity document when required.

  3. A customer-friendly verification flow designed for secure, repeat purchases.

    A customer-friendly verification flow designed for secure, repeat purchases.

  4. Support for common identity documents, liveness checks, and a streamlined verification flow.

    Support for common identity documents, liveness checks, and a streamlined verification flow.

How does age verification work in WooCommerce?

Select the relevant products and set a minimum age. When an affected order is placed, it stays on hold while the customer follows the guided check on their phone. Oneguard then returns the result and updates the WooCommerce order automatically.

Which products can I restrict?

Age verification can be enabled for individual WooCommerce products. Each product can have its own minimum age, or you can use one global default.

Is this plugin free?

The plugin itself is free to install. Using the Oneguard verification service requires one of the paid plans (Starter, Grow or Scale). Payment is handled by Stripe on the OneGuard purchase page; the plugin never collects payment details in WordPress.

Does the plugin require WooCommerce?

Yes. Oneguard for WooCommerce requires WooCommerce for product and order verification.

What does the customer experience look like?

Customers complete the normal checkout first. If the order contains a restricted product, they receive a clear link to the mobile Oneguard flow. The guided steps explain what to do, and the result is sent back to WooCommerce automatically.

What happens while verification is pending?

The affected WooCommerce order stays on hold. Once the required check succeeds, Oneguard updates the order automatically so fulfillment can continue.

Does the optional age confirmation replace order verification?

No. The storefront banner is a self-declared entry confirmation that lasts for the current browser session. Restricted products still use the configured Oneguard check after checkout.

Does the plugin support WooCommerce HPOS?

Yes. Oneguard for WooCommerce declares compatibility with WooCommerce High-Performance Order Storage.

Which languages are supported?

The plugin includes German and English messages. Customers in German-speaking billing countries receive German messages; other detected countries receive English.

Does this plugin guarantee legal compliance?

No. Oneguard provides age-verification tools, but requirements vary by product, country, and business. Shop operators remain responsible for deciding which verification and fulfillment measures apply to them.

Does Oneguard use an external service?

Yes. The age check is performed by the hosted Oneguard service after the shop operator has purchased a plan. This connection is required for the plugin’s main functionality.

When a shop is connected, the service receives the site and home URL, domain, shop name, admin email, WordPress, WooCommerce, and plugin versions, plus the configured default age and verification expiry.

For an affected order, the service receives the information required to perform and return the age check: order ID, number and date; customer email, phone number, name, billing address and locale; return URL; required age; selected check method; and restricted-product details. Oneguard returns the verification ID, status, verification URL, expiry date, diagnostics, and selected result fields when available.

When the shop operator configures name or address rules, those rule values are stored in the Oneguard middleware. Billing and shipping names and addresses are sent to the middleware when an order is evaluated against active rules. Verification evidence remains on the hosted verification service and is fetched only when an authorized WooCommerce administrator opens the order details in the age-verification overview.

The service is operated by OneGuard GmbH, Welserstraße 3, 87463 Dietmannsried, Germany.

  • Service website: https://oneguard.app/
  • Terms of service: https://oneguard.app/terms/
  • Privacy policy: https://oneguard.app/privacy/

Which verification data remains in WordPress?

WordPress stores the verification ID and status, required age, expiration date, and the necessary order, customer, and restricted-product references. After a successful check, selected result fields such as document number and type, birth date, and calculated age may also be stored when Oneguard returns them.

WordPress does not persist document images, face images, selfie videos, biometric raw data, OCR raw data, or full names and addresses read from the identity document in the plugin database. Authorized WooCommerce administrators can view available evidence on demand; it is transmitted for that request but remains stored by the external verification service.

Records in the plugin’s verification table remain until the plugin is uninstalled. Verification metadata attached to WooCommerce orders follows the shop’s normal WooCommerce retention and deletion process.

How is the connection protected?

Protected requests use a secret assigned to the individual shop. Signed callbacks include a timestamp and one-time value; the plugin rejects stale, duplicate, invalid, or mismatched callbacks.

1.3.1

  • Describes Face ID as part of every plan and updates the Starter and Grow plan texts.

1.3.0

  • Replaces the free launch plan with the paid plans Starter, Grow and Scale.
  • Starts the purchase from the plan tab; the shop is passed to the OneGuard purchase page automatically and only the Stripe payment remains.
  • Shows monthly price, included checks and the price per additional check on the status tab.
  • Adds “Manage plan” to open the Stripe customer portal for invoices, payment method, plan changes and cancellation.
  • Refreshes the plan state immediately after returning from the payment.

1.2.10

  • Keeps age-restricted orders pending until the payment gateway has processed them, so checkout no longer skips the payment step.
  • Places orders on hold for age verification only after payment is confirmed or the gateway itself holds them.
  • Applies name and address hold rules after payment and keeps cancel rules in effect when WooCommerce completes payment.
  • Hides the age-verification notice on failed and cancelled orders.

1.2.9

  • Automatically enables the plugin after successful free-plan activation.
  • Selects Face ID as the default verification method at the same time.
  • Preserves all other existing plugin settings.

1.2.8

  • Adds an optional age confirmation that can appear when visitors open the shop.
  • Uses the configured default minimum age in both entry choices.
  • Keeps underage visitors on the blocked screen and remembers approval for the browser session.

1.2.7

  • Adds a quick selection dialog that marks many products as age-restricted at once.
  • Adds search, select all, and clear selection to the product dialog.
  • Keeps the quick selection and the age verification setting on each product in sync.

1.2.6

  • Replaces identical empty timeline circles with distinct status icons.
  • Shows clear visual states for approved, started, created, pending, failed, and expired events.
  • Removes internal service endpoint addresses from the public plugin description.

1.2.5

  • Replaces inconsistent text glyphs with crisp close and plus icons.
  • Adds consistent icon sizing, hover states, and accessible keyboard focus styling.
  • Prevents the close icon from receiving a distracting focus box whenever a detail view opens.

1.2.4

  • Opens Face ID and identity-document evidence images in a large preview when clicked.
  • Supports keyboard focus, Escape, backdrop clicks, and a dedicated close button.

1.2.3

  • Displays every approved verification as “Bestanden” in German and “Approved” in English.
  • Keeps detailed diagnostic messages available in the verification details.

1.2.2

  • Keeps the evidence, events, and verification cards in a stable order while remote details load.
  • Displays Face ID WebM videos whose data URLs include codec information.
  • Completes and localizes the verification event timeline without a trailing connector.
  • Hides identity-document result fields for Face ID checks that did not require an ID scan.

1.2.1

  • Displays Face ID checks that required an ID fallback as a combined verification method.
  • Shows order and verification metadata immediately while remote evidence loads with animated placeholders.
  • Fixes event timeline markers and formats event timestamps for the shop locale.
  • Supports secure HTTPS URLs for Face ID videos and verification images.

1.2.0

  • Added Face ID age estimation as the default method with a shop setting to use identity-document checks instead.
  • Added a compact order-based verification overview with diagnostics, media evidence, and event history.
  • Added manual verification approval and automatic release of eligible on-hold orders.
  • Added name and address matching rules with hold or cancel actions.

1.1.4

  • Updated plugin-owned identifiers to use the unique oneguard_wc prefix.
  • Added the verified plugin owner to the WordPress.org contributors list.
  • Refreshed the WordPress.org description, FAQ, and store visuals for clearer onboarding.

1.1.3

  • Prepared the plugin for its free WordPress.org launch.
  • Declared WooCommerce as a required plugin dependency.
  • Reworked the plan flow so shops can activate the free Oneguard plan without an external payment step.
  • Clarified external service and privacy documentation.
  • Added direct service terms and privacy links and clarified local data retention.
  • Completed plugin-owned option cleanup on uninstall.

1.0.0

Initial implementation.

Back to top