Зв'язатись
  • WordPress
  • Продажі та конверсія
  • v1.0.1

Age Verification 18+ для WooCommerce — перевірка віку покупця на товарі й категорії, блокування чекауту, журнал для DE/AT/CH

Плагін для WooCommerce-магазинів з алкоголем, тютюном, вейпами, ножами, піротехнікою чи хімією для ринку Німеччини, Австрії та Швейцарії. Мінімальний вік задається категорії, товару чи варіації, покупець вказує дату народження лише тоді, коли в кошику справді є такий товар, а замовлення без підтвердження не проходить ні на класичному, ні на блоковому чекауті. Відповідь записується в замовлення і в журнал перевірок. Базова версія безкоштовна; Pro — вік за країною доставки з пресетами DE/AT/CH, обмеження способів доставки й оплати, примітка для доставки, CSV-експорт журналу.

Завантажити Free
Pro · ліцензія на рік Чим більше сайтів, тим дешевше кожен
Сумісність
WordPress 6.2+ · WooCommerce 7.0+ (перевірено на WordPress 7.1 і WooCommerce 11.1) · PHP 7.4+ · класичний і блоковий чекаут · HPOS і класичне сховище замовлень · інтерфейс англійською та німецькою
Ліцензія
один сайт, річна
Тріал
7 днів, без картки, один на сайт
Оновлено
вересень 2026
Або всі 144 Pro-модулів з All Access — 4 990 ₴ / рік

Що є в Free,
а що дає Pro

Безкоштовна версія працює без обмеження в часі. Pro додає решту функцій з таблиці.

Функція Free Pro
Мінімальний вік на категорії товарів — успадковується підкатегоріями ✔ ✔
Власний вік на товарі й на варіації; 0 на товарі звільняє його від правила категорії ✔ ✔
Режим «весь магазин» — для магазинів, де все продається лише з певного віку ✔ ✔
Вікно перевірки з датою народження (день / місяць / рік) або підтвердження одним кліком ✔ ✔
Серверне блокування замовлення на класичному і блоковому чекауті — закрите вікно чи вимкнений JavaScript нічого не змінюють ✔ ✔
Заборона додати товар у кошик без підтвердження і вікно на сторінці товару (вмикаються окремо) ✔ ✔
Позначка 18+ / 16+ на товарах у каталозі й на сторінці товару ✔ ✔
Підтвердження в замовленні: примітка, дані в замовленні й панель на екрані замовлення (HPOS і класичний) ✔ ✔
Журнал перевірок: що вимагалось, що заявлено, дата народження, результат, замовлення, країна, номер-референс ✔ ✔
IP у журналі хешується за замовчуванням або не зберігається зовсім ✔ ✔
Відповідь пам’ятається на заданий строк; після кількох невдалих спроб вікно блокується, можна перенаправити на свою сторінку ✔ ✔
Власні заголовок, текст і текст відмови з підстановкою {age} ✔ ✔
Працює з повним кешем сторінок (перевірено з WP Super Cache) ✔ ✔
Інтерфейс англійською та німецькою (de_DE) ✔ ✔
Мінімальний вік за країною доставки з пресетами Німеччина / Австрія / Швейцарія — ✔
Для «вікових» замовлень лише вибрані способи доставки: кур’єр з перевіркою документа або самовивіз — ✔
Приховування способів оплати для «вікових» замовлень — ✔
Примітка про перевірку віку при врученні в замовленні й листах клієнту — ✔
CSV-експорт журналу за період — ✔
Автоматичне видалення старих записів журналу — ✔
Ваш логотип і колір у вікні перевірки — ✔

Як це виглядає

