Description
Checkify for WooCommerce adds a privacy-first age verification gate to your WooCommerce shop. Customers scan a QR code with the Checkify app to prove their age before checkout.
Requires Checkify Connector and WooCommerce.
Features
- Configurable minimum age from 10 to 110
- Verified or High Assurance assurance levels (aligned with the Checkify app)
- Gate scope: checkout only, cart + checkout, or entire storefront
- Inline widget on cart/checkout or full-page gate for catalog protection
- Restrict verification to selected product categories (for example Vape or Alcohol)
- Optional skip for logged-in customers and shop-manager bypass
- Classic checkout and WooCommerce Checkout block / Store API support
- HPOS (custom order tables) compatible
How it works
- Install and connect Checkify Connector with your Checkify Pass ID.
- Activate Checkify for WooCommerce.
- Configure minimum age, scope, and optional category restrictions under WooCommerce Checkify age gate.
- Unverified customers see the Checkify QR widget and cannot complete checkout until verified.
Category-scoped gating
Leave all category checkboxes unchecked to require verification for every product. Select specific categories to gate only those products and carts that contain them. Products in unrestricted categories (for example a t-shirt) should not trigger the gate when categories are configured correctly.
External services
This plugin relies on Checkify Connector (required dependency) to connect your WordPress site to Checkify verification services.
Service used:
- Checkify API: https://checkify.me
- Checkify website: https://checkify.me
Data is sent to Checkify when a customer starts or completes age verification on your shop (via the Checkify Connector plugin). This plugin itself does not make separate API calls; it uses the Checkify Connector API and verification session already configured on your site.
The plugin may cause the following data to be sent to Checkify (through Checkify Connector):
- Your WordPress site domain
- A Checkify site identifier and installation identifier
- The Checkify Pass identifier configured by the site administrator
- Verification request identifiers and status tokens
- Request timestamps
- Cryptographic signatures used to authenticate the WordPress installation
Browser storage (via Checkify Connector):
- Cookie:
checkify_state_id(functional verification session binding) - sessionStorage: short-lived pending QR request state in the verification widget
Checkify privacy policy: https://checkify.me/privacy-policy
Checkify terms: https://checkify.me/terms_and_conditions
Screenshots



