
Age Verification 18+ для WooCommerce — перевірка віку покупця на товарі й категорії, блокування чекауту, журнал для DE/AT/CH
Плагін для WooCommerce-магазинів з алкоголем, тютюном, вейпами, ножами, піротехнікою чи хімією для ринку Німеччини, Австрії та Швейцарії. Мінімальний вік задається категорії, товару чи варіації, покупець вказує дату народження лише тоді, коли в кошику справді є такий товар, а замовлення без підтвердження не проходить ні на класичному, ні на блоковому чекауті. Відповідь записується в замовлення і в журнал перевірок. Базова версія безкоштовна; Pro — вік за країною доставки з пресетами DE/AT/CH, обмеження способів доставки й оплати, примітка для доставки, CSV-експорт журналу.
- Сумісність
- WordPress 6.2+ · WooCommerce 7.0+ (перевірено на WordPress 7.1 і WooCommerce 11.1) · PHP 7.4+ · класичний і блоковий чекаут · HPOS і класичне сховище замовлень · інтерфейс англійською та німецькою
- Ліцензія
- один сайт, річна
- Тріал
- 7 днів, без картки, один на сайт
- Оновлено
- вересень 2026
Що є в Free,
а що дає Pro
Безкоштовна версія працює без обмеження в часі. 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.
Історія версій
Перший публічний реліз під назвою Age Verification 18+ for WooCommerce.
Разом з Age Verification 18+ для WooCommerce купують
4 модулі одним замовленням — на 40% дешевше, ніж окремо


Nova Poshta Premium — Нова Пошта для WooCommerce

Mono Acquiring — оплата карткою monobank для WooCommerce

Telegram-сповіщення і Viber/SMS покупцям для WooCommerce
Повний опис модуля
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 повністю забороняє поштовий продаж тютюнових і споріднених виробів в Австрії. Жодна перевірка віку цього не змінює, тож для тютюну й вейпів в Австрію плагін не рішення — такі товари туди не відвантажуються взагалі.
Як це працює — крок за кроком
- Для кожного товару в кошику визначається мінімальний вік: варіація, потім товар, потім його категорії з урахуванням батьківських; у Pro — ще правило країни доставки, яке може лише підняти вік.
- Якщо в кошику є товар з віком, а відповіді ще немає, покупець бачить вікно — на сторінці товару, при додаванні в кошик або на чекауті.
- Відповідь перевіряється на сервері. Доросла дата записується в сесію на вибраний строк і в журнал як «Confirmed»; замала — як «Too young», з лічильником спроб.
- Перед створенням замовлення сервер ще раз звіряє кошик з відповіддю — окремо для класичного чекауту і для блокового через Store API. Немає підтвердження — немає замовлення.
- Створене замовлення отримує дані перевірки, примітку, панель на екрані замовлення і рядок «Order placed» у журналі з тим самим референсом.
- У 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 перед видаленням.
Як встановити
- Завантажте архів
catcode-age-verification-for-woocommerce-1.0.1.zipкнопкою вгорі сторінки: Плагіни → Додати новий → Завантажити плагін → Встановити → Активувати. - WooCommerce → Age verification → «Rules»: задайте мінімальний вік кожній категорії з регульованими товарами. Окремі товари можна змінити на екрані редагування товару.
- «Settings»: оберіть, що захищати (лише товари з віком чи весь магазин), як покупець відповідає і скільки пам’ятати відповідь.
- Увімкніть «Age gate» і зробіть тестове замовлення з віковим товаром — на класичному і блоковому чекауті, якщо в магазині є обидва.
- Для Pro: вставте ключ з листа після оплати на вкладці «Licence» або натисніть «Try Pro free for 7 days».
Питання
про модуль
Не знайшли відповідь? Напишіть у Telegram — відповімо протягом робочого дня.
Плагін робить мій магазин відповідним закону?
Жоден плагін цього не гарантує, і ми цього не обіцяємо. Дата народження, введена в браузері, — це заява покупця, а не перевірка особи. Плагін фіксує, що магазин спитав, що відповіли й коли, і не пропускає замовлення, яке правило не проходить. Чи достатньо цього для ваших товарів, вирішує ваш юрист. Там, де потрібна справжня ідентифікація, вона відбувається при врученні — для цього в 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-функції назавжди, а термін покриває оновлення й підтримку.
Поки що жодного відгуку. Будьте першим.
Поки питань немає. Запитай — ми відповімо протягом 24 годин.
Не той варіант, що шукаєте?
Робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.
Замовити кастомний модуль
Купівля модуля
—