Вікно перевірки віку Age Verification 18+ на сторінці товару: день, місяць і рік народження
Вікно на сторінці товару з мінімальним віком 18: покупець вводить дату народження, курсор одразу в полі «день». Тема Twenty Twenty-Five; вікно бере шрифт теми.
Блоковий чекаут WooCommerce відхиляє замовлення з віскі без підтвердження віку
Покупець закрив вікно й натиснув «Place order» на блоковому чекауті — замовлення не створюється, банер називає товар і потрібний вік.
Вкладка «Правила» (Regeln) німецькою: мінімальний вік для категорій і успадкування «18+ (aus Spirituosen)»
Вкладка «Правила» в німецькій адмінці: категорії «Spirituosen» задано 18, підкатегорія «Whisky» успадковує 18+. Нижче — правила за країною доставки, вони в Pro.

Головне про модуль

Як це виглядає для покупця

Покупець відкриває товар з мінімальним віком — біля назви стоїть позначка 18+.

Що отримує адмін

Налаштування — у WooCommerce → Age verification, чотири вкладки: «Log», «Settings», «Rules» і «Licence».

Pro: вік за країною доставки й сама доставка

Вікові межі різняться між країнами, тож Pro дає задати мінімальний вік за країною доставки — для всього обмеженого або для конкретної категорії.

Тріал стартує, коли ви попросите

Свіжий інстал — безкоштовна версія, нічого не вмикається само. Кнопка «Спробувати Pro 7 днів» → e-mail → ключ одразу у вікні і листом.

Один ключ — один сайт

Переносите магазин — відв’яжіть ліцензію на старому домені й активуйте на новому самі. Якщо наш сервер недоступний, Pro працює ще 14 днів. Для студій — ключі на 5, 25 сайтів або без обмежень.

Технічні вимоги

  • WordPress 6.2+ і WooCommerce 7.0+. Наскрізний прогін — на WordPress 7.1 і WooCommerce 11.1.
  • PHP 7.4+. Повний прогін магазину — на PHP 8.3; на 7.4 перевірені синтаксис і власні тести плагіна.
  • Чекаут. Класичний (шорткод) і блоковий — обидва перевірені. Замовлення — HPOS і класичне сховище.
  • Теми. Перевірено на Twenty Twenty-Five і Storefront; вікно бере шрифт теми.
  • Кеш сторінок. Вікно питає сервер, чи відкриватись, тож закешована сторінка не показує його знову тому, хто вже відповів, і не ховає від нового гостя. Вживу перевірено з WP Super Cache; інші кеші — ні. На сторінках без вікових товарів додаткового запиту немає.
  • Мови. Інтерфейс і вікно — англійською та німецькою (de_DE). Української в модулі немає: він зроблений для ринку DACH.

Історія версій

v1.0.1 Поточна вересень 2026

Перший публічний реліз під назвою Age Verification 18+ for WooCommerce.

Разом з Age Verification 18+ для WooCommerce купують

4 модулі одним замовленням — на 40% дешевше, ніж окремо

Набір «Старт магазину» Age Verification 18+ Nova Poshta Premium Mono Acquiring Telegram-сповіщення і Viber/SMS покупцям Потрібно більше — усі 144 модулі в All Access за 4 990 ₴.
2 490 ₴ / рік замість 4 160 ₴ поштучно
Купити набір →

Повний опис модуля

Age Verification 18+ для WooCommerce — плагін для магазинів, що продають товари з віковим обмеженням у Німеччину, Австрію та Швейцарію: алкоголь, тютюн і вейпи, ножі, піротехніку, небезпечну хімію. Більшість плагінів перевірки віку ставлять одну заставку перед усім сайтом. Для змішаного магазину це незручно: покупець шампуню бачить питання про вік, а в замовлення нічого не записується.

Тут вік належить товару. Ви задаєте мінімальний вік категорії (або окремому товару чи варіації), і магазин питає лише тоді, коли в кошику справді є такий товар: на сторінці товару, при додаванні в кошик і перед оформленням. Замовлення без підтвердження не проходить ні на класичному, ні на блоковому чекауті — перевірка стоїть на сервері, а не лише у вікні. Відповідь записується в замовлення і в журнал, який магазин може показати, коли його спитають, чи він перевіряв вік.