Installation
- Install and activate WooCommerce.
- Install Checkify (the Checkify Connector plugin): search for Checkify under Plugins Add New on the WordPress.org plugin directory, or upload the Checkify Connector ZIP from checkify.me/wordpress-integration#downloads if you use the standalone package.
- Activate Checkify, connect your site, and save your Checkify Pass ID.
- Install Checkify for WooCommerce via Plugins Add New, or upload the ZIP to
/wp-content/plugins/checkify-for-woocommerce/. - Activate the plugin through the Plugins menu.
- Go to WooCommerce Checkify age gate to configure age, scope, and categories.
FAQ
-
Do I need a Checkify business account?
-
Yes. Site connection is approved by a business owner scanning the connection QR in the Checkify app. Age verification uses a Checkify Pass configured for your connected site.
-
Which plugins are required?
-
WooCommerce must be installed and active. Checkify (Checkify Connector) is also required for the age gate to run. You can activate Checkify for WooCommerce before Checkify is ready; an admin notice will guide you to install or activate Checkify until it is active.
-
Where do I get Checkify (Checkify Connector)?
-
Install Checkify from the WordPress.org plugin directory via Plugins Add New, or download the Checkify Connector ZIP from checkify.me/wordpress-integration#downloads and upload it under Plugins Add New Upload Plugin. Both packages provide the same Connector functionality.
-
Does this work with WooCommerce block checkout?
-
Yes. The inline verification widget is injected into cart and checkout blocks, Place order is disabled until verification completes, and Store API checkout/add-to-cart requests are blocked when required.
-
Can I gate only alcohol or vape products?
-
Yes. Under Restricted categories, select the WooCommerce product categories that require age verification. Carts containing only products outside those categories can proceed without verification.
-
Does parent category selection include subcategories?
-
Yes. Selecting a parent category also applies to products assigned to child categories. Category matching uses the parent product for variable products.
-
What happens if no categories are selected?
-
Verification is required for every product in the cart. Check the Status panel on the settings page — it should list how many categories are selected, not “All products (no category filter)”.
-
Does this plugin store customer identity data in WordPress?
-
No. Verification results are stored locally as a short-lived session (browser cookie and server transient) by Checkify. Your shop receives an age verification result, not passport or ID images.
-
Is WooCommerce HPOS supported?
-
Yes. The plugin declares compatibility with WooCommerce custom order tables (HPOS).
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Checkify for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Checkify 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.2.13
- Fix critical error when WordPress.org Checkify 1.2.1 (or older Connector builds without checkify()/site()/verification()/widget()) is active
- Require Checkify/Connector 1.2.2+ service APIs before loading the age gate
- Harden admin, gate, and widget paths so outdated Checkify installs show a dependency notice instead of crashing the site
1.2.12
- Document that Checkify (Connector) is available on WordPress.org as plugin slug
checkify - Detect both WordPress.org (
checkify/checkify.php) and ZIP (checkify-connector/checkify-connector.php) Connector installs - Update admin install guidance and dependency notices accordingly
- Document Checkify browser cookie and sessionStorage in external services section
1.2.11
- Prevent fatal errors when an older Checkify Connector is active (safe asset enqueue fallback)
- Require Connector 1.2.1+ before registering the storefront gate; show an admin notice when Connector is outdated
- Guard against duplicate plugin copies loading at once (dev folder plus release ZIP)
1.2.10
- WordPress.org review: strip Checkify Connector inline style blocks from storefront widget output
- Move Checkify widget presentation styles into enqueued gate.css
- Plugins list: add Settings action link and row meta when WooCommerce is active
- Avoid duplicate Connector dependency notice on the settings page install card
1.2.9
- Checkify Connector dependency: runtime checks with download/activate links (Connector is not a WordPress.org plugin slug)
- Admin settings page explains Connector install steps when Connector is missing or inactive
- Safe activation defaults when Connector is not loaded yet
- Readme: clarify Connector download URL and that WooCommerce is the only Requires Plugins header
1.2.8
- WordPress.org review: remove invalid Requires Plugins header for Checkify Connector (dependency handled in code)
- WordPress.org review: enqueue admin CSS instead of inline style block
- WordPress.org review: scope admin notices to WooCommerce and Plugins screens
- WordPress.org review: sanitize Checkify widget HTML via wp_kses before output
1.2.7
- Plugin Check: escape translated age help text via esc_html( sprintf( __() ) )
1.2.6
- Plugin Check: fix translator comment placement and Store API exception escaping annotations
1.2.5
- Plugin Check: i18n translator comments, escaped printf placeholders, sanitized exception messages
- Remove manual load_plugin_textdomain() (WordPress.org loads translations automatically)
- Prefixed uninstall.php option loop variables
1.2.4
- WordPress.org: align plugin slug, main file, and text domain to
checkify-for-woocommerce - WordPress.org: Tested up to WordPress 7.0
- Release ZIP excludes hidden development files
1.2.3
- Require Checkify Connector (not the legacy Checkify slug) in plugin headers — matches other Checkify satellite plugins
- Readme and metadata consistently refer to Checkify Connector
1.2.2
- Fix activation blocked on sites using the
checkify-connectorplugin folder (WordPress only hard-requires WooCommerce at activation) - Checkify Connector remains a runtime dependency with an admin notice if missing
1.2.1
- Fix category matching for variable products (use parent product categories)
- Match restricted parent categories to products in child categories
- WordPress.org release packaging and readme updates
- Add uninstall cleanup for plugin options
1.2.0
- Replace fixed 18/21/25 age profiles with configurable minimum age (10–110)
- Add minimum assurance selector: Verified or High Assurance (aligned with Checkify app)
- Automatic migration from legacy
age_over_*profile setting
1.0.5
- Fix blocked checkout with no QR when gate mode is full-page but scope includes checkout (block checkout)
- Always show inline verification widget on cart/checkout pages when verification is required
- Fallback gate injection via the_content and woocommerce_before_main_content
- Load block-checkout helper whenever checkout is blocked, not only when block detection succeeds
1.0.4
- Block Checkout: inject inline gate via block-specific render hooks
- Block Checkout: load Checkify verify scripts during block render (not only via shortcode)
- Block Checkout: disable Place Order button and payment section until verification completes
- Block Checkout: re-init QR widget after React checkout hydrates
1.0.3
- Restrict age gate to selected WooCommerce product categories (optional)
- Customer policies: skip gate for logged-in users and shop-manager bypass
- Checkout/cart/add-to-cart guards respect category-scoped carts
- PHPUnit coverage for core gate policy rules
1.0.2
- Inline Checkify widget on cart and checkout (default for checkout-only scope)
- Full-page gate remains default for cart and entire-store protection
- Cache-control headers and admin caching guidance for hosts and WP Rocket
- Block classic AJAX add-to-cart when cart/store protection is active
- Disable Place order button until verification completes on classic checkout
1.0.1
- Declare WooCommerce HPOS compatibility
- Block Checkout block / Store API checkout and add-to-cart when verification is required
- Do not gate customers until site connection and Pass ID are configured
- Replace HTTP 403 gate page with a normal verification page (503 if Pass ID missing)
- Admin status panel, setup instructions, and configuration warnings
1.0.0
- Initial release
