{"id":325011,"date":"2026-06-12T08:13:21","date_gmt":"2026-06-12T08:13:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/kookiok\/"},"modified":"2026-08-16T07:31:16","modified_gmt":"2026-08-16T07:31:16","slug":"kookiok","status":"publish","type":"plugin","link":"https:\/\/pt.wordpress.org\/plugins\/kookiok\/","author":23513876,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.0.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Kookiok - Free Cookie Consent Banner, No Limits (GDPR & CCPA)","header_author":"Kookiok","header_description":"Add the Kookiok GDPR cookie-consent banner to your site by pasting your Domain Group ID. Embed the cookie declaration with a shortcode or block.","assets_banners_color":"4256a2","last_updated":"2026-08-16 07:31:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/kookiok.com\/","header_author_uri":"https:\/\/kookiok.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":348,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"kookiok","date":"2026-06-12 08:12:40"},"1.1.0":{"tag":"1.1.0","author":"kookiok","date":"2026-06-13 10:46:01"},"1.2.0":{"tag":"1.2.0","author":"kookiok","date":"2026-06-15 17:49:14"},"1.2.1":{"tag":"1.2.1","author":"kookiok","date":"2026-06-22 20:49:14"},"1.3.0":{"tag":"1.3.0","author":"kookiok","date":"2026-08-16 07:31:16"}},"upgrade_notice":{"1.3.0":"<p>Adds WP Consent API support: Consent-API-aware plugins now gate themselves on your Kookiok banner\nwith no script annotation. Nothing changes if you do not use the WP Consent API plugin.<\/p>","1.2.1":"<p>Adds the plugin homepage link in the description. No functional changes.<\/p>","1.2.0":"<p>Updated plugin name, description, and tags. No functional changes.<\/p>","1.1.0":"<p>Adds German, French, Spanish, Hindi, and Italian translations.<\/p>","1.0.0":"<p>First stable release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3569735,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3569735,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3569735,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3569735,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"kookiok\/cookie-declaration":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"kookiok\/cookie-declaration","version":"1.0.0","title":"Cookie Declaration","category":"widgets","icon":"shield","description":"Embed the Kookiok cookie declaration table.","keywords":["cookies","consent","gdpr","privacy"],"textdomain":"kookiok","attributes":{"id":{"type":"string","default":""},"locale":{"type":"string","default":""}},"supports":{"html":false,"multiple":false,"align":["wide","full"]},"editorScript":"file:.\/index.js","render":"file:.\/render.php"}},"tagged_versions":["1.0.0","1.1.0","1.2.0","1.2.1","1.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3569735,"resolution":"1","location":"assets","locale":"","width":1760,"height":1180},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3569735,"resolution":"2","location":"assets","locale":"","width":1760,"height":1180},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3569735,"resolution":"3","location":"assets","locale":"","width":1760,"height":1180},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3569735,"resolution":"4","location":"assets","locale":"","width":1760,"height":1180},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3569735,"resolution":"5","location":"assets","locale":"","width":1760,"height":1180},"screenshot-6.gif":{"filename":"screenshot-6.gif","revision":3569735,"resolution":"6","location":"assets","locale":"","width":900,"height":563}},"screenshots":{"1":"One-field setup - paste your Domain Group ID, and the built-in installation check confirms the banner is placed correctly.","2":"The GDPR-ready consent banner on the front end - accept, reject, or fine-tune by category, in the visitor's language.","3":"The auto-updating cookie declaration table, embedded on a page with the block or shortcode.","4":"The native \"Cookie Declaration\" Gutenberg block - add it to any page or post, no code required.","5":"The first-run setup prompt that guides you to the one setting that matters.","6":"See it in action - paste your Domain Group ID, click Connect, and the GDPR consent banner goes live on your site."}},"plugin_section":[],"plugin_tags":[166295,20272,16626,35890,131785],"plugin_category":[54],"plugin_contributors":[266796],"plugin_business_model":[],"class_list":["post-325011","plugin","type-plugin","status-publish","hentry","plugin_tags-ccpa","plugin_tags-cookie-banner","plugin_tags-cookie-consent","plugin_tags-cookie-notice","plugin_tags-gdpr","plugin_category-security-and-spam-protection","plugin_contributors-kookiok","plugin_committers-kookiok"],"banners":{"banner":"https:\/\/ps.w.org\/kookiok\/assets\/banner-772x250.png?rev=3569735","banner_2x":"https:\/\/ps.w.org\/kookiok\/assets\/banner-1544x500.png?rev=3569735","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kookiok\/assets\/icon-128x128.png?rev=3569735","icon_2x":"https:\/\/ps.w.org\/kookiok\/assets\/icon-256x256.png?rev=3569735","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kookiok\/assets\/screenshot-1.png?rev=3569735","caption":"One-field setup - paste your Domain Group ID, and the built-in installation check confirms the banner is placed correctly."},{"src":"https:\/\/ps.w.org\/kookiok\/assets\/screenshot-2.png?rev=3569735","caption":"The GDPR-ready consent banner on the front end - accept, reject, or fine-tune by category, in the visitor's language."},{"src":"https:\/\/ps.w.org\/kookiok\/assets\/screenshot-3.png?rev=3569735","caption":"The auto-updating cookie declaration table, embedded on a page with the block or shortcode."},{"src":"https:\/\/ps.w.org\/kookiok\/assets\/screenshot-4.png?rev=3569735","caption":"The native \"Cookie Declaration\" Gutenberg block - add it to any page or post, no code required."},{"src":"https:\/\/ps.w.org\/kookiok\/assets\/screenshot-5.png?rev=3569735","caption":"The first-run setup prompt that guides you to the one setting that matters."},{"src":"https:\/\/ps.w.org\/kookiok\/assets\/screenshot-6.gif?rev=3569735","caption":"See it in action - paste your Domain Group ID, click Connect, and the GDPR consent banner goes live on your site."}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/kookiok.com\">Kookiok<\/a> is a free GDPR cookie consent platform for WordPress, and the free\nplan has no limits: no visitor caps, no page-view quotas, no paywalled features. Show a GDPR- and\nCCPA-compliant cookie consent\nbanner, block cookies before consent, and publish an auto-updating cookie declaration. Setup is one\nfield: create a free Kookiok account, paste your Domain Group ID, and the banner goes live (loaded\nfirst in the page head, synchronously - exactly what Kookiok's own installation verifier checks).<\/p>\n\n<p>Unlike cookie-consent plugins that cap their free plans by visitors or pages, Kookiok has no quotas:\nyour banner keeps showing on unlimited sites and page-views, with no paid tier and no credit card.<\/p>\n\n<ul>\n<li>Free with no limits - no visitor caps, no page-view quotas, no paywalled features, on unlimited sites.<\/li>\n<li>One-field setup - paste your Domain Group ID, no code required.<\/li>\n<li>GDPR and CCPA cookie consent - correct, compliant script placement, automatically.<\/li>\n<li>Auto cookie blocking - the consent script blocks cookies and trackers before consent.<\/li>\n<li>WP Consent API support - install the WP Consent API plugin and any plugin that speaks that API\nwaits for Kookiok consent on its own, with no script annotation at all. Burst Statistics is the\none we have verified end to end. Self-hosted trackers that do not speak the API still need the\n  data-ag-consent annotation step - see the script-blocking guide:\nhttps:\/\/api.kookiok.com\/docs\/consent-script\/script-blocking\/<\/li>\n<li>Built-in installation check - confirm the banner is present, first in the page head, and loaded\nsynchronously, right from the settings screen.<\/li>\n<li>Guided first-run setup - a friendly prompt points you to the one setting that matters.<\/li>\n<li>Embed the cookie declaration table with the <code>[kookiok_cookie_declaration]<\/code> shortcode or the\n\"Cookie Declaration\" block.<\/li>\n<li>Lightweight: the consent script handles banner display and cookie blocking; the plugin stays out of\nthe way (no heavy script-rewriting engine).<\/li>\n<li>Translated into English, Czech, Russian, German, French, Spanish, Hindi, and Italian (a translation template is included for adding more).<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your site to <strong>Kookiok<\/strong> (https:\/\/kookiok.com), a third-party consent-management\nservice, to display the cookie-consent banner and the cookie declaration. The banner does not work\nwithout a Kookiok account and a Domain Group ID.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li>On every front-end page view, the plugin loads the consent script from\n  https:\/\/cdn.kookiok.com\/consent.js?id=. Your Domain Group ID is included in\nthis request.<\/li>\n<li>The consent script records the visitor's consent choices and sends them to <code>https:\/\/api.kookiok.com<\/code>.<\/li>\n<li>The cookie-declaration block\/shortcode loads <code>https:\/\/cdn.kookiok.com\/declaration.js?id=&lt;id&gt;<\/code>, which\nfetches the cookie list from <code>https:\/\/api.kookiok.com<\/code>.<\/li>\n<\/ul>\n\n<p>By installing the plugin and entering your Domain Group ID you enable this integration. See the Kookiok\nTerms of Service (https:\/\/kookiok.com\/terms) and Privacy Policy (https:\/\/kookiok.com\/privacy).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to Settings \u2192 Kookiok.<\/li>\n<li>Paste your Domain Group ID, click Connect to verify it, then Save.<\/li>\n<li>(Optional) Add the <code>[kookiok_cookie_declaration]<\/code> shortcode or the \"Cookie Declaration\" block to your\nprivacy\/cookie-policy page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20find%20my%20domain%20group%20id%3F\"><h3>Where do I find my Domain Group ID?<\/h3><\/dt>\n<dd><p>In your Kookiok dashboard at https:\/\/app.kookiok.com. It is a 36-character ID.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20%2F%20optimization%20plugins%3F\"><h3>Does it work with caching \/ optimization plugins?<\/h3><\/dt>\n<dd><p>Yes, but exclude <code>consent.js<\/code> \/ <code>cdn.kookiok.com<\/code> from any \"defer \/ delay \/ combine JavaScript\"\nfeatures so the consent script keeps loading first and synchronously.<\/p><\/dd>\n<dt id=\"does%20kookiok%20work%20with%20the%20wp%20consent%20api%3F\"><h3>Does Kookiok work with the WP Consent API?<\/h3><\/dt>\n<dd><p>Yes. Install the free <a href=\"https:\/\/wordpress.org\/plugins\/wp-consent-api\/\">WP Consent API<\/a> plugin\nalongside Kookiok and no further setup is needed. Kookiok registers as the site's consent provider,\ndeclares the opt-in consent model, and publishes every consent choice through <code>wp_set_consent()<\/code> -\nat page load and again whenever the visitor changes their mind. Any plugin that supports the API\nthen gates itself automatically: Burst Statistics, for example, checks <code>wp_has_consent('statistics')<\/code>\nand listens for consent changes on its own, so it stops sending beacons before consent without you\nannotating a single script handle.<\/p>\n\n<p>Kookiok's categories map onto the Consent API's like this:<\/p>\n\n<ul>\n<li>Kookiok \"necessary\" -&gt; <code>functional<\/code> (always allowed - strictly necessary needs no consent).<\/li>\n<li>Kookiok \"preferences\" -&gt; <code>preferences<\/code>.<\/li>\n<li>Kookiok \"statistics\" -&gt; <code>statistics<\/code>, and also <code>statistics-anonymous<\/code>.<\/li>\n<li><p>Kookiok \"marketing\" -&gt; <code>marketing<\/code>.<\/p>\n\n<p>statistics-anonymous has no separate Kookiok category, so it follows the visitor's \"statistics\"\nchoice: Kookiok never reports more consent than the visitor actually gave.<\/p><\/li>\n<\/ul>\n\n<p>If the WP Consent API plugin is not installed, or you have not entered a Domain Group ID yet, no\nbridge script is loaded and no consent type is declared, so nothing on your site changes. (Kookiok\nstill tells the Consent API that it is a consent provider, which is what its Site Health check\nlooks for.)<\/p>\n\n<p>Kookiok declares the <code>optin<\/code> model, which is what GDPR requires. If you run Kookiok in a pure\nopt-out configuration, switch it with the <code>kookiok_consent_api_consent_type<\/code> filter:<\/p>\n\n<pre><code>add_filter( 'kookiok_consent_api_consent_type', function () { return 'optout'; } );\n<\/code><\/pre>\n\n<p>Under <code>optin<\/code>, a plugin that speaks the Consent API waits for the visitor to agree. That is the\ncorrect behaviour under GDPR, and it is worth knowing if your traffic is mostly outside its scope:\nthose plugins will stay quiet until the visitor accepts.<\/p><\/dd>\n<dt id=\"does%20it%20block%20self-hosted%20analytics%20like%20burst%20statistics%20or%20a%20self-hosted%20matomo%3F\"><h3>Does it block self-hosted analytics like Burst Statistics or a self-hosted Matomo?<\/h3><\/dt>\n<dd><p>The easiest route is the WP Consent API (see the previous question): Burst Statistics supports it,\nso with the WP Consent API plugin installed Burst gates itself on Kookiok consent and there is\nnothing to annotate.<\/p>\n\n<p>For trackers that do not support the API, it is partly automatic with one required step on your\nside. Known third-party trackers are blocked automatically, and so is a self-hosted Matomo\/Piwik\nthat uses the standard <code>matomo.<\/code> \/ <code>piwik.<\/code>\nfile or host names. But a tracker served from your own site's path - Burst Statistics under\n    wp-content\/plugins\/burst-statistics\/, for example - cannot be told apart from your theme's\nJavaScript by URL, so Kookiok will not guess: you must annotate its script handles with the\n    data-ag-consent attribute (a small <code>script_loader_tag<\/code> filter in your child theme). Kookiok then\nkeeps those scripts blocked until the visitor consents to the category. The attribute is a\nsupported, stable API, and since August 2026 annotated scripts are handed back under every privacy\nregulation, including CCPA's opt-out model, so annotation is safe to rely on for US traffic too.\nFull guide with a copy-paste WordPress filter, including which handles to gate:\nhttps:\/\/api.kookiok.com\/docs\/consent-script\/script-blocking\/<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20store%20any%20personal%20data%20itself%3F\"><h3>Does the plugin store any personal data itself?<\/h3><\/dt>\n<dd><p>No. The plugin stores only your Domain Group ID and a couple of settings in your WordPress options.\nVisitor consent is handled by the Kookiok service.<\/p><\/dd>\n<dt id=\"where%20is%20the%20plugin%27s%20source%20code%3F\"><h3>Where is the plugin's source code?<\/h3><\/dt>\n<dd><p>The plugin ships its full, human-readable source. The only compiled asset is the block's\n    build\/index.js, minified from <code>src\/edit.js<\/code> with @wordpress\/scripts (<code>npm run build<\/code>); the\nun-minified source is included in the plugin's own <code>src\/<\/code> directory.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>WP Consent API support. Install the free WP Consent API plugin alongside Kookiok and any plugin\nthat speaks that API waits for Kookiok consent on its own, with no script annotation. Kookiok\nregisters as the site's consent provider, declares the consent model, and republishes every\nconsent decision - including withdrawal - through <code>wp_set_consent()<\/code>. Burst Statistics is the\nintegration we verified end to end.<\/li>\n<li>Documented the annotation step required for self-hosted analytics (Burst Statistics, renamed\nself-hosted Matomo) and linked the full script-blocking guide.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Linked the plugin homepage (kookiok.com) from the description. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Clarified the plugin name and description: free cookie consent banner for GDPR and CCPA, with no\npage-view limits, no visitor caps, and no paywall.<\/li>\n<li>Refreshed the description and tags. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added German, French, Spanish, Hindi, and Italian translations.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>One-field connection via your Kookiok Domain Group ID, with a \"Connect\" check.<\/li>\n<li>GDPR-correct script placement (first in the page head, synchronous).<\/li>\n<li>Built-in installation self-diagnostic (\"Verify installation\").<\/li>\n<li>Guided first-run onboarding notice.<\/li>\n<li>Cookie declaration via <code>[kookiok_cookie_declaration]<\/code> shortcode and a Gutenberg block.<\/li>\n<li>Czech and Russian translations included.<\/li>\n<\/ul>","raw_excerpt":"Free cookie consent banner for GDPR &amp; CCPA: no page-view limits, no visitor caps, no paywall. One-field setup, auto cookie blocking + policy table.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/325011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=325011"}],"author":[{"embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kookiok"}],"wp:attachment":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=325011"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=325011"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=325011"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=325011"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=325011"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=325011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}