Чого плагін не робить. Дата народження, введена в браузері, — це заява покупця, а не перевірка особи. Плагін не замінює ідентифікацію і не робить магазин «відповідним закону» автоматично: чи достатньо такого процесу для ваших товарів, вирішує ваш юрист. Він документує, що магазин спитав, зупиняє замовлення, які правило не проходять, а в Pro дає закрити розрив там, де це реально можна зробити, — на доставці, з кур’єром, який перевіряє документ при врученні.

Як це виглядає для покупця

Покупець відкриває товар з мінімальним віком — біля назви стоїть позначка 18+. Якщо ввімкнено питання на сторінці товару, одразу відкривається вікно; якщо ні — воно з’являється, коли покупець тисне «Додати в кошик» або переходить до оформлення. У вікні три поля: день, місяць, рік народження. Курсор уже в першому полі й сам переходить далі, коли число введено. Замість дати можна ввімкнути підтвердження одним кліком — м’якший варіант, який доводить менше.

Доросла дата — вікно закривається, відповідь пам’ятається на вибраний строк (за замовчуванням 30 днів), товар додається в кошик. Дата, за якою покупцю менше потрібного віку, дає відмову; після трьох таких спроб (число налаштовується) вікно блокується, і покупця можна перенаправити на вашу сторінку, наприклад з поясненням вікових обмежень. Звичайні товари без віку купуються як завжди, без жодних питань.

Закрити вікно й оформити замовлення в обхід не вийде. На блоковому чекауті натискання «Place order» без підтвердження показує банер з назвою товару й потрібним віком, і замовлення не створюється. На класичному чекауті WooCommerce показує своє стандартне повідомлення про проблему з товарами в кошику, а в самому кошику видно, якого віку вимагає товар; форма оформлення не з’являється, поки покупець не відповість. З вимкненим JavaScript замовити теж неможливо.

Що отримує адмін

Налаштування — у WooCommerce → Age verification, чотири вкладки: «Log», «Settings», «Rules» і «Licence». Над вкладками — короткий стан: що саме захищено, скільки категорій мають правило, скільки спроб заблоковано за 30 днів, безкоштовна чи Pro-версія. Німецькою адмінка називається «Altersverifikation».

На вкладці «Rules» кожній категорії можна задати мінімальний вік одним числом. Підкатегорії його успадковують, і це видно одразу: біля «Whisky» стоїть «18+ (from Spirituosen)», так само в колонці «Age» у списку категорій і товарів. Окремий товар чи варіацію можна підняти вище або звільнити від правила категорії, вписавши 0.

На вкладці «Settings» — вмикач вікна (після встановлення воно вимкнене), що захищати (лише товари з віком чи весь магазин), вік за замовчуванням, спосіб відповіді, строк пам’яті, кількість спроб, адреса для заблокованих, питання при додаванні в кошик і на сторінці товару, позначка на товарах, запис у замовлення, власні тексти вікна з підстановкою {age}, а також журнал: вести чи ні і як зберігати IP.

У кожному замовленні з віковим товаром з’являється примітка на кшталт «Age verification: 18+ required, customer confirmed 36 (date of birth: 1990-03-15)», а на екрані замовлення — панель «Age verification»: для якого віку підтверджено, заявлений вік, дата народження, референс журналу і пряма підказка, що це заява покупця, а не перевірка особи. Панель працює і з HPOS, і з класичним екраном замовлень.

Вкладка «Log» — журнал усіх перевірок: «Confirmed», «Too young», «Blocked», «Order placed». У кожному рядку дата, потрібний і заявлений вік, дата народження, замовлення, країна і референс, який зшиває підтвердження з замовленням. Журнал фільтрується за подією, замовленням і датами. Записи тільки додаються, їх не редагують.

Pro: вік за країною доставки й сама доставка

