Victor Eliot – Age Verification for WooCommerce

Description

This plugin connects WooCommerce to AgeCheck (agecheck.cz), a Czech
age-verification service, so your shop can sell age-restricted (18+) goods in
line with Act No. 65/2017 Coll. (for tobacco and nicotine products, distance
selling requires a system that electronically and unambiguously verifies the
buyer’s age — a simple “I am 18” checkbox is not enough).

The plugin blocks order completion for age-restricted (18+) products until the
customer proves their age. The result is confirmed server-side (your secret
API key never reaches the browser), so the check cannot be bypassed from the
front end.

The plugin interface is provided in Czech (and Slovak) and can be translated.

Features

  • Verification via Bank iD, MojeID, data box (datová schránka) or ID document scan
  • What to verify: the whole shop / selected product categories (a clear
    picker that highlights typical 18+ categories) / individual products —
    “requires verification” or “exempt” right in the product settings (exempt always wins)
  • When to verify: at order completion (default) / when a gated item is added
    to the cart / on page entry (site-wide gate)
  • Remember verification: a configurable number of days — on the device
    (signed cookie) and, for logged-in customers, on their account (works across
    devices); 0 = verify on every order
  • AgeCheck network: a customer already verified at another shop in the
    network passes with a single click (cheaper repeat verification)
  • Works with the classic checkout and the block checkout (Store API)
    server-side check in both; a proof-of-verification is stored on the order
    (visible in the order detail — evidence for regulatory inspections)
  • Privacy by design: only a “18+ yes/no” proof is stored, never the customer’s
    name or document number
  • HPOS compatible
  • No monthly fee — you pay only for completed verifications (account at agecheck.cz)

External services

This plugin connects to the AgeCheck service (agecheck.cz), which performs
the age verification itself. Without an account at agecheck.cz the plugin does
not work.

  • What is sent: to start a verification, your shop’s server creates a session
    through the API (only an internal order/cart reference is sent). The customer’s
    browser then opens the verification window on agecheck.cz and polls the session
    status (session ID). Your shop’s server confirms the result through the API
    using your API key.
  • What is NOT sent: the plugin does not send the customer’s name, address or
    order contents to the service.
  • When: only during age verification (no analytics, no background tracking).
  • Provider: vinireto s.r.o., https://agecheck.cz —
    terms: https://agecheck.cz/tos · privacy: https://agecheck.cz/privacy-policy

Support

Author: Victor Eliot
E-mail: mail@victoreliot.com
Phone: +420 777 666 651
Web: https://agecheck.cz

Screenshots

Installation

  1. Upload the victor-eliot-age-verification folder to /wp-content/plugins/ (or install the ZIP via Plugins Add New Upload Plugin) and activate it.
  2. Register your shop for free at https://agecheck.cz/register and copy the shop ID (mrch_…) and API key (oid_live_…) from the Integration section.
  3. Go to Settings AgeCheck, enter both values and choose:
    • what to verify (all / categories / products),
    • when (order completion / add to cart / page entry),
    • how long to remember a verification.
  4. For individual products you can tick “Requires age verification 18+” or “Exempt from age verification” in the product settings.

FAQ

Do I need an account at agecheck.cz?

Yes. Registration is free and a new account gets a welcome credit to try it out;
you only pay for completed verifications, with no monthly fee.

Does it work with the block (Gutenberg) checkout?

Yes — the server-side check also runs through the Store API, so an order cannot
be completed without verification. The verification panel appears in the cart and
via the “add to cart” / “page entry” triggers; on the classic checkout it appears
right above the “Place order” button.

Can a customer bypass verification by disabling JavaScript?

No — the decisive check runs on the server (woocommerce_checkout_process and
the Store API). Without a confirmed verification the order will not go through.

Do you store customers’ personal data?

No. The service returns only the “is over 18: yes/no” result and the method used.
The name, date of birth and document number are not sent to the shop.

How strict is remembering a verification?

You decide: 0 days = every order is verified; otherwise the verification is
remembered on the device (signed cookie) and, for logged-in customers, on their
account.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Victor Eliot – Age Verification for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.0.0

  • New modes: whole shop / selected categories (checkbox picker with suggestions) / products
  • New per-product “Exempt from age verification” flag (wins over everything)
  • Triggers: order completion / add to cart / page entry (overlay)
  • Remember verification: signed cookie + customer account, configurable days
  • Block checkout: server-side check via the Store API
  • Proof of verification on the order detail (HPOS)
  • Security: sanitization of all settings, escaping, i18n, uninstall.php

1.0.0

  • First release: classic checkout gating, server-side confirmation, per
    product/category rules, HPOS.