{"id":345097,"date":"2026-08-07T08:59:17","date_gmt":"2026-08-07T08:59:17","guid":{"rendered":"https:\/\/de.wordpress.org\/plugins\/oneguard-for-woocommerce\/"},"modified":"2026-08-07T20:59:48","modified_gmt":"2026-08-07T20:59:48","slug":"oneguard-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/oneguard-for-woocommerce\/","author":23537801,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.6","stable_tag":"1.2.6","tested":"7.0.3","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"Oneguard for WooCommerce","header_author":"Oneguard","header_description":"WooCommerce connector and checkout gatekeeper for age verification on restricted products.","assets_banners_color":"083c76","last_updated":"2026-08-07 20:59:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/verification.oneguard.app","header_author_uri":"https:\/\/oneguard.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.4":{"tag":"1.1.4","author":"noahoneguard","date":"2026-08-07 20:14:29"},"1.2.6":{"tag":"1.2.6","author":"noahoneguard","date":"2026-08-07 20:59:48"}},"upgrade_notice":{"1.2.6":"<p>Adds clear status icons to the verification event timeline.<\/p>","1.2.5":"<p>Polishes action icons and focus states throughout the verification and rules interfaces.<\/p>","1.2.4":"<p>Allows verification evidence images to be opened in a large, accessible preview.<\/p>","1.2.3":"<p>Uses one consistent localized label for all approved verification statuses.<\/p>","1.2.2":"<p>Keeps verification details stable while loading and fixes Face ID video and event timelines.<\/p>","1.2.1":"<p>Improves hybrid Face ID and identity-document results, progressive detail loading, event history, and remote video evidence.<\/p>","1.2.0":"<p>Adds Face ID as the default age-check method, detailed verification evidence and diagnostics, manual approval, and configurable name\/address order rules.<\/p>","1.1.4":"<p>Initial WordPress.org release with WooCommerce product restrictions, order verification, privacy disclosures, and WordPress.org naming updates.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3637623,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3637623,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3637623,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500-de.png":{"filename":"banner-1544x500-de.png","revision":3637861,"resolution":"1544x500","location":"assets","locale":"de","width":1544,"height":500},"banner-1544x500-de_DE.png":{"filename":"banner-1544x500-de_DE.png","revision":3637861,"resolution":"1544x500","location":"assets","locale":"de_DE","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3637861,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-de.png":{"filename":"banner-772x250-de.png","revision":3637861,"resolution":"772x250","location":"assets","locale":"de","width":772,"height":250},"banner-772x250-de_DE.png":{"filename":"banner-772x250-de_DE.png","revision":3637861,"resolution":"772x250","location":"assets","locale":"de_DE","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3637861,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.4","1.2.6"],"block_files":[],"assets_screenshots":{"screenshot-1-de.jpg":{"filename":"screenshot-1-de.jpg","revision":3637861,"resolution":"1","location":"assets","locale":"de","width":1600,"height":900},"screenshot-1-de_DE.jpg":{"filename":"screenshot-1-de_DE.jpg","revision":3637861,"resolution":"1","location":"assets","locale":"de_DE","width":1600,"height":900},"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3637861,"resolution":"1","location":"assets","locale":"","width":1600,"height":900},"screenshot-2-de.jpg":{"filename":"screenshot-2-de.jpg","revision":3637861,"resolution":"2","location":"assets","locale":"de","width":1600,"height":900},"screenshot-2-de_DE.jpg":{"filename":"screenshot-2-de_DE.jpg","revision":3637861,"resolution":"2","location":"assets","locale":"de_DE","width":1600,"height":900},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3637861,"resolution":"2","location":"assets","locale":"","width":1600,"height":900},"screenshot-3-de.jpg":{"filename":"screenshot-3-de.jpg","revision":3637861,"resolution":"3","location":"assets","locale":"de","width":1600,"height":900},"screenshot-3-de_DE.jpg":{"filename":"screenshot-3-de_DE.jpg","revision":3637861,"resolution":"3","location":"assets","locale":"de_DE","width":1600,"height":900},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3637861,"resolution":"3","location":"assets","locale":"","width":1600,"height":900},"screenshot-4-de.jpg":{"filename":"screenshot-4-de.jpg","revision":3637861,"resolution":"4","location":"assets","locale":"de","width":1600,"height":900},"screenshot-4-de_DE.jpg":{"filename":"screenshot-4-de_DE.jpg","revision":3637861,"resolution":"4","location":"assets","locale":"de_DE","width":1600,"height":900},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3637861,"resolution":"4","location":"assets","locale":"","width":1600,"height":900}},"screenshots":{"1":"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.","3":"A customer-friendly verification flow designed for secure, repeat purchases.","4":"Support for common identity documents, liveness checks, and a streamlined verification flow."}},"plugin_section":[],"plugin_tags":[41695,5616,3148,26873,286],"plugin_category":[45],"plugin_contributors":[274780],"plugin_business_model":[],"class_list":["post-345097","plugin","type-plugin","status-publish","hentry","plugin_tags-age-restriction","plugin_tags-age-verification","plugin_tags-checkout","plugin_tags-identity-verification","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-noahoneguard","plugin_committers-noahoneguard"],"banners":{"banner":"https:\/\/ps.w.org\/oneguard-for-woocommerce\/assets\/banner-772x250.png?rev=3637861","banner_2x":"https:\/\/ps.w.org\/oneguard-for-woocommerce\/assets\/banner-1544x500.png?rev=3637861","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/oneguard-for-woocommerce\/assets\/icon.svg?rev=3637623","icon":"https:\/\/ps.w.org\/oneguard-for-woocommerce\/assets\/icon.svg?rev=3637623","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/oneguard-for-woocommerce\/assets\/screenshot-1.jpg?rev=3637861","caption":"Customers can complete a guided Face ID age check on their phone."},{"src":"https:\/\/ps.w.org\/oneguard-for-woocommerce\/assets\/screenshot-2.jpg?rev=3637861","caption":"The guided ID scan helps customers submit an identity document when required."},{"src":"https:\/\/ps.w.org\/oneguard-for-woocommerce\/assets\/screenshot-3.jpg?rev=3637861","caption":"A customer-friendly verification flow designed for secure, repeat purchases."},{"src":"https:\/\/ps.w.org\/oneguard-for-woocommerce\/assets\/screenshot-4.jpg?rev=3637861","caption":"Support for common identity documents, liveness checks, and a streamlined verification flow."}],"raw_content":"<!--section=description-->\n<p><strong>Sell age-restricted products with less manual work.<\/strong><\/p>\n\n<p>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.<\/p>\n\n<p>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.<\/p>\n\n<p><strong>Why stores choose Oneguard<\/strong><\/p>\n\n<ul>\n<li>Simple setup inside WooCommerce - no code required.<\/li>\n<li>Age checks only for the products you select.<\/li>\n<li>An individual minimum age per product or one global default.<\/li>\n<li>A clear, guided mobile experience for customers.<\/li>\n<li>Automatic WooCommerce order updates after a successful check.<\/li>\n<li>Face ID age estimation by default, with an optional identity-document fallback.<\/li>\n<li>A compact verification overview with evidence, event history, and manual approval.<\/li>\n<li>Name and address rules that can automatically hold or cancel matching orders.<\/li>\n<li>German and English customer messages.<\/li>\n<li>Compatibility with WooCommerce High-Performance Order Storage (HPOS).<\/li>\n<li>Document images, face images, videos, and biometric raw data stay outside the WordPress database.<\/li>\n<\/ul>\n\n<p><strong>From checkout to ready to continue<\/strong><\/p>\n\n<ol>\n<li>Mark the products that require an age check.<\/li>\n<li>The customer completes the normal WooCommerce checkout.<\/li>\n<li>The order stays on hold while the customer verifies their age.<\/li>\n<li>Oneguard returns the result and WooCommerce updates the order automatically.<\/li>\n<\/ol>\n\n<p>Oneguard is suitable for shops that sell alcohol, tobacco, vaping products, adult products, or other goods that require an age check.<\/p>\n\n<p><strong>Get started free<\/strong><\/p>\n\n<p>The WordPress.org launch version includes the free Oneguard plan. No payment details are collected in WordPress, and this version has no monthly or per-verification fee.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install Oneguard for WooCommerce from WordPress.org.<\/li>\n<li>Activate \"Oneguard for WooCommerce\" in WordPress.<\/li>\n<li>Open WooCommerce &gt; Oneguard and activate the free Oneguard plan.<\/li>\n<li>Edit WooCommerce products and enable age verification for restricted products.<\/li>\n<li>Place a test order and complete the age check once before going live.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20does%20age%20verification%20work%20in%20woocommerce%3F\"><h3>How does age verification work in WooCommerce?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"which%20products%20can%20i%20restrict%3F\"><h3>Which products can I restrict?<\/h3><\/dt>\n<dd><p>Age verification can be enabled for individual WooCommerce products. Each product can have its own minimum age, or you can use one global default.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20free%3F\"><h3>Is this plugin free?<\/h3><\/dt>\n<dd><p>Yes. The WordPress.org launch version includes a free Oneguard plan with no monthly or per-verification fee. The plugin does not collect payment details in WordPress.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20require%20woocommerce%3F\"><h3>Does the plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Oneguard for WooCommerce requires WooCommerce for product and order verification.<\/p><\/dd>\n<dt id=\"what%20does%20the%20customer%20experience%20look%20like%3F\"><h3>What does the customer experience look like?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"what%20happens%20while%20verification%20is%20pending%3F\"><h3>What happens while verification is pending?<\/h3><\/dt>\n<dd><p>The affected WooCommerce order stays on hold. Once the required check succeeds, Oneguard updates the order automatically so fulfillment can continue.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20woocommerce%20hpos%3F\"><h3>Does the plugin support WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. Oneguard for WooCommerce declares compatibility with WooCommerce High-Performance Order Storage.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20supported%3F\"><h3>Which languages are supported?<\/h3><\/dt>\n<dd><p>The plugin includes German and English messages. Customers in German-speaking billing countries receive German messages; other detected countries receive English.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20guarantee%20legal%20compliance%3F\"><h3>Does this plugin guarantee legal compliance?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20oneguard%20use%20an%20external%20service%3F\"><h3>Does Oneguard use an external service?<\/h3><\/dt>\n<dd><p>Yes. The age check is performed by the hosted Oneguard service after the shop operator activates the free plan. This connection is required for the plugin's main functionality.<\/p>\n\n<p>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.<\/p>\n\n<p>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.<\/p>\n\n<p>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.<\/p>\n\n<p>The service is operated by OneGuard GmbH, Welserstra\u00dfe 3, 87463 Dietmannsried, Germany.<\/p>\n\n<ul>\n<li>Service website: https:\/\/oneguard.app\/<\/li>\n<li>Terms of service: https:\/\/oneguard.app\/terms\/<\/li>\n<li>Privacy policy: https:\/\/oneguard.app\/privacy\/<\/li>\n<\/ul><\/dd>\n<dt id=\"which%20verification%20data%20remains%20in%20wordpress%3F\"><h3>Which verification data remains in WordPress?<\/h3><\/dt>\n<dd><p>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.<\/p>\n\n<p>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.<\/p>\n\n<p>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.<\/p><\/dd>\n<dt id=\"how%20is%20the%20connection%20protected%3F\"><h3>How is the connection protected?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Replaces identical empty timeline circles with distinct status icons.<\/li>\n<li>Shows clear visual states for approved, started, created, pending, failed, and expired events.<\/li>\n<li>Removes internal service endpoint addresses from the public plugin description.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Replaces inconsistent text glyphs with crisp close and plus icons.<\/li>\n<li>Adds consistent icon sizing, hover states, and accessible keyboard focus styling.<\/li>\n<li>Prevents the close icon from receiving a distracting focus box whenever a detail view opens.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Opens Face ID and identity-document evidence images in a large preview when clicked.<\/li>\n<li>Supports keyboard focus, Escape, backdrop clicks, and a dedicated close button.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Displays every approved verification as \"Bestanden\" in German and \"Approved\" in English.<\/li>\n<li>Keeps detailed diagnostic messages available in the verification details.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Keeps the evidence, events, and verification cards in a stable order while remote details load.<\/li>\n<li>Displays Face ID WebM videos whose data URLs include codec information.<\/li>\n<li>Completes and localizes the verification event timeline without a trailing connector.<\/li>\n<li>Hides identity-document result fields for Face ID checks that did not require an ID scan.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Displays Face ID checks that required an ID fallback as a combined verification method.<\/li>\n<li>Shows order and verification metadata immediately while remote evidence loads with animated placeholders.<\/li>\n<li>Fixes event timeline markers and formats event timestamps for the shop locale.<\/li>\n<li>Supports secure HTTPS URLs for Face ID videos and verification images.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added Face ID age estimation as the default method with a shop setting to use identity-document checks instead.<\/li>\n<li>Added a compact order-based verification overview with diagnostics, media evidence, and event history.<\/li>\n<li>Added manual verification approval and automatic release of eligible on-hold orders.<\/li>\n<li>Added name and address matching rules with hold or cancel actions.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Updated plugin-owned identifiers to use the unique <code>oneguard_wc<\/code> prefix.<\/li>\n<li>Added the verified plugin owner to the WordPress.org contributors list.<\/li>\n<li>Refreshed the WordPress.org description, FAQ, and store visuals for clearer onboarding.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Prepared the plugin for its free WordPress.org launch.<\/li>\n<li>Declared WooCommerce as a required plugin dependency.<\/li>\n<li>Reworked the plan flow so shops can activate the free Oneguard plan without an external payment step.<\/li>\n<li>Clarified external service and privacy documentation.<\/li>\n<li>Added direct service terms and privacy links and clarified local data retention.<\/li>\n<li>Completed plugin-owned option cleanup on uninstall.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p>Initial implementation.<\/p>","raw_excerpt":"Simple WooCommerce age verification for restricted products, with guided checks and automatic order updates.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/345097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=345097"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/noahoneguard"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=345097"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=345097"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=345097"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=345097"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=345097"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=345097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}