{"id":369604,"date":"2026-09-17T22:12:49","date_gmt":"2026-09-17T22:12:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/boatapps-cookie-baker\/"},"modified":"2026-09-17T22:12:27","modified_gmt":"2026-09-17T22:12:27","slug":"boatapps-cookie-baker","status":"publish","type":"plugin","link":"https:\/\/tw.wordpress.org\/plugins\/boatapps-cookie-baker\/","author":14439374,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.1.1","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"BoatApps Cookie Baker","header_author":"BoatApps","header_description":"Lightweight, self-hosted cookie consent, prior script blocking and Google Consent Mode v2 for WordPress.","assets_banners_color":"104d7d","last_updated":"2026-09-17 22:12:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/boatapps.eu\/cookie-baker\/","header_author_uri":"https:\/\/boatapps.eu\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":35,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"sosinsky","date":"2026-09-17 22:12:27","revision":3701052}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3701052,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3701052,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3701052,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3701052,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3701052,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3701052,"resolution":"2","location":"assets","locale":"","width":1280,"height":720},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3701052,"resolution":"3","location":"assets","locale":"","width":1280,"height":720},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3701052,"resolution":"4","location":"assets","locale":"","width":1280,"height":720}},"screenshots":{"1":"Public Cookie Baker consent banner with equal, clearly visible choices.","2":"General settings with automatic consent renewal and WordPress privacy-policy integration.","3":"Editable consent categories; optional categories always start disabled for new visitors.","4":"Built-in service definitions and category assignment for prior blocking."}},"plugin_section":[],"plugin_tags":[223629,20272,16626,131785,396],"plugin_category":[54],"plugin_contributors":[280636],"plugin_business_model":[],"class_list":["post-369604","plugin","type-plugin","status-publish","hentry","plugin_tags-consent-mode","plugin_tags-cookie-banner","plugin_tags-cookie-consent","plugin_tags-gdpr","plugin_tags-privacy","plugin_category-security-and-spam-protection","plugin_contributors-sosinsky","plugin_committers-sosinsky"],"banners":{"banner":"https:\/\/ps.w.org\/boatapps-cookie-baker\/assets\/banner-772x250.png?rev=3701052","banner_2x":"https:\/\/ps.w.org\/boatapps-cookie-baker\/assets\/banner-1544x500.png?rev=3701052","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/boatapps-cookie-baker\/assets\/icon-128x128.png?rev=3701052","icon_2x":"https:\/\/ps.w.org\/boatapps-cookie-baker\/assets\/icon-256x256.png?rev=3701052","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/boatapps-cookie-baker\/assets\/screenshot-1.png?rev=3701052","caption":"Public Cookie Baker consent banner with equal, clearly visible choices."},{"src":"https:\/\/ps.w.org\/boatapps-cookie-baker\/assets\/screenshot-2.png?rev=3701052","caption":"General settings with automatic consent renewal and WordPress privacy-policy integration."},{"src":"https:\/\/ps.w.org\/boatapps-cookie-baker\/assets\/screenshot-3.png?rev=3701052","caption":"Editable consent categories; optional categories always start disabled for new visitors."},{"src":"https:\/\/ps.w.org\/boatapps-cookie-baker\/assets\/screenshot-4.png?rev=3701052","caption":"Built-in service definitions and category assignment for prior blocking."}],"raw_content":"<!--section=description-->\n<p>BoatApps Cookie Baker provides an accessible consent banner and blocks configured optional scripts and embeds until the visitor grants the appropriate consent category.<\/p>\n\n<ul>\n<li>Equal Accept, Reject and Settings choices.<\/li>\n<li>Necessary, functional, analytics and marketing categories.<\/li>\n<li>Consent withdrawal and a reusable settings button.<\/li>\n<li>Automatic consent renewal after material category, purpose, service or blocking changes.<\/li>\n<li>First-party, local preference storage with no traffic limits.<\/li>\n<li>Definitions for Google Analytics, Tag Manager, Meta Pixel, YouTube, Vimeo and Maps.<\/li>\n<li>Custom blocking patterns and Google Consent Mode v2.<\/li>\n<li>Accessible keyboard navigation, responsive layouts and local diagnostics.<\/li>\n<li>Live banner preview and safe restore-to-defaults control.<\/li>\n<li>WordPress gettext support plus a documented translation API for multilingual add-ons.<\/li>\n<li>No external account, telemetry or cloud service is required for consent management.<\/li>\n<li>Optional Freemius connection for product updates and add-on licensing, with a clearly presented Skip option.<\/li>\n<\/ul>\n\n<p>Cookie Baker is a technical tool and does not constitute legal advice. Website owners remain responsible for identifying technologies, choosing lawful settings and maintaining their privacy documentation.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Cookie Baker's consent banner, preference storage and script blocking run locally on the WordPress website and do not require a BoatApps account.<\/p>\n\n<p>The plugin includes the Freemius SDK for optional product update notifications, account management and licensing of separately distributed add-ons. On activation, an administrator can choose whether to share installation information with Freemius or select <strong>Skip<\/strong>. Refusing the connection does not disable Cookie Baker Free's consent features.<\/p>\n\n<p>If the administrator opts in, Freemius may receive the information listed on its permission screen, including basic administrator profile, website and WordPress environment information. This communication is governed by the <a href=\"https:\/\/freemius.com\/privacy\/\">Freemius Privacy Policy<\/a> and <a href=\"https:\/\/freemius.com\/terms\/\">Freemius Terms<\/a>.<\/p>\n\n<p>Cookie Baker also contains local matching definitions for Google Analytics, Google Tag Manager, Meta Pixel, YouTube, Vimeo and Google Maps. These definitions are text patterns used to recognize and block scripts or embeds already added to the website. Cookie Baker does not contact these services, download data from them or send data to them by itself. If the website owner has installed one of these services, the visitor's browser may connect to that service only when its existing script or embed is allowed to run. Use of those separately installed services is governed by their respective terms and privacy policies:<\/p>\n\n<ul>\n<li>Google services: <a href=\"https:\/\/policies.google.com\/terms\">Google Terms of Service<\/a> and <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a>.<\/li>\n<li>Meta Pixel: <a href=\"https:\/\/www.facebook.com\/legal\/commercial_terms\">Meta Commercial Terms<\/a> and <a href=\"https:\/\/www.facebook.com\/privacy\/policy\/\">Meta Privacy Policy<\/a>.<\/li>\n<li>Vimeo: <a href=\"https:\/\/vimeo.com\/terms\">Vimeo Terms of Service<\/a> and <a href=\"https:\/\/vimeo.com\/privacy\">Vimeo Privacy Policy<\/a>.<\/li>\n<\/ul>\n\n<h3>Marking content manually<\/h3>\n\n<pre><code>&lt;script type=\"text\/plain\" data-bacb-category=\"analytics\" src=\"https:\/\/example.com\/analytics.js\"&gt;&lt;\/script&gt;\n<\/code><\/pre>\n\n<p>For WordPress-enqueued scripts, return <code>functional<\/code>, <code>analytics<\/code> or <code>marketing<\/code> from the <code>bacb_script_category<\/code> filter.<\/p>\n\n<p>Use <code>[bacb_cookie_settings]<\/code> to render a button that reopens preferences.<\/p>\n\n<p>JavaScript: <code>CookieBaker.hasConsent('analytics')<\/code>, <code>CookieBaker.getConsent()<\/code>, <code>CookieBaker.open()<\/code> and <code>CookieBaker.onConsent('analytics', callback)<\/code>. Events: <code>bacb:ready<\/code> and <code>bacb:consent<\/code>.<\/p>\n\n<p>PHP: <code>boatapps_cookie_baker_has_consent( 'analytics' )<\/code>. Server-side checks are not reliable for full-page cached HTML.<\/p>\n\n<h3>Translations<\/h3>\n\n<p>Static plugin interface text uses the standard WordPress gettext system and the <code>boatapps-cookie-baker<\/code> text domain. A POT template is included in <code>\/languages<\/code> and community translations can be supplied through WordPress.org language packs.<\/p>\n\n<p>Banner content saved in the database is dynamic. Translation plugins or custom integrations can register it through <code>bacb_register_translatable_strings<\/code> and return the current-language value through <code>bacb_translate_string<\/code>. The <code>bacb_privacy_page_id<\/code> filter can select a language-specific privacy policy page. These neutral APIs are intended to support the future BoatApps Multilingual add-on without coupling Cookie Baker Free to WPML or Polylang.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the folder to <code>\/wp-content\/plugins\/<\/code> or install its ZIP in WordPress.<\/li>\n<li>Activate <strong>BoatApps Cookie Baker<\/strong>.<\/li>\n<li>Open <strong>Cookie Baker<\/strong> in WordPress admin.<\/li>\n<li>Review text, privacy policy, categories and blocking definitions.<\/li>\n<li>Purge caches and test all choices in a private browser window.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20guarantee%20gdpr%20compliance%3F\"><h3>Does this guarantee GDPR compliance?<\/h3><\/dt>\n<dd><p>No. It provides technical controls. Compliance depends on the website, configuration, documentation and jurisdiction.<\/p><\/dd>\n<dt id=\"does%20it%20send%20visitor%20data%20to%20boatapps%20or%20limit%20page%20views%3F\"><h3>Does it send visitor data to BoatApps or limit page views?<\/h3><\/dt>\n<dd><p>No. The free plugin works locally without traffic limits.<\/p><\/dd>\n<dt id=\"is%20it%20a%20google-certified%20cmp%3F\"><h3>Is it a Google-certified CMP?<\/h3><\/dt>\n<dd><p>No. Consent Mode v2 support is not equivalent to Google CMP certification or IAB TCF participation.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Removed arbitrary custom CSS input and switched dynamic admin styling to the WordPress enqueue API.<\/li>\n<li>Replaced shutdown-dependent response buffering with a controlled template wrapper.<\/li>\n<li>Prefixed the public settings shortcode and aligned translation packaging with WordPress.org language packs.<\/li>\n<li>Clarified that known-service definitions only match locally and do not initiate external connections.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Integrated the Freemius SDK for the WordPress.org parent and Cookie Baker Pro add-on.<\/li>\n<li>Added licensed add-on delivery, account management and update support without changing Free consent functionality.<\/li>\n<\/ul>\n\n<h4>1.1.7<\/h4>\n\n<ul>\n<li>Updated the Pro comparison to the production Smart Scanner and automation feature set.<\/li>\n<li>Removed roadmap claims for features that are not part of the current product.<\/li>\n<\/ul>\n\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Added a versioned integration contract and lifecycle hook for Cookie Baker Pro.<\/li>\n<li>Added a privacy-preserving event transport that remains inactive unless a Pro analytics provider enables it.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Renamed the company, author, plugin slug, text domain, translation package and public PHP API to BoatApps.<\/li>\n<li>Updated product artwork, documentation and WordPress.org assets to BoatApps branding.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Passed the official WordPress Plugin Check with no errors.<\/li>\n<li>Added a tested Polish language pack for the public consent experience and primary settings screens.<\/li>\n<li>Improved translator guidance, admin output escaping and uninstall naming conventions.<\/li>\n<li>Added standard and high-resolution WordPress.org banner artwork.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Constrained the custom WordPress admin menu logo to the native 20\u00d720 icon size.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Replaced the generic WordPress shield menu icon with the Cookie Baker application logo.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Migrated the plugin slug, main file, text domain, translation template and public PHP API to BoatApps naming.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added an extensible service registry and dynamic translation API.<\/li>\n<li>Added a live banner preview and a guarded restore-defaults action.<\/li>\n<li>Added an honest Free\/Pro comparison page and unobtrusive Pro notices.<\/li>\n<li>Added <code>CookieBaker.onConsent()<\/code> and support for dynamically inserted blocked content.<\/li>\n<li>Preserved script types, including JavaScript modules, when consent activates them.<\/li>\n<li>Improved consent withdrawal behavior and accessibility details.<\/li>\n<li>Updated visible product branding to BoatApps while preserving compatibility identifiers.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Replaced the manual consent version with automatic material-change detection.<\/li>\n<li>Added a manual consent renewal action.<\/li>\n<li>Added the Cookie Baker logo and WordPress.org icon assets.<\/li>\n<li>Fixed HTTPS asset URLs behind reverse proxies.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Lightweight, self-hosted cookie consent, prior script blocking and Google Consent Mode v2 for WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/369604","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=369604"}],"author":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sosinsky"}],"wp:attachment":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=369604"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=369604"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=369604"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=369604"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=369604"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=369604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}