Get in touch
WordPress

UA Legal Pack — terms, cookie banner and checkout consent for WooCommerce

Чотири українські юридичні документи з однієї анкети, cookie-банер, який реально блокує лічильники до згоди, і згода в чекауті з доказовим записом на замовленні.

Download for free
Version
v1.2.0
Compatibility
WooCommerce 7.0+ · WordPress 6.2+
Platform
WordPress
UA Legal Pack — terms, cookie banner and checkout consent for WooCommerce

What each licence includes

Feature Free Pro
Four documents: public offer, returns terms, privacy policy, delivery and payment
Seller questionnaire: legal form, name, EDRPOU/RNOKPP, address, contacts, signatory, bank details, VAT
Pages are created as ordinary WordPress pages and stay editable
Document versioning: any edit bumps the version and archives the previous revision
Cookie banner: three categories, "Accept all" / "Reject" / "Customise", bar or block, your own colours and text
Real script blocking: GA4, GTM, Meta Pixel, TikTok, Hotjar, Clarity, Matomo don't run before consent
Consent checkbox in both classic and block checkout (Store API), "mandatory" mode can be switched off
An evidentiary record on the order: who, when, from which IP, and with which revision of each document
Consent log with filters and search, unlimited rows and CSV export in Pro
18+ age confirmation in the classic and block checkout, for the whole catalogue or categories; an age gate on pages
Revision archive: open the exact text the buyer agreed to

UA Legal Pack for WooCommerce is the legal minimum for a Ukrainian online store, from a single questionnaire: four documents, a cookie banner that genuinely blocks trackers, and checkout consent with an evidentiary record. No third-party services, no external requests at all.

UA Legal Pack for WooCommerce — seller questionnaire and document generation
WooCommerce → “UA Legal Pack”: the master switch and the seller questionnaire, whose values are inserted into the document templates.

An important caveat. The plugin generates drafts of documents with your company’s details inserted. This is not legal advice and not a guarantee of compliance: before publishing, have the text checked by a lawyer and fill in the gaps highlighted in yellow — they’re deliberately visible so an unfinished document never looks finished.

Documents

A public offer (public contract), returns and exchange terms, a privacy and personal data processing policy, and delivery and payment terms. The texts are written in Ukrainian, based on the laws “On Consumer Rights Protection”, “On Electronic Commerce”, “On Personal Data Protection” and the Civil Code’s articles on public contracts. Pages are created as ordinary WordPress pages and stay fully editable; “overwrite existing text” is off by default. Any change — from the generator or by hand in the editor — bumps the document’s version and archives the previous revision.

A cookie banner that actually blocks

Three categories (necessary / analytics / marketing), “Accept all”, “Reject” and “Customise” buttons, a bar or block layout, four positions, your own colours and text in Ukrainian and English. The key part: GA4, GTM, Meta Pixel, TikTok, Hotjar, Clarity, Matomo and others are rewritten to type="text/plain" and don’t execute until the visitor gives consent; after consent they start without a page reload.

UA Legal Pack cookie banner on the storefront
Banner on the storefront: “Customise”, “Reject” and “Accept all”. Until a choice is made, analytics and marketing don’t run.
Cookie category panel: necessary, analytics, marketing
Category panel: necessary cookies can’t be switched off, the visitor turns analytics and marketing on separately.

Checkout consent with proof

A checkbox in both classic and block checkout (Store API) with links to the generated documents; “mandatory” mode can be switched off — the checkout then behaves as if the plugin weren’t there. An evidentiary record stays on the order: who consented, when, from which IP, with which revision of each document, and under which entry number.

18+ age confirmation

For alcohol, tobacco, vapes, chemicals and other goods sold only to adults. When the cart holds such a product, the classic and block checkout show a required “I confirm that I am 18 or older” checkbox, and the order can’t be placed without it. Restrict the whole catalogue or chosen categories with their subcategories, with your own minimum age and wording. The confirmation, its text and time are saved on the order.

18+ age confirmation settings in WooCommerce
The whole catalogue or chosen categories, your own minimum age and checkbox text. Below: the Pro age gate.

