=== Checkpost Age Verification ===
Contributors: synergythemes
Tags: age verification, age gate, woocommerce, popup, alcohol
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.0
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Add an age verification popup that asks visitors to confirm their age or enter their date of birth before they can view your site.

== Description ==

Checkpost decides whether to show the age gate in the visitor's browser, using that visitor's own cookie, so one cached copy of a page is correct for every visitor and there is no caching mode to configure. It has been tested with the page cache in W3 Total Cache. The popup can appear in the center of the screen, as a full-width bar at the top or bottom, or as a full-page takeover, and the rest of the page stays blocked in every position. You set it up with a live preview beside the settings, and it makes no external requests: nothing loads from a CDN or any other third party.

Visitors confirm their age with a Yes / No choice or by entering their date of birth. It suits liquor stores, vape and CBD shops, cannabis dispensaries, and adult content sites, with or without WooCommerce.

**Core features**

* Yes/No confirmation, or full date-of-birth input via dropdowns or manual typed entry — your choice
* Optional "Require Confirmation Checkbox" — an extra checkbox visitors must tick before the confirm/submit button becomes clickable, with an admin-editable label. Off by default; unchecked again on every fresh popup display; "No" always stays clickable regardless
* Configurable minimum age (18, 21, or any value)
* Visitors who don't meet the age requirement see your underage message and stay blocked, or are redirected to a URL of your choice
* Remembers verified visitors via a browser cookie (session, 30/90 days, 1 year, or a custom duration)
* Gate the entire site, or only specific pages, posts and products
* WooCommerce: gate specific product categories only (e.g. "Alcohol", "Vape") instead of the whole store
* Works with or without WooCommerce installed
* Enable/disable separately for mobile devices
* Full design control: logo (with adjustable size), overlay style (none / solid / dark tint / blur), colors, font, custom heading & body text
* Popup Position: classic centered popup, a full-width Top or Bottom Bar, or a Full Page takeover — the rest of the page stays blocked in every mode
* Entrance Animation (None / Fade / Slide / Zoom) plays once when the gate first appears; Slide arrives from the matching edge for each position, Zoom is unavailable for the two Bar positions, and every option is automatically skipped for visitors with a reduced-motion preference set
* Popup Width and Popup Padding presets (Small / Medium / Large / Extra Large each)
* Popup background can be transparent (no card) instead of a solid color, for a fully custom look
* One-click Popup Content Color presets (Dark / Light) fill in heading, body and button colors as a starting point — still fully editable, and never applied automatically by any other setting
* Separate Button Hover Text Color, alongside Button Background/Text/Hover Background, for full control over the hover state
* Font size presets (Small / Medium / Large / Extra Large) scale the heading, body text, buttons and date-of-birth fields together
* Font can match your active theme automatically, or pick from a set of web-safe fonts
* Optional background image behind the popup
* Three starter templates (Minimal, Dark/Premium, Colorful) — fully editable after applying
* Live preview in the admin settings page
* Translation-ready
* Runs entirely on your own server, with no external requests

== Installation ==

1. In wp-admin, go to Plugins → Add New, search for "Checkpost Age Verification", then click Install Now and Activate. Or upload the plugin folder to `/wp-content/plugins/` and activate it from the Plugins screen.
2. Go to the "Checkpost" menu in wp-admin to configure the gate.

== Frequently Asked Questions ==

= Does this work with caching plugins? =

Yes. The gate markup is always rendered so cached HTML is identical for every visitor; whether it's shown or hidden is decided entirely in the browser by reading a cookie, so full-page caching does not leak a verified visitor's status to anyone else (or vice versa).

One exception: if you turn off "Also show the age gate on mobile devices" (Pages / Products tab), that choice is made on the server, per device. In that case, enable your caching plugin's separate cache for mobile devices so desktop and mobile visitors are not served each other's cached pages.

= Does this require WooCommerce? =

No. WooCommerce is only needed if you want to gate specific product categories. The plugin detects WooCommerce automatically and simply hides that option if it isn't active.

= Can I change the popup's stacking order (z-index) if it conflicts with my theme? =

Yes, under Checkpost → Advanced.

== Screenshots ==

1. Front-end age verification popup with customizable text, logo, background image, and Yes / No buttons.
2. General settings for enabling age verification, choosing a verification method, setting the minimum age, and configuring visitor behavior.
3. Layout settings for popup position, entrance animation, popup width, and padding, with a live preview.
4. Style settings with customizable templates, overlay, background image, logo, colors, typography, and live preview.
5. Control where the gate appears — the whole site, specific pages and posts, or selected WooCommerce product categories.
6. Advanced settings for overlay z-index, test mode, and plugin uninstall behavior.

== Changelog ==

= 1.0.0 =
* Initial release.