Вікові межі різняться між країнами, тож Pro дає задати мінімальний вік за країною доставки — для всього обмеженого або для конкретної категорії. Правило країни може вік лише підняти, ніколи не знизити. Є стартові пресети для Німеччини, Австрії та Швейцарії, і вони навмисно суворі: 18+ на все обмежене, що їде в країну. Там, де закон дозволяє менше (наприклад, пиво й вино з 16), категорію треба знизити свідомо. У тесті 17-річний покупець, підтверджений для 16+, оформив замовлення з адресою в Німеччині, а з адресою в Швейцарії отримав відмову з точним текстом. На блоковому чекауті правило країни спрацьовує на «Place order»: при зміні країни банер не з’являється одразу, але замовлення відхиляється.

Друга частина Pro — доставка. Для замовлень з віковими товарами можна лишити тільки вибрані способи доставки — кур’єра з перевіркою документа при врученні або самовивіз — і приховати способи оплати, наприклад післяплату. Звичайний кошик бачить усі способи, як і раніше. У замовлення й у лист клієнту додається примітка «hand over only against an ID showing an age of 18 or more» (текст можна змінити). Ще в Pro — CSV-експорт журналу за період, автоматичне видалення старих записів і ваш логотип та колір у вікні перевірки.

Австрія й тютюн. § 2a TNRSG повністю забороняє поштовий продаж тютюнових і споріднених виробів в Австрії. Жодна перевірка віку цього не змінює, тож для тютюну й вейпів в Австрію плагін не рішення — такі товари туди не відвантажуються взагалі.

Як це працює — крок за кроком

  1. Для кожного товару в кошику визначається мінімальний вік: варіація, потім товар, потім його категорії з урахуванням батьківських; у Pro — ще правило країни доставки, яке може лише підняти вік.
  2. Якщо в кошику є товар з віком, а відповіді ще немає, покупець бачить вікно — на сторінці товару, при додаванні в кошик або на чекауті.
  3. Відповідь перевіряється на сервері. Доросла дата записується в сесію на вибраний строк і в журнал як «Confirmed»; замала — як «Too young», з лічильником спроб.
  4. Перед створенням замовлення сервер ще раз звіряє кошик з відповіддю — окремо для класичного чекауту і для блокового через Store API. Немає підтвердження — немає замовлення.
  5. Створене замовлення отримує дані перевірки, примітку, панель на екрані замовлення і рядок «Order placed» у журналі з тим самим референсом.
  6. У Pro до «вікового» замовлення застосовуються обмеження доставки й оплати і примітка для вручення.

Що під капотом

  • Блокування на сервері. Класичний чекаут — woocommerce_add_to_cart_validation, woocommerce_check_cart_items, woocommerce_checkout_process; блоковий — помилки кошика Store API і відмова під час створення замовлення. Однакове рішення в одному місці.
  • Вікно виводиться звичайним HTML у футері, без окремої збірки для блоків, і з’являється однаково на обох чекаутах.
  • Журнал — окрема таблиця, записи лише додаються. IP за замовчуванням хешується: повторні спроби з одного пристрою видно, а сам ідентифікатор не зберігається.
  • Сесія. Для гостя, який відповів у вікні, стартує сесія WooCommerce (cookie wp_woocommerce_session_*) — без неї не працював би ліміт спроб.
  • Хуки для розробника: ccav_product_required_age — останнє слово про вік товару, ccav_order_verified — замовлення щойно позначене як перевірене.
  • Видалення. Журнал за замовчуванням лишається: це доказ, що магазин питав. Щоб прибрати все, додайте define( 'CCAV_DELETE_DATA', true ); у wp-config.php перед видаленням.