In Pro, before an 18+ product or category page the shopper sees “Are you 18 or older?”. The answer is remembered for 30 days, “No” can lead to another page, and the page text stays in the HTML, so search engines index the shop as before.

Age gate on an 18+ product page
The age gate on a product page: one question and two buttons, with the cookie banner still reachable.

What’s free and what’s Pro

A fresh install is just the free version: generating all four documents, versioning and archiving revisions, a cookie banner with real script blocking, consent in both classic and block checkout, an evidentiary record on the order, a consent log with filters (the last 100 entries), and an 18+ age confirmation in the checkout. Nothing Pro switches itself on, and nothing goes dark after a week.

The evidentiary layer stays free forever. When Pro is switched off, no log entry is deleted — the log is evidence, and locking it away would make the pack useless exactly when it’s needed. What goes dark is only the display of entries older than a hundred, CSV export, and opening archived revisions.

Consent log on the free tier: 100-entry limit, CSV export with a Pro badge
Consent log without a licence: filters and search work, “Export to CSV” stays in place — greyed out, with a Pro badge and a line about what it gives you.
Pro licence block: status, list of Pro features and trial button
Licence block: current status, the full list of Pro features, and the trial button.

The trial only starts on your click

The “Try Pro for 7 days” button only asks for an e-mail and issues a genuine 7-day key — the same path as a purchased licence, just with an expiry date a week out. No card is needed, nothing is charged, and the trial never starts on its own.

One e-mail — and Pro switches on for 7 days. Once the trial ends, the free tier keeps working with no time limit.

The key is verified at catcode.com.ua on activation and again once a day. If our server is unreachable, Pro keeps working for another 14 days — an outage on our side shouldn’t shut down your store. The licence runs for a year (1–5 years) and includes updates and support for that period.

Technical requirements

WordPress 6.2+, WooCommerce 6.0+, PHP 7.4+. HPOS (its own order tables) and block checkout (Store API) are supported. The admin interface is in Ukrainian and English; the documents are Ukrainian only, since consumer text in English carries no legal weight for a Ukrainian buyer.

Version history

1.2.0 — 18+ age confirmation in the classic and block checkout (the whole catalogue or categories with subcategories, saved on the order); in Pro, an age gate on 18+ product and category pages.

1.1.0 — new Free/Pro model: a fresh install no longer switches anything on by itself, the trial only starts on a click and issues a genuine 7-day key, Pro features stay visible with a badge and explanation, one unobtrusive notice instead of a banner. A licence server client with a daily check and a 14-day offline allowance.
1.0.0 — first release: four documents from the questionnaire, versioning and a revision archive, a cookie banner with script blocking, consent in both classic and block checkout, a consent log.

Frequently asked questions

Are these ready-to-publish documents?

They are drafts with your details inserted, not legal advice and not a guarantee of compliance. Before publishing, a lawyer should review the text, and gaps are deliberately highlighted in yellow so an unfinished document never looks finished.

Why are the documents only in Ukrainian?

Consumer text in English carries no legal weight for a Ukrainian buyer. The plugin's interface is bilingual, the documents aren't.

Does the cookie banner really block trackers?

Yes. Scripts are rewritten to type="text/plain" and don't execute until the visitor gives consent; after consent they start without a page reload. Custom domains are added as a comma-separated list.

What happens to my edits if I generate the documents again?

"Overwrite existing text" is off by default, so manual edits survive a repeat generation. Any change to the text bumps the version and archives the previous revision.

What happens to consent records after the trial ends?

Nothing. Document generation, the cookie banner and checkout consent keep working, and no consent record is ever deleted — the log is evidence.

Can I sell alcohol or vapes with an age check?

Yes. Enable "Age confirmation (18+)" and choose the whole catalogue or categories. When such a product is in the cart, the order can't be placed without the "I am 18 or older" checkbox, and the confirmation is saved on the order. The age gate on pages is in Pro.

Questions about the module?

Message us on Telegram — we reply within the working day. We will help with setup, compatibility and key activation.

@catcode_support

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about your task and we will prepare an estimate.

Order a custom module