{"id":338903,"date":"2026-07-20T11:17:18","date_gmt":"2026-07-20T11:17:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/kipphard-age-verification\/"},"modified":"2026-07-20T11:17:07","modified_gmt":"2026-07-20T11:17:07","slug":"kipphard-age-verification","status":"publish","type":"plugin","link":"https:\/\/snd.wordpress.org\/plugins\/kipphard-age-verification\/","author":23523872,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.4.3","stable_tag":"0.4.3","tested":"7.0.2","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Age Verification \u2013 GDPR Age Gate for WooCommerce","header_author":"Andr\u00e9 Kipphard","header_description":"Shows a GDPR-compliant full-screen age gate overlay before visitors can access content. Date-of-birth verification runs entirely in the browser \u2014 no personal data is sent to the server.","assets_banners_color":"fffbf9","last_updated":"2026-07-20 11:17:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/kipphard.com\/products\/altersverifikation","header_author_uri":"https:\/\/kipphard.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4.3":{"tag":"0.4.3","author":"kipphard","date":"2026-07-20 11:17:07"}},"upgrade_notice":{"0.4.0":"<p>Renamed to Kipphard Age Verification; unique prefixes for all options\/hooks; no license-gated code remains in the free build.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3614626,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3614626,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3614626,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3614626,"resolution":"1","location":"assets","locale":"","width":1500,"height":930},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3614626,"resolution":"2","location":"assets","locale":"","width":1500,"height":930},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3614626,"resolution":"3","location":"assets","locale":"","width":1500,"height":930},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3614626,"resolution":"4","location":"assets","locale":"","width":1500,"height":930}},"screenshots":{"1":"The age gate overlay \u2014 full-screen, customisable heading, message, and buttons.","2":"Date-of-birth entry mode with day \/ month \/ year fields.","3":"The admin settings page: scope, verification mode, text, design, and cookie duration.","4":"A note about the WooCommerce Pro add-on for site owners who need category-level gating."}},"plugin_section":[],"plugin_tags":[70877,5616,131395,131785,286],"plugin_category":[45],"plugin_contributors":[270348],"plugin_business_model":[],"class_list":["post-338903","plugin","type-plugin","status-publish","hentry","plugin_tags-age-gate","plugin_tags-age-verification","plugin_tags-altersverifikation","plugin_tags-gdpr","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-kipphard","plugin_committers-kipphard"],"banners":{"banner":"https:\/\/ps.w.org\/kipphard-age-verification\/assets\/banner-772x250.png?rev=3614626","banner_2x":"https:\/\/ps.w.org\/kipphard-age-verification\/assets\/banner-1544x500.png?rev=3614626","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kipphard-age-verification\/assets\/icon-256x256.png?rev=3614626","icon_2x":"https:\/\/ps.w.org\/kipphard-age-verification\/assets\/icon-256x256.png?rev=3614626","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kipphard-age-verification\/assets\/screenshot-1.png?rev=3614626","caption":"The age gate overlay \u2014 full-screen, customisable heading, message, and buttons."},{"src":"https:\/\/ps.w.org\/kipphard-age-verification\/assets\/screenshot-2.png?rev=3614626","caption":"Date-of-birth entry mode with day \/ month \/ year fields."},{"src":"https:\/\/ps.w.org\/kipphard-age-verification\/assets\/screenshot-3.png?rev=3614626","caption":"The admin settings page: scope, verification mode, text, design, and cookie duration."},{"src":"https:\/\/ps.w.org\/kipphard-age-verification\/assets\/screenshot-4.png?rev=3614626","caption":"A note about the WooCommerce Pro add-on for site owners who need category-level gating."}],"raw_content":"<!--section=description-->\n<p><strong>Kipphard Age Verification<\/strong> protects your WordPress site or specific pages from access by underage visitors. A full-screen overlay appears before any content is visible. The visitor confirms their minimum age by clicking a button or entering their date of birth.<\/p>\n\n<p><strong>What this plugin does:<\/strong><\/p>\n\n<ul>\n<li>Full-screen fail-safe overlay \u2014 visible by default via CSS; JavaScript removes it only when a valid confirmation cookie exists or the visitor confirms<\/li>\n<li>Two verification modes: simple confirmation (Yes \/ No) or date-of-birth entry<\/li>\n<li>Date-of-birth calculation runs entirely in the visitor's browser \u2014 no personal data is ever sent to the server<\/li>\n<li>Configurable scope: entire website or specific pages by ID<\/li>\n<li>Customisable overlay background colour, accent colour (buttons), and optional logo<\/li>\n<li>Configurable decline action: show an inline message or redirect to a URL<\/li>\n<li>Functional cookie (<code>kipphard_age_verification_ok=1<\/code>) stores confirmation for 1\u20133650 days (no tracking, no profiling, no PII)<\/li>\n<li>Optional branding notice in the overlay footer \u2014 can be switched off in the settings<\/li>\n<li>No external dependencies, no CDN, no third-party requests<\/li>\n<\/ul>\n\n<p><strong>What this plugin does NOT do:<\/strong><\/p>\n\n<p>This overlay is a confirmation barrier \u2014 it honestly communicates an age restriction and makes access harder for underage visitors. It is <strong>not<\/strong> a hard identity verification. A genuine age check requires ID-based methods (document scan, PostIdent, or equivalent). For legally critical content regulated by youth-protection law, consult a qualified lawyer. Pro-roadmap items include ID-based verification integrations.<\/p>\n\n<p><strong>Free vs. Pro:<\/strong><\/p>\n\n<p>The free version gates the entire site or individual pages, with full control over text, design, and cookie duration. <strong>Age Verification Pro<\/strong> adds:<\/p>\n\n<ul>\n<li>WooCommerce integration: gate only products in specific categories<\/li>\n<\/ul>\n\n<p><em>Hinweis (DE): Dieses Plugin zeigt einen DSGVO-konformen Vollbild-Overlay (Age Gate), bevor Besucher auf deine Inhalte zugreifen k\u00f6nnen. Die Altersberechnung erfolgt ausschlie\u00dflich im Browser \u2013 keine personenbezogenen Daten werden an den Server \u00fcbertragen. Die Benutzeroberfl\u00e4che ist auf Deutsch verf\u00fcgbar.<\/em><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>kipphard-age-verification<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it from the Plugins screen in your WordPress admin.<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Go to <strong>Age Verification<\/strong> in the admin menu and configure your settings.<\/li>\n<li>Save \u2014 the overlay is active immediately.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20a%20legally%20binding%20age%20check%3F\"><h3>Is this a legally binding age check?<\/h3><\/dt>\n<dd><p>No. This overlay is a confirmation barrier that makes it harder for underage visitors to access content and provides an honest notice. It is not a hard identity verification. A genuine check requires ID-based methods (document scan, PostIdent, or equivalent). For content regulated by youth-protection law, get qualified legal advice.<\/p><\/dd>\n<dt id=\"is%20any%20personal%20data%20stored%20or%20transmitted%3F\"><h3>Is any personal data stored or transmitted?<\/h3><\/dt>\n<dd><p>No. When using the \"date of birth\" mode, the date is calculated entirely in the visitor's browser and never sent to the server. After confirmation, only an anonymous functional cookie (<code>kipphard_age_verification_ok=1<\/code>) is set.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20javascript%20is%20disabled%3F\"><h3>What happens if JavaScript is disabled?<\/h3><\/dt>\n<dd><p>The overlay stays visible (fail-safe). Content is inaccessible without JavaScript.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20woocommerce%3F\"><h3>Does the plugin work with WooCommerce?<\/h3><\/dt>\n<dd><p>The free version gates the entire site or specific pages. The Pro version enables gating at the WooCommerce product-category level.<\/p><\/dd>\n<dt id=\"can%20i%20customise%20the%20design%3F\"><h3>Can I customise the design?<\/h3><\/dt>\n<dd><p>Yes. You can choose the overlay background colour, accent colour, and an optional logo directly in the settings, and you can switch off the branding notice in the overlay footer.<\/p><\/dd>\n<dt id=\"where%20and%20how%20is%20the%20cookie%20set%3F\"><h3>Where and how is the cookie set?<\/h3><\/dt>\n<dd><p>The cookie <code>kipphard_age_verification_ok=1<\/code> is set by JavaScript after confirmation \u2014 no server request is involved. It applies to path <code>\/<\/code>, has a configurable lifetime (1\u20133650 days), and is marked <code>SameSite=Lax<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.4.3<\/h4>\n\n<ul>\n<li>Changed: the WordPress.org build no longer bundles translation files (.po\/.mo). Translations are delivered as language packs from translate.wordpress.org (WordPress.org review feedback).<\/li>\n<\/ul>\n\n<h4>0.4.2<\/h4>\n\n<ul>\n<li>Changed: the critical overlay CSS is now attached via wp_add_inline_style() instead of being echoed as a raw style tag on wp_head (WordPress.org review feedback).<\/li>\n<\/ul>\n\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Fixed: the bundled German translation now loads. WordPress only auto-loads translations shipped as language packs, so the de_DE catalog included with the plugin was never used.<\/li>\n<li>Fixed: the age gate and admin screens used German source strings, so English sites saw a German heading and menu. English is now the source language and German comes from the translation.<\/li>\n<li>Fixed: the date-of-birth day and month placeholders were hardcoded German (\"TT\"\/\"MM\") and could not be translated.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Renamed to Kipphard Age Verification. Unique plugin-specific prefixes for all options, nonces, admin-post actions, the cookie name, and filter hooks. The branding-notice toggle is now a free setting (previously gated behind a non-functional license check). Removed the geo-targeting and custom CSS fields, which were unimplemented placeholders never gated by any real Pro mechanism. The only remaining Pro feature is genuine: WooCommerce product-category gating, shipped as a separate add-on class.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Shared Kipphard design system (kip-ui) for a consistent, theme-safe look across all Kipphard plugins.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Shared design system integration; admin UI polish.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>English source baseline with a German (de_DE) translation.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Full-screen fail-safe overlay (CSS visible by default; JS removes it on valid cookie or confirmation).<\/li>\n<li>Two modes: simple confirmation (Yes \/ No) and date-of-birth entry.<\/li>\n<li>Configurable scope: entire site or specific pages by ID.<\/li>\n<li>Customisable overlay colour, accent colour, logo URL, and button labels.<\/li>\n<li>Configurable decline action: show message or redirect to URL.<\/li>\n<li>Functional cookie with configurable duration (no PII, no tracking).<\/li>\n<li>Admin settings page with Pro upgrade teaser.<\/li>\n<li>Pro hooks: WooCommerce category gating, geo-targeting, white-label, custom CSS.<\/li>\n<li>No external dependencies, no CDN, no third-party requests.<\/li>\n<\/ul>","raw_excerpt":"GDPR-compliant full-screen age gate for WordPress and WooCommerce. Date-of-birth checks run in the browser \u2014 no personal data reaches the server.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/338903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=338903"}],"author":[{"embeddable":true,"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kipphard"}],"wp:attachment":[{"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=338903"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=338903"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=338903"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=338903"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=338903"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/snd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=338903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}