Як встановити

  1. Завантажте архів catcode-age-verification-for-woocommerce-1.0.1.zip кнопкою вгорі сторінки: Плагіни → Додати новий → Завантажити плагін → Встановити → Активувати.
  2. WooCommerce → Age verification → «Rules»: задайте мінімальний вік кожній категорії з регульованими товарами. Окремі товари можна змінити на екрані редагування товару.
  3. «Settings»: оберіть, що захищати (лише товари з віком чи весь магазин), як покупець відповідає і скільки пам’ятати відповідь.
  4. Увімкніть «Age gate» і зробіть тестове замовлення з віковим товаром — на класичному і блоковому чекауті, якщо в магазині є обидва.
  5. Для Pro: вставте ключ з листа після оплати на вкладці «Licence» або натисніть «Try Pro free for 7 days».

Питання
про модуль

Не знайшли відповідь? Напишіть у Telegram — відповімо протягом робочого дня.

@catcode_support Налаштування, сумісність, активація
Плагін робить мій магазин відповідним закону?

Жоден плагін цього не гарантує, і ми цього не обіцяємо. Дата народження, введена в браузері, — це заява покупця, а не перевірка особи. Плагін фіксує, що магазин спитав, що відповіли й коли, і не пропускає замовлення, яке правило не проходить. Чи достатньо цього для ваших товарів, вирішує ваш юрист. Там, де потрібна справжня ідентифікація, вона відбувається при врученні — для цього в Pro є обмеження способів доставки.

Який вік ставити?

Це залежить від товару й країни доставки і лишається відповідальністю магазину. Для орієнтиру з офіційних текстів (09/2026): у Німеччині пиво, вино й ігристе — з 16, інший алкоголь — з 18 (§ 9 JuSchG), тютюн, нікотинові продукти й електронні сигарети — з 18, зокрема поштою (§ 10 JuSchG). У Швейцарії алкогольні напої — з 16, міцний алкоголь — з 18. Пресети Pro навмисно суворі: 18+ на все обмежене, тож пиво й вино 16+ треба знизити на категорії вручну.

Можна продавати тютюн і вейпи в Австрію?

Ні, і плагін цього не змінює: § 2a TNRSG повністю забороняє поштовий продаж тютюнових і споріднених виробів в Австрії. Перевірка віку тут не допоможе — такі товари просто не повинні відвантажуватись в Австрію.

Покупець закрив вікно. Він може замовити?

Ні. Вікно — лише зручний спосіб відповісти. Перевірка стоїть на сервері: закрите вікно, заблокований скрипт чи прямий запит до Store API закінчуються тією самою відмовою. Ми перевірили це на класичному чекауті з вимкненим JavaScript і на блоковому чекауті.

А якщо покупець почистить cookies?

Тоді вікно спитає знову, і ліміт невдалих спроб почнеться з нуля — так працює будь-яка перевірка в браузері. Замовлення без підтвердження все одно не пройде. Саме тому для товарів, де потрібна справжня перевірка, Pro обмежує доставку кур’єрами, які перевіряють документ.

Дата народження — це персональні дані?

Так. Вона зберігається в замовленні й у журналі, бо саме в цьому сенс запису. IP за замовчуванням хешується (або не пишеться зовсім), а Pro може видаляти старі записи журналу автоматично. Для гостя, який відповів у вікні, WooCommerce відкриває свою сесійну cookie — вона потрібна для ліміту спроб; згадайте її в політиці cookies як технічно необхідну.

Працює з блоковим чекаутом?

Так. Правило діє і через Store API: блоки кошика й чекауту показують помилку, а замовлення відхиляється ще до створення. Вікно виводиться звичайним HTML у футері й однаково з’являється на обох чекаутах.

У плагіні є українська мова?

Ні. Модуль зроблено для ринку Німеччини, Австрії та Швейцарії: інтерфейс і вікно для покупця — англійською та німецькою, мова підбирається за мовою сайту.

Скільки коштує?

Базова версія безкоштовна. Pro — 990 грн за рік, довший термін дешевший: 2 роки — 1 880 грн, 5 років — 3 710 грн. Автосписань немає. Куплена ліцензія лишає Pro-функції назавжди, а термін покриває оновлення й підтримку.

Не той варіант, що шукаєте?

Робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль