# WeePie Cookie Allow Plugin

> WeePie Plugins is a webRtistik product, (c) 2013 - 2023<br/>
> If you have any questions and/or suggestions, feel free to contact us:<br/> > [http://www.weepie-plugins.com/contact/](http://www.weepie-plugins.com/contact/)<br/>
> Vincent Weber, Mari&euml;tte Timmermans<br/>

## [v3.4.7]

fixed: data table stylings responsiveness<br/>
fixed: custom styles not working (e.g. button colors not loaded)<br/>
fixed: SVG icon titles not translatable and removed WeePie Cookie Allow text from it<br/>
fixed: the default text for the "click to accept all cookies" button in the placeholder has a typo

## [v3.4.6]

fixed: PHP 7.4 compatibility syntax error regarding unexpected | character

## [v3.4.5]

new: choose to block YouTube no-cookie embeds<br/>
new: compatibility for the Agile Store Locator plugin<br/>
new: 3rd party: Matomo Tag Manager (analytical)<br/>
new: 3rd party: Pixel your site (analytical)<br/>
new: 3rd party: Google reCAPTCHA (other)<br/>
new: 3rd party: Google Analytics (ecommerce) (analytical)<br/>
new: 3rd party: Microsoft Clarity (analytical)<br/>
new: 3rd party: WhatsApp (other)<br/>
fixed: icons sometimes trigger a 403 error (PHP file direct access)
fixed: PHP 8 deprecated warnings<br/>
improved: new Framework use of `wp_add_inline_script()` and `wp_add_inline_style()`

## [v3.4.4]

new: option to fetch the bar/box HTML with the WP rest API

## [v3.4.3]

fixed: WPML installs not fetching correct language for the bar/box/popup<br/>
fixed: console error when HTML comments are stripped and script is wrapped<br/>
fixed: frontend ajax context param not correct

## [v3.4.2]

fixed: compatibility error with MaxMind GeoIP2 library in WordFence<br/>
fixed: Avada theme compatibility where the wrapper HTML was not loaded

## [v3.4.1]

fixed: revert last change in the regex pattern for inline JavaScript
fixed: changelog url in admin settings not correct

## [v3.4]

new: possibility to show the closing (X) inside the bar/box<br/>
new: possibility to show the cookie settings pop-up trigger as hyperlink<br/>
new: possibility to show a configurable reconsider icon<br/>
new: configurable title attribute for the settings icon in the bar/box<br/>
fixed: CCPA logic not working with caching (bar/box/pop-up HTML now loaded client-side)<br/>
fixed: typo in consent log settings page<br/>
fixed: button CSS for the cookie category settings box<br/>
fixed: remove not working with caching warnings<br/>
fixed: name space ajax context for consent logging<br/>
fixed: inline JavaScript with HTML tags inside are not blocked<br/>
fixed: PHP warning Invalid argument supplied for foreach<br/>
fixed: saving cookie categories fails while consent has been given already<br/>
fixed: settings icon style field not being hided<br/>
added: JavaScript frontend custom event `wpca.popup:show`<br/>
added: JavaScript frontend custom event `wpca.popup:hide`

## [v3.3]

new: possibility to export logged consents<br/>
new: possibility to delete logged consent by a website visitor<br/>
fixed: missing alt attributes for settings and closing icons<br/>
fixed: make sure the `wpcaData` script is not blocked<br/>
fixed: iFrame blocking logic caused `window.history` duplicate entries<br/>
fixed: HTML processed when cookies before consent is 3rd parties<br/>
fixed: settings popup not rendered when automatic cookie blocking disabled<br/>
fixed: Microsoft Edge browser shows unsafe content<br/>
fixed: regex pattern for iFrames not working with iFrame URL's with a `q`<br/>
fixed: blocking logic optimizations<br/>
fixed: improve settings page text<br/>
fixed: typo in the default text for the bar/box content<br/>
fixed: removed corrupt code in frontend JavaScript<br/>
fixed: revert code which disables consent logs for logged in users<br/>
fixed: Avada theme placing the bar/box HTML in a hidden `<div>`<br/>
fixed: placeholder data attribute encoding caused not loading of Google Maps<br/>
fixed: invalid new line placholders are replaced<br/>
fixed: bar/box not visible when disabling automatic cookie blocking<br/>
fixed: compatibility list not updated after plugin upgrade<br/>
fixed: template variable escaping<br/>
Added: jQuery functions to handle the processing button states

## [v3.2.15]

new: possibility to switch the position of decline button (left or right to the accept button)<br/>
new: compatibility with the WP Google Map Plugin<br/>
fixed: Fusion (avada) Google Maps compatibility<br/>
fixed: Fusion (avada) Google Maps not showing placeholder<br/>
fixed: Divi Google Maps not showing placeholder<br/>
fixed: JavaScript compatibility callback check not working with prefixed function names<br/>
fixed: Google Tag Manager gtag analytical 3rd party not working with tracking ID's starting with `G-`<br/>
fixed: accepting a single cookie category from placeholder accepts all<br/>
improved: blocking logic by having the option to add a depency window object<br/>
improved: blocking logic by adding the possible to prefix/suffix HTML element attribute matching patterns<br/>

## [v3.2.14]

fixed: Microsoft Edge browser shows unsafe content<br/>
fixed: auto updating throws an error while extracting the geo database<br/>
fixed: automate blocking HTML element property "fp" not available after update<br/>
fixed: jQuery migrate warnings<br/>
fixed: replace placeholder `{CC}` with cookie category display name<br/>
fixed: reload scripts logic fails when having multiple indentical sources<br/>
fixed: uppgrade file not replacing for WPML

## [v3.2.13]

new: (WeePie Framework): exporting and importing of settings<br/>
new: compatibility (hookable) system<br/>
new: 3rd party: Google gtag.js (analytical)<br/>
new: 3rd party: Google gtag.js (advertising)<br/>
new: 3rd party: paypal marketing solutions<br/>
new: GTM optimization: custom variable and event pushes to the dataLayer<br/>
new: replace the "href" attribute value for blocked hyperlinks<br/>
fixed: Divi and Avada Live builder issues<br/>
fixed: anonymize ip now also works for gtag<br/>
fixed: Google maps not loaded for Divi and Avada (Fusion) builder<br/>
fixed: the settings popup doesn't scroll with some smaller screen heights<br/>
fixed: CCPA shortcode is rendered as plain text<br/>
fixed: PHP error call to a member function get() on bool<br/>
fixed: centered box animation not working from hide to show<br/>
fixed: MariaDB MySQL version not correct in consent-log module<br/>
fixed: the alphabetical order of the 3rd party list<br/>
fixed: image "srcset" attrribute is not supported in blocking logic<br/>
fixed: add bar/box/post/page to the DNSMPI shortcode description<br/>
fixed: a typo in the JavaScript paramater "block"<br/>
fixed: wp rocket's lazyloading of images conflicts with the settings icon markup<br/>
fixed: button css margin and float may be overwritten by themes or plugins<br/>
fixed: iFrame regex pattern didn't match single quotes inside the "src" attribute<br/>
fixed: reset query argument stays in the url after a reset by url<br/>
fixed: removed an unused css class "group" in the bar and box template<br/>
fixed: a typo in the cookie category settings options template<br/>
fixed: zendesk web widget code not blocked<br/>
fixed: remove unused code in modules<br/>
fixed: accepting a cookie category from the placeholder not handling required cookie categories<br/>
fixed: including the wf check triggers a fatal error with multiple instances<br/>
improved: placeholder logic<br/>
updated: Maxmind databases to latest version<br/>
updated: the button text "Default cookie settings" to "Accept all cookies"<br/>
updated: the plugin header description<br/>

## [v3.2.12]

fixed: (WeePie Framework) allowed staging environments can't use the plugin

## [v3.2.11]

new: CCPA (cookie) proof<br/>
new: Cookie Category settings icon in the bar/box to open a Cookie Category settings popup<br/>
new: set all Cookie Categories default to off in the Cookie Category settings box<br/>
new: edit Cookie Category: label, description and switch button<br/>
new: enhanced bar/box cookie notice text<br/>
new: a setting to configure the animation delay time of the bar/box<br/>
new: possibility to delete consent log data from the settings page<br/>
new: 3rd party: Pinterest tag<br/>
new: setting to configure the Cookie Category settings box padding<br/>
fixed: typo in `wpca_automate_thirparties` hook name<br/>
fixed: cookie consent didn't work with a > img tag<br/>
fixed: JavaScript WPCAFR.hasPlaceholder() is not checking for the first element <br/>
fixed: consent log filter not working with `%` like searches at the `varbinary` IP address column <br/>
fixed: using undefined variable `$cat` in the consent-log module<br/>
fixed: update 3rd party Zopim to Zendesk chat <br/>
fixed: the animation of the bar/box didn't work when showing (it only worked when hiding)<br/>
fixed: custom button CSS styles could be overwritten<br/>
fixed: in Firefox buttons with class `wpca-btn-hide` were having lots of whitespace on top<br/>
added: shortcode `[wpca_btn_cc_settings]` to add a button to open the Cookie Category settings popup<br/>
added: shortcode `[wpca_btn_accept_cc]` to add a button in the placeholder to only accept the active Cookie Category<br/>
added: shortcode `[wpca_ccpa_dnsmpi_link]` to show a Do Not Share My Personal Information hyperlink<br/>
added: filter `wpca_automate_thirdparties` to replacde `wpca_automate_thirparties` (which has a typo)<br/>
added: filter `wpca_instantiate_layout_template` to filter template vars before the bar/box template is instantiated<br/>
added: filter `wpca_frontend_html`<br/>
added: filter `wpca_popup_content`<br/>
added: settings notices that geo and CCPA logic not work with caching<br/>
improvement: added `$isScriptDebug` argument for front and admin style hooks <br/>
improvement: frontend scripts are now loaded in the footer<br/>
improvement: implemented Wpie Data Table HTML for 3rd party table<br/>
improvement: converted the shortcode explanation table to a wpie data table<br/>
improvement: add more CSS padding to the Cookie Category settings box wrapper<br/>
improvement: made geo module more generic by moving EU geo logic to the core module<br/>
removed: 3rd party Vine<br/>
removed: bèta functionality text for Cookie Category settings and Consent log<br/>
updated: Maxmind databases to latest version<br/>
updated: copyright to 2020<br/>

## [v3.2.10]

Fixed: WeePie Framework check for multisite installs didn't work well

## [v3.2.9]

implemented: better WeePie Framework check

## [v3.2.8]

fixed: Cookie Category content didn't have a `<p>` tag<br/>
fixed: robots.txt request where causing an uncaught Exception<br/>
fixed: 3rd party blocking for Hubspot CTA, meetings iFrame<br/>
fixed: 3rd party label text for Google Adwords remarketing<br/>
updated: some native exceptions to WeePie Framework style<br/>

## [v3.2.7]

NEW: implented WeePie Framework 2.0 (as framework folder)<br/>
NEW: support for Envato Market auto-updating plugin<br/>
fixed: missing alt attribute in placeholder image<br/>
fixed: 3rd party blocking for Facebook pixel inline script<br/>
fixed: 3rd party blocking for Twitter inline script<br/>
fixed: ipv6 ip-addresses not working<br/>
fixed: error during multisite activation caused by the geo module<br/>
fixed: global consent setting not working for multisite sub folder<br/>
fixed: typo in plugin description<br/>
added: Composer for autoloading new [Maxmind to GeoIP2 PHP API](https://github.com/maxmind/GeoIP2-php)<br/>
added: 3rd party blocking for: Facebook Web Plugins, Drift, Google adwords remarketing and Spotify<br/>
improvement: WeePie framework no need to activate as plugin anymore<br/>
improvement: security enhancements<br/>
improvement: 3rd party support for multiple html elememts<br/>
improvement: updated [Maxmind to GeoIP2 PHP API](https://github.com/maxmind/GeoIP2-php) (exclude non-EU website visitors)<br/>
improvement: exlude plugin name from being translatable<br/>
improvement: minor text change for 3rd party toggle link<br/>
removed: upgrade notice regarding 3rd party list<br/>
removed: global JavaScript file (WeePie Framework now has a wpie-common.js file)<br/>
updated: copyright texts to 2019<br/>

## [v3.2.6]

NEW: setting: optional page reload after consent<br/>
NEW: setting: disable the plugin for non-EU website visitors (hide bar/box, don't block cookies etc.) (beta)<br/>
fixed: Cookie Category settings box `<h2>` (and other inner elements) can be overriden by other CSS<br/>
fixed: Cookie Settings shortcode not rendered in the bar<br/>
fixed: don't show raw shortcodes when the plugin is disabled<br/>
fixed: Cookie Category settings box checkboxes still being cached<br/>
fixed: IE11 JavaScript SCRIPT 438 error caused by<br/>
fixed: IE11 shows `<template>` placeholder tag<br/>
fixed: TinyMCE strips <wpca-block> element when switching editor mode<br/>
fixed: commas should be semicolons in `initBlocking()` JavaScript function<br/>
fixed: http in source code should be https for weepie-plugins.com<br/>
added: 3rd party blocking for: Twitter and Facebook by Jetpack, Elfsight YouTube Gallery<br/>
improvement: try to let placeholder inherit width and height from blocked content (beta)<br/>
improvement: added \* for query all in consent log description (i)<br/>
improvement: automatic check "Automatic cookie blocking" when 1 or more items are checked in the 3rd parties list<br/>
updated: README.md<br/>
added: remove `wpca_globals` option for WeePie Framwork update to 1.4.13<br/>

## [v3.2.5]

NEW: wrap HTML content with a <wpca-block> to show the placeholder (replacement) element (this does not block cookies)<br/>
fixed: plugin conflict with Autoptimize<br/>
fixed: shortcode `[wpca_cookie_allow_code]` not working<br/>
fixed: categories not logged when using the "Save" button in the Cookie Category settings box<br/>
fixed: consents logged twice when accepting all in the cc settings<br/>
fixed: reloading scripts can lead to JavaScript Uncaught errors<br/>
fixed: not all Cookie Category settings box colors are working<br/>
fixed: "Block all iFrames" doesn't work after acceptance<br/>
fixed: "Block all iFrames" doesn't work when zero 3rd parties are checked<br/>
fixed: blocked script/iframe/img sources are not hided after reset -> accept -> reset<br/>
added: hook: `wpca_automate_block_all_iframes_cc`<br/>
added: CSS class wpca-replace-txt to placeholder text `<p>`<br/>
improvement: show a checkbox in the cookie category settings box for iFrames blocked by "Block all iFrames"<br/>

## [v3.2.4]

fixed: JavaScript blocking logic in firefox not working optimal<br/>

## [v3.2.3]

NEW: caching preventive: show/hide logic for the bar/box is now completely handled client-side<br/>
NEW: caching preventive: blocking of cookie scripts, iFrames and custom HTML elements is now done client-side (without page refresh)<br/>
NEW: caching preventive: possibility to send no caching headers<br/>
NEW: possibility to anonymize IP addresses for consent logging<br/>
NEW: possibility to filter IP addresses at the "Consent log" settings tab<br/>
NEW: possibility to delete logged consents<br/>
NEW: possibility to apply consents network wide for multisite<br/>
NEW: possibility to always show the "Reset cookies button"<br/>
fixed: mobile: the bar reappears when scrolling while decline button is clicked<br/>
fixed: mobile: the bar reappears when scrolling while accept button is clicked<br/>
fixed: automate logic fails if invalid content exists between `<head>` and `<body>`<br/>
fixed: scripts with `<script>` strings are not matched by the regex pattern<br/>
fixed: wrong buffer output return value (void) on empty buffer<br/>
fixed: don't show "Keep anonymized Google Analytics" option when "Cookies before consent" is set to "Google Analytics"<br/>
fixed: missing switch statement break in consent logging JS<br/>
fixed: fatal error caused by `$this` in anonymous callback<br/>
fixed: domain mapping installs having wrong cookie params<br/>
fixed: automate process in not using 'checked' 3rd parties but uses all<br/>
fixed: show only selected 3rd parties in cookie categort settings box<br/>
fixed: make it possible to translate the cookie categories labels on the front-end (with POT-file)<br/>
added: (or updated) 3rd party blocking for: Disqus, Jotform, Pinterest, FaceBook, TripAdviser, StatCounter, likebutton<br/>
added: check for module existence to prevent fatal errors in module `init()` methods when modules are not ready<br/>
added: query var "`wpca_no_cache_headers`" to enable the no cache headers<br/>
added: hook: `wpca_automate_allowed_src_attributes`<br/>
added: hook: `wpca_automate_before_buffer_end`<br/>
added: hook: `wpca_automate_after_buffer_end`<br/>
added: suffix `<!--[wpca_mrkd]-->` to 'marked' content<br/>
added: `$matches` arg to `wpca_replacement_text` filter<br/>
added: empty blocked.js file<br/>
added: empty blocked.html file<br/>
added: JavaScript frontend custom event "wpca.reset:after"<br/>
improvement: frontend JavaScript: adding new functions, reducing public functions, new params and better scopes<br/>
improvement: frontend JavaScript: implemented PHP logic as JavaScript logic<br/>
improvement: 3rd party/privacy sensitive content is now only 'marked' instead of 'blocked' server-side (caching preventive)<br/>
improvement: added check for href attribute to automate html element (html_elem)<br/>
improvement: moved css hover logic for consent log rows to the module stylesheet<br/>
improvement: moved hook `wpca_multisite_give_global_consent` to `WpcaFrontend::_setCookieParams` method<br/>
improvement: better readability of the YouTube and Vimeo regexes<br/>
improvement: in instagram regex<br/>
improvement: added missing version number to scripts and styles<br/>
improvement: removed URI search patterns from module Automate<br/>

## [v3.2.2]

fixed: Only log PHP errors with WP_DEBUG mode true during automatic cookie blocking<br/>
fixed: An error occured calling `preg_replace_callback()` context head by wrong if condition<br/>

## [v3.2.1]

fixed: Fatal error: call to undefined method `WpieMiscHelper::getPregLastError`<br/>

## [v3.2]

NEW: consent logging (b�ta)<br/>
NEW: Cookie Categories (b�ta)<br/>
NEW: Facebook Pixel Code<br/>
NEW: Blocking custom HTML elements (given a CSS id or class, hook only)<br/>
NEW: show the Accept button when the Reset consent button is not visible<br/>
NEW: option to show/hide the bar/box on the Cookie Policy Page<br/>
fixed: PHP notice: Array to string conversion<br/>
fixed: PHP Notice: Undefined index<br/>
fixed: PHP Exception: Parts array is not valid for {3rd party type}: head or body entry not found<br/>
fixed: replacing scripts in body with comment instead of placeholder element<br/>
fixed: JavaScript Missing global param" exception<br/>
fixed: not blocking script from plugin YouTube Embed Plus<br/>
fixed: not blocking googleplus inline scripts<br/>
fixed: not blocking pinterest inline scripts<br/>
fixed: Twitter timeline widget not blocked<br/>
fixed: typos in settings xml<br/>
added: module consent-log<br/>
added: settings XML file for tab "Consent Log"<br/>
added: XML settings fields for cookie categories<br/>
added: 3rd party blocking for: Active Campaign, Cxense, Facebook Pixel Code, Hotjar<br/>
added: 3rd party blocking for: HubSpot, LikeBtn, LinkedIn Insight, Media.net, OneSignal<br/>
added: 3rd party blocking for: Pardot, Pinterest, Sumo, Tawk.to, Twitter ads, WP Stats, Zopim<br/>
added: frontend JavaScript event custom wpca.consent:after to hook into the code after consent<br/>
added: frontend JavaScript event custom wpca.decline:after to hook into the code after decline<br/>
added: frontend JavaScript event custom wpca.cc:saved to hook into the code after settings has been saved<br/>
added: attribute "cc" to shortcode `[wpca_cookie_allow_code]`<br/>
added: question for an example of an embed code inside the missing 3rd party email body<br/>
added: hook: `wpca_automate_extra`<br/>
added: hook: `wpca_automate_regex_allowed_local_locations`<br/>
added: hook: `wpca_cookie_categies`<br/>
added: hook: `wpca_node_names_body_no_replacement_element`<br/>
added: hook: `wpca_log_needed`<br/>
added: hook: `wpca_read_all_args`<br/>
added: hook: `wpca_log_list_table_columns`<br/>
improvement: show accept button when reset button is hided<br/>
improvement: splitted up automate templ files so that table is a separate templ<br/>
improvement: AJAX refresh the 3rd party table list<br/>
improvement: highlight new items in 3rd party table list after refresh<br/>
improvement: add logic to block scripts from plugin ot theme folder<br/>
improvement: use `$_REQUEST` instead of `$_GET`<br/>
improvement: added JavaScript log en alert wrapper function to WPCAGLOBAL<br/>
improvement: settings warning when user unchecks "Automatic cookie blocking" (formerly "Live blocking")<br/>

## [v3.1.3]

NEW: added Amazon adsystem to 3rd parties<br/>
fixed: custom styles are not loaded when box/bar is hided<br/>
improved: splitted up more regular expressions with comments for readability<br/>
improved: added check for matching subdomains when URL (for iFrames and script src) in starts with a dot (.)<br/>

## [v3.1.2]

NEW: shortcode `[wpca_cookie_allow_code]` to block 3rd party content manually<br/>
NEW: reduced our plugin cookies to only 1 (`wpca_consent`) and place it after consent or decline<br/>
NEW: added Matomo (Piwik) to 3th party automatic blocking<br/>
NEW: added "Only Click" and "Only Scroll" consent methods<br/>
fixed: blank page caused by regex patterns<br/>
fixed: running module automate on login page<br/>
fixed: replaced all 3th typo's with 3rd<br/>
fixed: AddToAny not blocked for `<script>` with inner content<br/>
fixed: Google Tag Manager not blocked for script URL https://www.googletagmanager.com/gtag/js?id=GA-TRACKING_ID<br/>
fixed: Google Tag Manager not blocked for script with inner content "gtag"<br/>
fixed: scrolling not possible after after clicking decline button<br/>
fixed: hyperlink didn't work after decline with cookies before consent "Google Analytics & 3rd party"<br/>
added: filter `wpca_do_ob_start` in module automate<br/>
added: filter `wpca_skip_live_blocking` in module automate<br/>
added: filter `wpca_skip_live_blocking_on_login_page` in module automate<br/>
improved: splitted up more regular expressions with comments for readability<br/>
removed: check output buffer start check for WP Rocket<br/>

## [v3.1.1]

fixed: bug in WeePie Framework regarding validating/unvalidating<br/>

## [v3.1]

NEW: added AddToAny, Bandcamp, Cloudflare, JotForm, leadpages and Sharethis platform API to 3th party automatic blocking<br/>
NEW: choose a WordPress Post Type for the cookie policy page (post, page, attachment (PDF) or custom Post Type)<br/>
NEW: set a target for the cookie policy page link (open in new tab or same)<br/>
NEW: consent method "Click / Scroll". This option hides the Accept button in the bar/box<br/>
NEW: possibility to add a 'Decline cookies' button to the bar/box<br/>
NEW: possibility to use the closing (X) as a dismiss (no consent)<br/>
NEW: possibility to reset (recall) the cookie consent with a "Reset consent" button<br/>
fixed: consent on multisite install with subdomain didnt work network wide<br/>
fixed: + sign was not escaped in automate regex for js_needle<br/>
fixed: 3th party script blocking for: https://wordpress.org/plugins/duracelltomi-google-tag-manager/<br/>
fixed: removed unused js files in module core<br/>
fixed: removed template file from module frontend<br/>
fixed: blocking all iframes did not work for iframes with inner HTML<br/>
fixed: blocking specific iframe did not work for iframe with inner HTML<br/>
fixed: regex was not checking for scripts and iFrames with single quoted attributes<br/>
fixed: custom min-height for layout box was applied also when box is in mobile mode (and layout is like a bar)<br/>
fixed: set CSS button focus outline to none<br/>
fixed: JS strict mode was not inside correct scope<br/>
added: wpca-settings.js file in assets/js folder<br/>
added: wrapper function for `wpcaGlobalFr.setKookie()` in frontend js<br/>
added: filter `wpca_multisite_give_global_consent` in method `init()` of class WpcaCore to switch off global consent in multisite installs<br/>
improvement: replaced cookie methods in core module by WpieCookieHelper methods<br/>
improvement: implemented WeePie Framework `SCRIPT_DEBUG` depended .js or .min.js loading<br/>
improvement: implemented WeePie Framework `WPIE_RUNNING_MODE` depended .css or .min.css loading<br/>
improvement: added strict mode to all JS scripts not using the strict mode<br/>
improvement: more JS global params declared in frontend module<br/>
improvement: removed unused images<br/>
improvement: changed module core button css selector to .wpca-btn to select all buttons<br/>
improvement: hide more settings fields and group per condition<br/>
improvement: changed default box width to 30%<br/>
improvement: switch box layout to bar from 910px now<br/>
improvement: added descriptive table with the possible shortcodes to the settings content tab<br/>
improvement: minified CSS files<br/>

## [v3.0.3]

Updated to the latest WeePie Framework v1.4.5 (bug fixes)<br/>

## [v3.0.2]

NEW added all iFrame blocking (optional)<br/>
NEW added box shadow (optional)<br/>
NEW added closing cross (x) to the bar (optional)<br/>
NEW added minimum height for giving consent through scrolling (optional)<br/>
NEW template function `wpca_block_cookies()`<br/>
improved admin settings usability by showing certain elements only when needed<br/>
added global.admin.js file<br/>
added button to request 3th party cookie<br/>
added strict mode to frontend.js<br/>
added templateRootUri class property to module frontend<br/>
added type and forceAcceptBtn params to getElement method of module automate-replace<br/>
fixed JS param declaration bug caused by the strict mode<br/>
Fixed JS bug in frontend with not using window param in `handlerScrollWindow()`<br/>
implemented new WeePie Framework globals<br/>
implemented new WeePie Framework settings get wrapper<br/>

## [v3.0.1]

changed plugin description<br/>
changed PHP4 constructor style to `__construct()` for all classes<br/>
fixed bug with continue statement ending without semicolon (;) leading to E_COMPILE_ERROR as of PHP 5.4 (http://php.net/manual/en/control-structures.continue.php)<br/>

## [v3.0]

NEW box lay-out: centered position<br/>
NEW added (minimum) height setting for box lay-out<br/>
NEW simplified plugin usage (improved usability)<br/>
fixed bug with WP Rocket and output buffering<br/>
fixed bug in JS global.js with wrong parameter scope<br/>
improved admin settings flow<br/>
improved folder structure by adding assets folder: /assets/js, /assets/css, /assets/img<br/>
renamed some php docs<br/>
removed popup (Fancybox) with Cookies Category levels<br/>
removed tabs Cookies Category and Tools<br/>
removed modules: wpml, shortcode, settings-export, cookie-categories, frontend-popup<br/>
removed automatic wrapping function<br/>

## [v2.3.3]

NEW added frontend lay-out "Box"<br/>
NEW added Google adsense to 3th parties for automatic live blocking<br/>
NEW added Google Tag Manager to 3th parties for automatic live blocking<br/>
added type (e.g. googleadsense) to replacement element HTML CSS class<br/>
fixed scrolling bug: the scroll event was triggered again while already been triggered if user keeps on scrolling<br/>
fixed bug with some installs redirect to homepage when submitting form field with PHP code, removed the textarea under cookie categegories and made it a DIV<br/>
fixed bug with Theme Explicit and Fancybox not loading<br/>
fixed bug with not saving checked 3th parties when refreshing<br/>
fixed z-index bug with admin bar<br/>
fixed sorting of 3th parties at admin settings page (a-z sorting)<br/>
fixed bug with in some cases the 3th party array needs to be re-populated<br/>
fixed bug with automate date terms where not saved on activating/upgrading<br/>
improved iframe regex pattern for automatic blocking (URL's with scheme // instead of http://)<br/>
improved performance by removing AJAX call on accepting.<br/>
improved admin settings pages (number inputs instead of text, grouped some settings, added descriptions)<br/>
improved 3th party list checkbox functionality<br/>
renamed cookie `wpca_saved` to `wpca_consent`<br/>
renamed module frontend-bar to "frontend"<br/>
renamed style and content settings to be more general (used for both bar and box layouts now)<br/>
removed settings xml files from modules and added to central settings folder /settings<br/>
cleaned up some code in modules<br/>

## [v2.3.2]

fixed bug with WPML AJAX calls were not executed (implemented the `wpca_before_start` hook)<br/>
fixed bug in `WpcaAutomate::_doAutomate`, only return data if needed<br/>
improved performance by loading CSS+JS for Cookie categories tab only on own tab<br/>
added option to hide the WeePie Cookie Allow logo in the replacement element (content tab)<br/>
added some missing php doc<br/>
removed some unused code<br/>

## [v2.3.1]

fixed phpdoc typos<br/>
fixed bug in popup JS with wrong multisite path during setting cookies in cancel handler<br/>
fixed bug with regex for matching random characters in module "automate"<br/>
fixed bug with 2 hooks that are filters instead of action (`wpca_validated_data_wpca_settings_tools`)<br/>
fixed bug in JS for module "cookie-categories" with missing params<br/>
fixed bug in JS for module "cookie-categories" with ajax response r could be null (e.g. server script dies)<br/>
improved code by replacing all occurences of `WpieCookieAllow::$settings` with `settingsProcessor::getSetting`<br/>
improved regex for youtube and vimeo to only allow // scheme in iframes<br/>
implemented 2nd arg for callbacks on hook "`wpca_validate_settings_wpca_settings_tools`"<br/>
implemented new WeePie Framework post type list items for the cookie properties<br/>
implemented new `WpiePostType::retrieveAll` style (fetching is handled internally now)<br/>

## [v2.3]

NEW Privacy page support: integrated automatically in popup and bar<br/>
NEW added automatic live blocking of third party content for whole page (HTML `<head>` and `<body>`)<br/>
NEW added 14 third parties to block like: addthis, facebook, twitter<br/>
NEW keep anonymized Google Analytics during blocking (only for live blocking)<br/>
NEW added styleable replacement element for blocked content inside the HTML `<body>`<br/>
NEW added CSS transistions to buttons and icons<br/>
NEW combined JavaScript and CSS<br/>
NEW shortcodes `wpca_btn_privacy`, `wpca_btn_accept` (even customize your loading text with "txt_accepting" attribute)<br/>
fixed bug in not correctly counting the wrapped/unwrapped items<br/>
fixed bug text widgets not allowing shortcodes<br/>
fixed bug in cookie category popup CSS for icon events<br/>
fixed bug with loading in cookie category popup icons caused a loading jump<br/>
fixed bug in forgetting saved status after triggering popup<br/>
fixed bug for accepting (by scrolling/swiping) not working on some devices<br/>
fixed bug with colors that are saved witout # (by other plugins/theme)<br/>
fixed css display:inline-block bug (spaces) in popup nav<br/>
added better error handling with try catch and throwing exceptions<br/>
added module "automate-replace"<br/>
added the "erase" option to the "automate" module (live blocking)<br/>
added extra check for cc level data being present at cookie categories tab<br/>
added better error handling for importing settings<br/>
added context possibility to the popup for adding tabs (now for settings and privacy tab)<br/>
added CSS3 loading animation for the popup loading element<br/>
added warning for user if wrapping but plugin is disabled<br/>
added warning for user if live blocking is enabled but no 3th parties are checked<br/>
added method in "settings-export" module to check if 3th parties has been checked<br/>
added check for mobile youtube URLs in regex<br/>
added better CSS targetting to wpca-cc-frontend styles<br/>
implemented new setting handling ("settings" folder is now in the root of the plugin, WeePie Framework does the rest. removed modules settings and settings-page-tabs)<br/>
implemented new settings (page) WeePie Framework style<br/>
implemented the NEW multi lang setup, removed lots of code from the "wpml" module<br/>
implemented combined JS and CSS for popup and bar<br/>
implemented new shortcode handling in modules<br/>
implemented WeePie Framework style for 'property' post list<br/>
implemented WeePie Framework settings page setup<br/>
implemented upgrade file (handled by WeePie Framework)<br/>
improved module "shortcode", modules can now 'register' shortcodes by hooking into filter "`wpca_registered_shortcodes`", the shortcode module does the rest<br/>
improved shortcode "btn accept" by adding 'loading msg' with "txt_accepting" attribute<br/>
improved automating logic by dynamically creating regex based on array with thirdparties<br/>
improved automating logic by only doing when the plugin is enabled<br/>
improved by added popup HTML now with wp_footer action instead of jQuery append<br/>
Improved by don't loading the bar HTML anymore if user accepted<br/>
improved performance by settin timeout for cookiecheck function to 500 ms<br/>
improved performance by loading fancybox minified css<br/>
improved performance by implementing caching for large data and HTML in some functions<br/>
renamed reset query var to trigger-popup for readability<br/>
removed cancel X link in top right corner, added cancel button instead<br/>

## [v2.2.8]

improved performance by not loading popup script on bar page<br/>
Fixed tiny bug JS script exclusion meganism <br/>

## [v2.2.7]

NEW automatic wrapping of 3th party content in posts/pages like YouTube URL's or iFrames (beta)<br/>
NEW exporting and importing settings data (beta)<br/>
NEW giving consent only after Click or Scroll<br/>
NEW add a custom z-index for the popup through the "Style" tab<br/>
NEW add custom CSS to bar or popup through the "Style" tab<br/>
NEW add a custom 'Accepting' text through the "Content" tab<br/>
NEW close the popup with the ESC button<br/>
fixed bug with popup link and double question marks in the URL<br/>
fixed bug with absolute URL and path problem for global vars (bug occured when moving website to new host)<br/>
fixed bug with not saving custom icons for category levels<br/>
fixed bug with Polylang plugin causing error message "input parameter is not a string for..."<br/>
fixed bug with losing data after adding new WPML language<br/>
fixed bug with the popup form being redirected to external URL, e.g. when website is refered from Google<br/>
fixed JS bug with cookie names with a spation causing an error<br/>
fixed bug with shortcode `[wpca_cookie_allow_code]` not being complete during ajax adding of new CC cat (solution was `htmlspecialchars()`)<br/>
added WPML config XML file to the root of the plugin<br/>
added new modules: automate, settings export<br/>
added better error handling with the WpieNotice Class (WeePie Framework). Errors are now displayed in WP style instead of plain text<br/>
added hook to core module in for adding cookie param path<br/>
added hook to settings module to alter the settings objects after all has been setup<br/>
improved loading bar HTML now with wp_footer hook instead of jQuery append<br/>
improved WPML compatibility: adding, removing langs and syncing with plugin settings/posts/terms<br/>
improved process for setting default data for Cookie Category levels<br/>
improved performance by only loading plugin start method once (check with static parameter)<br/>
removed timeout delay after accepting<br/>
removed logic that was executed on plugin load through the plugin constructor. This is now added to a seperate public method `WpieCookieAll::start`<br/>
moved `WpcaFrontendBar::_hex2rgb` to `WpieMiscHelper::hex2rgb`<br/>
lots of other tiny code improvements<br/>

## [v2.2.7beta]

NEW Shortcode for "Cookie allow code" wrapper function<br/>
fixed bug when clicking on hyperlink in the cookiebar (1st visit => cookie level #1 - after click/scroll => #default level)<br/>
fixed bug with incomming #bookmark URI that were seen as scroll event<br/>
fixed bug with settings transients throwing errors<br/>
fixed bug with cancel event from pop-up causing the default level set<br/>
fixed bug with saving a cat level in the pop-up, causing the default level set (instead of choosen level)<br/>
fixed IE11 bug with setting cookie in JS<br/>
fixed bug with PHP Wrapper function (cc tab) not updating level correctly<br/>
fixed bug with level meta data not being updated completely<br/>
added query param to delete posts/terms (be careful, advanced use)<br/>
added data integrity check for cookie level data at cc tab<br/>
added NEW cookie (`wpca_accepting`) for controlling the user accepting process<br/>
improved, accept button txt on pop-up on 1st visit was save cookie settings, now the bar button txt<br/>
improved code in some classes, comments etc.<br/>
optimized description texts for settings<br/>

## [V 2.2.6]

NEW possibility to choose a consent method<br/>
NEW on 1st visit only allow functional and necessary cookies (Italian cookie law)<br/>
NEW All links in the bar can be visited without accepting and thus only setting functional/required cookies (level 1)<br/>
NEW template function '`wpca_is_current_allow_level`': check against a single cookie level (use it in your theme templates or functions.php)<br/>
fixed setting background color category icons in pop-op<br/>
fixed z-index for the pop-up, now just 1 lower then the lowest of fancybox (8009)<br/>
fixed bugs with calling php class constants with dynamic class. This is only allowed from PHP >= 5.3.0<br/>
fixed minor CSS bug for the bar accept btn :active, :focus states<br/>
fixed JS 'error' alert string that was not translatable<br/>
fixed tiny bug in WPML module with the defined constant param WPML_LOAD_API_SUPPORT being already defined<br/>
fixed JS bug in bar, click and scroll event handlers were called more then once<br/>
added settings notice if no consent method is selected (gerneral settings)<br/>
added a link to the settings page in the plugin actions<br/>
added translatable text to accept btn when clicking cookie settings link<br/>
improved validation of settings for cookie expiration time field<br/>
improved JS code for the bar<br/>
implemented JS redirect after 'accept' (for some consent methods) to directly clear unwanted cookies<br/>
updated all URL's to weepie-plugins.com<br/>

## [V 2.2.5]

NEW WordPress WPML compatible<br/>
added module WPML<br/>
added WPML support<br/>
added 'fingerprint' HTML comment arround cookie check JS script<br/>
added filter for the 'public' args option for `register_taxonomy()` and `register_post_type()`<br/>
fixed minor CSS bug with save icon<br/>
added 'fingerprint' HTML comment arround the bar<br/>
fixed CSS bug with z-index that causes the bar not beig on top always in some Themes<br/>
implemented bug fix for `add_query_args()` and `remove_query_args()` not being escaped<br/>
implemented multi language settings (passing locale data to WpcaPluginSettings class)<br/>
implemented multi language updating of settings data<br/>
cleaned up code<br/>
moved init off (default) tabs and some flags to constructor. This way the data is availible for other modules in en earlier state<br/>
added method `WpcaSettingsPageTabs::addTabData`<br/>

## [V 2.2.4]

General<br/>
fixed JS bug in the setKookie function that caused cookies only being cleared on the home page<br/>
fixed bug with not saving level data properly<br/>
fixed JS bug with level Property hidden input data being removed when updating a Properties name<br/>
fixed JS bug with level number not being updated when after removing a level<br/>
fixed bug with not updating Property (Post) slug<br/>
fixed JS bug with bar not working properly when WP Toolbar is present<br/>
added fix for Fancybox plugins generating conflict errors on the pop-up page (pop-up was not working)<br/>
added new setting under tools tab for (trying to) solve compatibility and conflict problems<br/>

## [V 2.2.3]

NEW WordPress Multisite (WPMU) compatible<br/>
fixed bug generating a fatal error when user activated Plugin while WeePie Framework was not installed or active.<br/>
added multisite suppport for cookie methods<br/>
added class member for the choosen consent type (popup or bar)<br/>
added class member to flag if client visits the site for the first time when consent type is set to 'popup'<br/>
improvement some code to standards<br/>
prevent notices from showing up at 'network admin'<br/>
moved init of settings to private method<br/>
added new hook `wpca_upgrading_plugin`<br/>
added new method `WpcaSettings::_maybeDeleteData` to delete all Plugin data for multisites by URL<br/>
removed tools reset option from XML<br/>
fixed minor bug with JS translatable strings showing up when not wanted<br/>
fixed JS bug with a 'first visit' to the popup: not setting active category icon in the popup by a 'first visit' and constent type settings 'popup'<br/>
added class constant for query string param 'cc'<br/>
implemented callback for hook `wpca_upgrading_plugin`<br/>
implemented changes to hook `wpca_setting_groups_init` in callback `WpcaCookieCategories::setSettingGroup`<br/>
improved performance by escaping some hooks when activating<br/>
improvement some code to standards<br/>
fixed CSS bug with accept button showing :before content from users Theme<br/>
added class constant for query string param '`wpca_bar_reset`'<br/>
added query string param '`wpca_bar_reset`' to JS dynamicly<br/>
implemented multisite suppport to JS (paths)<br/>
improved JS code<br/>
fixed bug with a 'first visit' to the popup: removed the cancel options by clicking the layer and cancel link<br/>
fixed bug with a 'first visit' to the popup: popup not showing up<br/>
fixed bug with not removing query string parameters when canceling in popup<br/>
fixed bug with not setting root path to cookies when canceling in popup<br/>
fixed CSS bug with button showing :before content from users Theme<br/>
improved code<br/>

## [V 2.2.2]

added Version 2.2.2 in Plugin header<br/>
fixed bug opacity also in button accept. Solved by using CSS3 rgba instead of hexadecimal color values<br/>
fixed bug in positioning the cancel link overlapping a scrollbar if any<br/>

## [V 2.2.1]

added Version 2.2.1 in Plugin header
optimized responsive threshold condition in JS<br/>
fixed bug with pop-up showing after client exits cookies settings browser page and returns after.<br/>
implemented `wpca_need_popup` hook for this bug fix<br/>
improved commenting<br/>
added NEW hook `wpca_before_render_popup`<br/>
added NEW hook `wpca_before_render_bar`<br/>
implemented `wpca_before_render_bar` hook<br/>
added missing PHP doc<br/>
fixed bug with new bar style not being responsive<br/>
added responsive logic to JS<br/>
added CSS3 media query fallback for responsiveness<br/>
fixed some minor CSS missings<br/>
fixed minor CSS bug with close link (being underlined)<br/>

## [V 2.2]

NEW bar style with 'Accept' button integrated and WYSIWYG text<br/>
NEW templates for the bar settings link and accept button<br/>
NEW cancel the pop-up by clicking outside the pop-up or cancel link<br/>
NEW return to referer page when leaving the cookie settings pop-up (cancel or saving)<br/>
NEW shortcode for 'cookie settings' link<br/>
NEW rebuild settings (XML) on Plugin activation. NO need to 'reset' to defaults anymore and loosing your custom settings<br/>
added Version 2.2 in Plugin header<br/>
fixed bug in PHP "Cookie allow code" for not showing content when Plugin is disabled or not activated<br/>
fixed bug when setting the default cookie category<br/>
fixed JS bug that was causing cookies to not always be cleared.<br/>
fixed some minor text bugs<br/>
removed quick instructions from the settings page (as it is online now)<br/>
renamed included and excluded column title defaults<br/>
added cookie names "`wpca_show`" and "`wpca_saved`" to the global JS params<br/>
added `WPCA_ACTIVE` global var to indicate the Plugin is active at the frontend<br/>
added new template for 'Accept' button<br/>
added new template for 'cookie settings' link<br/>
removed the 'tab' functionality from the bar<br/>
implemented new bar CSS and template<br/>
added accept button to the bar<br/>
implemented AJAX process for accept button click event<br/>
implemented admin and frontend only hooks to only add hooks when needed<br/>
added requesting 'cookie settings' pop-up with clients current URI, so that returning to referer page is possible<br/>
added 'cancel' option<br/>
replaced JS logic to separate file<br/>
implemented referer URI in the pop-up form to send clients back to the page they came from<br/>
implemented hook `wpca_activate_plugin` to rebuild the settings XML on Plugin activate to allow changes in new plugin versions to be made without resetting and loosing data<br/>
added NEW settings field for the 'Accept' button text<br/>
modified field "content_bar_text" to WP (teeny) textarea<br/>
did some minor text changes<br/>
fixed text bug in instruction guid link<br/>
replaced settings page descriptions to new line<br/>
added new module shortcode<br/>
added shortcode "`wpca_btn_cookiesettings`" to use the 'cookie settings' link in e.g. a page or post<br/>

## [V 2.1.4]

General<br/>
updated translation files<br/>
fixed minor text bug readme.txt<br/>
added Version 2.1.4 in Plugin header<br/>
modified settings XML for quick Intruction<br/>
fixed minor text bugs<br/>
added links to Intruction guide<br/>
added current tab var to nav template<br/>

## [V 2.1.3]

general<br/>
added changelog file<br/>
fixed minor CSS color to correct style<br/>
fixed JS bug with bar tab not working if admin toolbar is present<br/>

## [V 2.1.2]

initial release
