Cookiebot | GDPR Compliant Cookie Consent and Notice - Version 3.0.0

Version Description

Download this release

Release Info

Developer cookiebot
Plugin Icon 128x128 Cookiebot | GDPR Compliant Cookie Consent and Notice
Version 3.0.0
Comparing to
See all releases

Code changes from version 2.5.0 to 3.0.0

addons/controller/plugin-controller.php CHANGED
@@ -65,10 +65,12 @@ class Plugin_Controller {
65
*
66
* @var $plugin Cookiebot_Addons_Interface
67
*/
68
foreach ( $this->settings_service->get_active_addons() as $plugin ) {
69
if ( ! $plugin->cookie_consent->are_cookie_states_accepted( $plugin->get_cookie_types() )
70
|| cookiebot_addons_enabled_cache_plugin() ) {
71
$plugin->load_configuration();
72
}
73
}
74
@@ -78,6 +80,24 @@ class Plugin_Controller {
78
* Run buffer output actions - this runs after scanning of every addons
79
*/
80
add_action( 'parse_request', array( $this, 'run_buffer_output_manipulations' ) );
81
}
82
83
/**
65
*
66
* @var $plugin Cookiebot_Addons_Interface
67
*/
68
+ $addonsEnabled = 0;
69
foreach ( $this->settings_service->get_active_addons() as $plugin ) {
70
if ( ! $plugin->cookie_consent->are_cookie_states_accepted( $plugin->get_cookie_types() )
71
|| cookiebot_addons_enabled_cache_plugin() ) {
72
$plugin->load_configuration();
73
+ $addonsEnabled++;
74
}
75
}
76
80
* Run buffer output actions - this runs after scanning of every addons
81
*/
82
add_action( 'parse_request', array( $this, 'run_buffer_output_manipulations' ) );
83
+
84
+
85
+ /**
86
+ * Add notice for the user if any addons is enabled and cookie
87
+ * blocking mode is set to auto.
88
+ */
89
+ if($addonsEnabled > 0 && \Cookiebot_WP::get_cookie_blocking_mode() == 'auto') {
90
+ if(isset($_GET['page']) && in_array($_GET['page'],array('cookiebot','cookiebot-addons'))) {
91
+ add_action('admin_notices', function() {
92
+ echo '<div class="notice notice-warning">
93
+ <p>
94
+ <strong>'.__('You enabled Cookiebot auto blocking mode but still using addons').'</strong><br>
95
+ '.__('In some occasions this may cause client side errors. If you notice any errors please try to disable Cookiebot addons or contact Cookiebot support.').'
96
+ </p>
97
+ </div>';
98
+ });
99
+ }
100
+ }
101
}
102
103
/**
addons/cookiebot-addons-init.php CHANGED
@@ -23,7 +23,7 @@ define( 'COOKIEBOT_ADDONS_BASE_NAME', dirname( plugin_basename( __FILE__ ) ) );
23
/**
24
* Same version as the CookiebotWP
25
*/
26
- define( 'COOKIEBOT_ADDONS_VERSION', '2.5.0' );
27
28
/**
29
* Register autoloader to load files/classes dynamically
23
/**
24
* Same version as the CookiebotWP
25
*/
26
+ define( 'COOKIEBOT_ADDONS_VERSION', '3.0.0' );
27
28
/**
29
* Register autoloader to load files/classes dynamically
addons/tests/integration/addons/test-caos-host-analyticsjs-local.php CHANGED
@@ -15,8 +15,8 @@ class Test_Caos_Host_Analyticsjs_Local extends \WP_UnitTestCase {
15
$content = file_get_contents( 'http://plugins.svn.wordpress.org/host-analyticsjs-local/trunk/host-analyticsjs-local.php' );
16
17
$this->assertNotFalse( strpos( $content,
18
- 'add_action(\'wp_footer\', \'caos_analytics_render_tracking_code\', $sgal_enqueue_order);' ) );
19
$this->assertNotFalse( strpos( $content,
20
- 'add_action(\'wp_head\', \'caos_analytics_render_tracking_code\', $sgal_enqueue_order);' ) );
21
}
22
}
15
$content = file_get_contents( 'http://plugins.svn.wordpress.org/host-analyticsjs-local/trunk/host-analyticsjs-local.php' );
16
17
$this->assertNotFalse( strpos( $content,
18
+ 'add_action(\'wp_footer\', \'caos_analytics_render_tracking_code\', CAOS_ANALYTICS_ENQUEUE_ORDER);' ) );
19
$this->assertNotFalse( strpos( $content,
20
+ 'add_action(\'wp_head\', \'caos_analytics_render_tracking_code\', CAOS_ANALYTICS_ENQUEUE_ORDER);' ) );
21
}
22
}
cookiebot.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Cookiebot | GDPR Compliant Cookie Consent and Notice
4
Plugin URI: https://cookiebot.com/
5
Description: Cookiebot is a fully GDPR & ePrivacy compliant cookie consent solution supporting prior consent, cookie declaration, and documentation of consents. Easy to install, implement and configure.
6
Author: Cybot A/S
7
- Version: 2.5.0
8
Author URI: http://cookiebot.com
9
Text Domain: cookiebot
10
Domain Path: /langs
@@ -21,7 +21,7 @@ final class Cookiebot_WP {
21
* @var string
22
* @since 1.0.0
23
*/
24
- public $version = '2.5.0';
25
26
/**
27
* @var Cookiebot_WP The single instance of the class
@@ -72,6 +72,14 @@ final class Cookiebot_WP {
72
//Not set yet - this must be first activation - delay in 3 days
73
update_option('cookiebot_notice_recommend', strtotime('+3 days'));
74
}
75
}
76
77
/**
@@ -98,6 +106,7 @@ final class Cookiebot_WP {
98
<?php
99
});*/
100
}
101
else {
102
if( (!defined('COOKIEBOT_ADDONS_STANDALONE') || COOKIEBOT_ADDONS_STANDALONE != true || !defined('COOKIE_ADDONS_LOADED')) && $dismissAddons !== true ) {
103
//Make sure we got a PHP version that works
@@ -150,7 +159,7 @@ final class Cookiebot_WP {
150
}
151
if($addJSAdmin) {
152
//adding cookie banner in admin area too
153
- add_action('admin_head', array($this,'add_js'));
154
}
155
}
156
@@ -159,7 +168,7 @@ final class Cookiebot_WP {
159
load_plugin_textdomain('cookiebot', false, dirname( plugin_basename( __FILE__ ) ) . '/langs/' );
160
161
//add JS
162
- add_action('wp_head', array($this,'add_js'));
163
add_shortcode('cookie_declaration', array($this,'show_declaration'));
164
165
//Add filter if WP rocket is enabled
@@ -288,6 +297,7 @@ final class Cookiebot_WP {
288
register_setting('cookiebot', 'cookiebot-autoupdate');
289
register_setting('cookiebot', 'cookiebot-script-tag-uc-attribute');
290
register_setting('cookiebot', 'cookiebot-script-tag-cd-attribute');
291
register_setting('cookiebot-iab', 'cookiebot-iab');
292
}
293
@@ -397,6 +407,7 @@ final class Cookiebot_WP {
397
$network_cbid = get_site_option('cookiebot-cbid','');
398
$network_scrip_tag_uc_attr = get_site_option('cookiebot-script-tag-uc-attribute','custom');
399
$network_scrip_tag_cd_attr = get_site_option('cookiebot-script-tag-cd-attribute','custom');
400
}
401
?>
402
<div class="wrap">
@@ -491,6 +502,52 @@ final class Cookiebot_WP {
491
</td>
492
</tr>
493
<tr valign="top">
494
<th scope="row">
495
<?php _e('Add async or defer attribute','cookiebot'); ?>
496
<br /><?php _e('Consent banner script tag'); ?>
@@ -573,7 +630,7 @@ final class Cookiebot_WP {
573
<?php
574
}
575
?>
576
- <tr valign="top">
577
<th scope="row"><?php _e('Hide Cookie Popup','cookiebot'); ?></th>
578
<td>
579
<?php
@@ -659,6 +716,48 @@ final class Cookiebot_WP {
659
</td>
660
</tr>
661
<tr valign="top">
662
<th scope="row">
663
<?php _e('Add async or defer attribute','cookiebot'); ?>
664
<br /><?php _e('Consent banner script tag'); ?>
@@ -735,7 +834,7 @@ final class Cookiebot_WP {
735
</p>
736
</td>
737
</tr>
738
- <tr valign="top">
739
<th scope="row"><?php _e('Hide Cookie Popup','cookiebot'); ?></th>
740
<td>
741
<input type="checkbox" name="cookiebot-nooutput" value="1" <?php checked(1,get_site_option('cookiebot-nooutput',false), true); ?> />
@@ -778,6 +877,8 @@ final class Cookiebot_WP {
778
update_site_option('cookiebot-autoupdate', $_POST['cookiebot-autoupdate'] );
779
update_site_option('cookiebot-nooutput', $_POST['cookiebot-nooutput'] );
780
update_site_option('cookiebot-nooutput-admin', $_POST['cookiebot-nooutput-admin'] );
781
782
wp_redirect( add_query_arg( array(
783
'page' => 'cookiebot_network',
@@ -904,6 +1005,10 @@ final class Cookiebot_WP {
904
else {
905
$tagAttr = get_site_option('cookiebot-script-tag-uc-attribute');
906
}
907
908
$iab = ( get_option('cookiebot-iab') != false ) ? 'data-framework="IAB"' : '';
909
?>
@@ -962,6 +1067,23 @@ final class Cookiebot_WP {
962
}
963
return $cbid;
964
}
965
966
/**
967
* Cookiebot_WP Get the language code for Cookiebot
4
Plugin URI: https://cookiebot.com/
5
Description: Cookiebot is a fully GDPR & ePrivacy compliant cookie consent solution supporting prior consent, cookie declaration, and documentation of consents. Easy to install, implement and configure.
6
Author: Cybot A/S
7
+ Version: 3.0.0
8
Author URI: http://cookiebot.com
9
Text Domain: cookiebot
10
Domain Path: /langs
21
* @var string
22
* @since 1.0.0
23
*/
24
+ public $version = '3.0.0';
25
26
/**
27
* @var Cookiebot_WP The single instance of the class
72
//Not set yet - this must be first activation - delay in 3 days
73
update_option('cookiebot_notice_recommend', strtotime('+3 days'));
74
}
75
+ if($this->get_cbid() == '') {
76
+ if(is_multisite()) {
77
+ update_site_option('cookiebot-cookie-blocking-mode','auto');
78
+ }
79
+ else {
80
+ update_option('cookiebot-cookie-blocking-mode','auto');
81
+ }
82
+ }
83
}
84
85
/**
106
<?php
107
});*/
108
}
109
+ //elseif( $this->get_cookie_blocking_mode() !== 'auto' ) {
110
else {
111
if( (!defined('COOKIEBOT_ADDONS_STANDALONE') || COOKIEBOT_ADDONS_STANDALONE != true || !defined('COOKIE_ADDONS_LOADED')) && $dismissAddons !== true ) {
112
//Make sure we got a PHP version that works
159
}
160
if($addJSAdmin) {
161
//adding cookie banner in admin area too
162
+ add_action('admin_head', array($this,'add_js'),-9999);
163
}
164
}
165
168
load_plugin_textdomain('cookiebot', false, dirname( plugin_basename( __FILE__ ) ) . '/langs/' );
169
170
//add JS
171
+ add_action('wp_head', array($this,'add_js'), -9999);
172
add_shortcode('cookie_declaration', array($this,'show_declaration'));
173
174
//Add filter if WP rocket is enabled
297
register_setting('cookiebot', 'cookiebot-autoupdate');
298
register_setting('cookiebot', 'cookiebot-script-tag-uc-attribute');
299
register_setting('cookiebot', 'cookiebot-script-tag-cd-attribute');
300
+ register_setting('cookiebot', 'cookiebot-cookie-blocking-mode');
301
register_setting('cookiebot-iab', 'cookiebot-iab');
302
}
303
407
$network_cbid = get_site_option('cookiebot-cbid','');
408
$network_scrip_tag_uc_attr = get_site_option('cookiebot-script-tag-uc-attribute','custom');
409
$network_scrip_tag_cd_attr = get_site_option('cookiebot-script-tag-cd-attribute','custom');
410
+ $network_cookie_blocking_mode = get_site_option('cookiebot-cookie-blocking-mode','manual');
411
}
412
?>
413
<div class="wrap">
502
</td>
503
</tr>
504
<tr valign="top">
505
+ <th scope="row">
506
+ <?php _e('Cookie-blocking mode','cookiebot'); ?>
507
+ </th>
508
+ <td>
509
+ <?php
510
+ $cbm = get_option('cookiebot-cookie-blocking-mode','manual');
511
+ if($is_ms && $network_cookie_blocking_mode != 'custom') {
512
+ $cbm = $network_cookie_blocking_mode;
513
+ }
514
+ ?>
515
+ <label>
516
+ <input type="radio" name="cookiebot-cookie-blocking-mode" value="auto" <?php checked('auto', $cbm, true); ?> />
517
+ <?php _e('Automatic','cookiebot'); ?>
518
+ </label>
519
+ &nbsp; &nbsp;
520
+ <label>
521
+ <input type="radio" name="cookiebot-cookie-blocking-mode" value="manual" <?php checked('manual',$cbm, true); ?> />
522
+ <?php _e('Manual','cookiebot'); ?>
523
+ </label>
524
+ <p class="description">
525
+ <?php _e('Should Cookiebot automatic block cookies by tagging known tags.','cookiebot') ?>
526
+ </p>
527
+ </td>
528
+ </tr>
529
+ <script>
530
+ jQuery(document).ready(function($) {
531
+ var cookieBlockingMode = '<?php echo $cbm; ?>';
532
+ $( 'input[type=radio][name=cookiebot-cookie-blocking-mode]' ).on( 'change', function() {
533
+ if(this.value == 'auto' && cookieBlockingMode != this.value ) {
534
+ $( '#cookiebot-setting-async, #cookiebot-setting-hide-popup' ).css( 'opacity', 0.4 );
535
+ $( 'input[type=radio][name=cookiebot-script-tag-uc-attribute], input[name=cookiebot-nooutput]' ).prop( 'disabled', true );
536
+ }
537
+ if( this.value == 'manual' && cookieBlockingMode != this.value ) {
538
+ $( '#cookiebot-setting-async, #cookiebot-setting-hide-popup' ).css( 'opacity', 1 );
539
+ $( 'input[type=radio][name=cookiebot-script-tag-uc-attribute], input[name=cookiebot-nooutput]' ).prop( 'disabled', false );
540
+ }
541
+ cookieBlockingMode = this.value;
542
+ });
543
+ if( cookieBlockingMode == 'auto' ) {
544
+ $( '#cookiebot-setting-async, #cookiebot-setting-hide-popup' ).css( 'opacity', 0.4 );
545
+ $( 'input[type=radio][name=cookiebot-script-tag-uc-attribute], input[name=cookiebot-nooutput]' ).prop( 'disabled', true );
546
+ }
547
+ });
548
+ </script>
549
+
550
+ <tr valign="top" id="cookiebot-setting-async">
551
<th scope="row">
552
<?php _e('Add async or defer attribute','cookiebot'); ?>
553
<br /><?php _e('Consent banner script tag'); ?>
630
<?php
631
}
632
?>
633
+ <tr valign="top" id="cookiebot-setting-hide-popup">
634
<th scope="row"><?php _e('Hide Cookie Popup','cookiebot'); ?></th>
635
<td>
636
<?php
716
</td>
717
</tr>
718
<tr valign="top">
719
+ <th scope="row">
720
+ <?php _e('Cookie-blocking mode','cookiebot'); ?>
721
+ </th>
722
+ <td>
723
+ <?php
724
+ $cbm = get_site_option('cookiebot-cookie-blocking-mode','manual');
725
+ ?>
726
+ <label>
727
+ <input type="radio" name="cookiebot-cookie-blocking-mode" value="auto" <?php checked('auto', $cbm, true); ?> />
728
+ <?php _e('Automatic','cookiebot'); ?>
729
+ </label>
730
+ &nbsp; &nbsp;
731
+ <label>
732
+ <input type="radio" name="cookiebot-cookie-blocking-mode" value="manual" <?php checked('manual',$cbm, true); ?> />
733
+ <?php _e('Manual','cookiebot'); ?>
734
+ </label>
735
+ <p class="description">
736
+ <?php _e('Should Cookiebot automatic block cookies by tagging known tags.','cookiebot') ?>
737
+ </p>
738
+ </td>
739
+ </tr>
740
+ <script>
741
+ jQuery(document).ready(function($) {
742
+ var cookieBlockingMode = '<?php echo $cbm; ?>';
743
+ $( 'input[type=radio][name=cookiebot-cookie-blocking-mode]' ).on( 'change', function() {
744
+ if(this.value == 'auto' && cookieBlockingMode != this.value ) {
745
+ $( '#cookiebot-setting-async, #cookiebot-setting-hide-popup' ).css( 'opacity', 0.4 );
746
+ $( 'input[type=radio][name=cookiebot-script-tag-uc-attribute], input[name=cookiebot-nooutput]' ).prop( 'disabled', true );
747
+ }
748
+ if( this.value == 'manual' && cookieBlockingMode != this.value ) {
749
+ $( '#cookiebot-setting-async, #cookiebot-setting-hide-popup' ).css( 'opacity', 1 );
750
+ $( 'input[type=radio][name=cookiebot-script-tag-uc-attribute], input[name=cookiebot-nooutput]' ).prop( 'disabled', false );
751
+ }
752
+ cookieBlockingMode = this.value;
753
+ });
754
+ if( cookieBlockingMode == 'auto' ) {
755
+ $( '#cookiebot-setting-async, #cookiebot-setting-hide-popup' ).css( 'opacity', 0.4 );
756
+ $( 'input[type=radio][name=cookiebot-script-tag-uc-attribute], input[name=cookiebot-nooutput]' ).prop( 'disabled', true );
757
+ }
758
+ });
759
+ </script>
760
+ <tr valign="top" id="cookiebot-setting-async">
761
<th scope="row">
762
<?php _e('Add async or defer attribute','cookiebot'); ?>
763
<br /><?php _e('Consent banner script tag'); ?>
834
</p>
835
</td>
836
</tr>
837
+ <tr valign="top" id="cookiebot-setting-hide-popup">
838
<th scope="row"><?php _e('Hide Cookie Popup','cookiebot'); ?></th>
839
<td>
840
<input type="checkbox" name="cookiebot-nooutput" value="1" <?php checked(1,get_site_option('cookiebot-nooutput',false), true); ?> />
877
update_site_option('cookiebot-autoupdate', $_POST['cookiebot-autoupdate'] );
878
update_site_option('cookiebot-nooutput', $_POST['cookiebot-nooutput'] );
879
update_site_option('cookiebot-nooutput-admin', $_POST['cookiebot-nooutput-admin'] );
880
+ update_site_option('cookiebot-cookie-blocking-mode', $_POST['cookiebot-cookie-blocking-mode'] );
881
+
882
883
wp_redirect( add_query_arg( array(
884
'page' => 'cookiebot_network',
1005
else {
1006
$tagAttr = get_site_option('cookiebot-script-tag-uc-attribute');
1007
}
1008
+
1009
+ if($this->get_cookie_blocking_mode() == 'auto') {
1010
+ $tagAttr = 'data-blockingmode="auto"';
1011
+ }
1012
1013
$iab = ( get_option('cookiebot-iab') != false ) ? 'data-framework="IAB"' : '';
1014
?>
1067
}
1068
return $cbid;
1069
}
1070
+
1071
+ /**
1072
+ * Cookiebot_WP Get cookie blocking mode (auto | manual)
1073
+ *
1074
+ * @version 2.2.0
1075
+ * @since 1.0.0
1076
+ */
1077
+ public static function get_cookie_blocking_mode() {
1078
+ $cbm = get_option('cookiebot-cookie-blocking-mode');
1079
+ if(is_multisite() && ($network_cbm = get_site_option('cookiebot-cookie-blocking-mode'))) {
1080
+ if(empty($cbm)) {
1081
+ return $network_cbm;
1082
+ }
1083
+ }
1084
+ if(empty($cbm)) { $cbm = 'manual'; }
1085
+ return $cbm;
1086
+ }
1087
1088
/**
1089
* Cookiebot_WP Get the language code for Cookiebot
readme.txt CHANGED
@@ -3,7 +3,7 @@
3
* Tags: cookie, compliance, eu, gdpr, europe, cookie consent, consent
4
* Requires at least: 4.4
5
* Tested up to: 5.2
6
- * Stable tag: 2.5.0
7
* Requires PHP: 5.6
8
* License: GPLv2 or later
9
@@ -11,17 +11,17 @@ Cookiebot is a fully GDPR & ePrivacy compliant cookie consent solution supportin
11
12
## Description ##
13
14
- ### What Cookiebot Offers ###
15
16
- Cookiebot is a cloud-driven solution that offers:
17
18
- * A highly customizable consent banner to handle user consents and give the users the required possibility to opt-in and -out of cookie categories.
19
- * A cookie policy and declaration, with purpose descriptions and automatic categorization of your cookies (strictly necessary, preference, statistics, marketing).
20
- * Full monthly scans to detect all tracking in place on the website as well as detection of where data is being sent to and where in the source code the cookie can be found.
21
- * A scanner that detects various online trackers such as Cookies, HTML5 Local Storage, Flash Local Shared Object, Silverlight Isolated Storage, IndexedDB, ultrasound beacons, pixel tags etc.
22
* An easy way to allow the users to change or withdraw their consent.
23
- * Translations for 44 languages and the ability to change the text on the banner and declaration for any language.
24
- * Storage of user-consents in our cloud-driven environment, which are downloadable and can be used as proof.
25
* Execution of cookie-setting scripts without a page reload, if the user gives consent.
26
27
Please read our FAQ at the bottom of the page for more information.
@@ -29,18 +29,26 @@ Please read our FAQ at the bottom of the page for more information.
29
https://youtube.com/watch?v=t1LJ6i1i9gA
30
31
### Will my website become compliant once I install Cookiebot? ###
32
- The short answer is; no.
33
34
- Although Cookiebot enables your website to become fully compliant, [especially obeying the prior consent rule](https://support.cookiebot.com/hc/en-us/articles/360004104033-What-does-prior-consent-mean-and-how-do-I-implement-it-), some manual work is required to achieve compliance.
35
36
- * If you are using plugins that set cookies which require consent (which most do), you have to:
37
- * Ask the plugin developers if they are planning on becoming GDPR compliant, or if they would like to integrate with Cookiebot.
38
- * Check if there already exists an addon for your plugin in the "Prior consent" submenu.
39
- * [Check out our Github repository](https://github.com/CybotAS/CookiebotAddons), where we are developing integrations for Cookiebot, until the plugin developers choose to do this themselves, [or WP Core enables such functionality](https://core.trac.wordpress.org/ticket/44043)
40
41
- Once Cookiebot is installed, and we've scanned your site, you can check the [cookie report](https://manage.cookiebot.com/goto/reports), to identify all cookies being set on your website. If the cookies are coming from content that you have inserted manually, then you can mark up that content [as described in our help section step 3](https://www.cookiebot.com/goto/help/).
42
43
- Embedded videos and iframes, which set cookies, can be marked up as explain in our [Iframe cookie consent with YouTube example](https://support.cookiebot.com/hc/en-us/articles/360003790854-Iframe-cookie-consent-with-YouTube-example).
44
45
46
### Cookiebot Addons ####
@@ -74,6 +82,9 @@ https://youtu.be/OCXz2bt4H_w
74
75
**Implementing prior consent:**
76
77
https://youtu.be/MeHycvV2QCQ
78
79
## Frequently Asked Questions ##
@@ -84,13 +95,13 @@ Cookiebot is a freemium plugin, much like [Jetpack](https://wordpress.org/plugin
84
Whether the free plan can suffice or you need a premium plan, depends on two things:
85
86
**1. The size of your website, i.e. the number of subpages on your website.**
87
- In other words, you cannot choose whether you want a free plan or a premium plan, as this is determined by the amount of subpages on your website. You can [get a quote](https://www.cookiebot.com/en/quote-input/) to see what plan you need for your website.
88
89
**2. Your necessities, as the free plan does not include all features available in the premium plans.** The free plan does not include customization of banner and cookies declaration, multiple languages, e-mail reports, data-export, geo location, bulk consent, consent statistics, internal domain alias for development, test and staging.
90
91
- No matter the size of your website, you do have the right to a one month trial of Cookiebot for free.
92
93
- See all details of [Cookiebot plans and pricing](https://www.cookiebot.com/en/pricing/).
94
95
### What does Cookiebot count as pages?
96
Your pricing plan is dependent on the number of subpages we have detected on your website.
@@ -111,30 +122,32 @@ By implementing it, you ensure that your cookie declaration is specific and accu
111
112
To display your cookie declaration, create a new page on your website - and add the shortcode that the plugin provides to the page: [cookie_declaration]. Alternatively, you can incorporate it into e.g. your existing Privacy Policy.
113
114
- By default the cookie declaration is displayed in the chosen Cookiebot language. You are able to override this setting with a "lang" attribute in the shortcode. Eg.: [cookie_declaration lang="de"] for a German version. Remember to add all used languages in the Cookiebot administration tool.
115
116
https://youtu.be/OCXz2bt4H_w
117
118
### Cookie-checker: What cookies are in use on my site? ###
119
If you are in doubt about what cookies are in use on our site, you can start by trying our free compliance test:
120
121
- **[Test my site](https://www.cookiebot.com/en/)**
122
123
- The test scans five pages of your website and sends you a complete report of the cookies and online tracking on these pages, including information on their provenance, purpose and whether or not they are compliant with the EU-regulations.
124
125
If you want a complete overview of the cookies and online tracking going on on all of your website, sign up to the Cookiebot solution.
126
127
- ### What is GDPR? ###
128
- The GDPR is the General Data Protection Regulation, a EU-law that is enforced on the 25. May 2018, and affects all organizations and websites that handle data of EU-citizens.
129
130
- See the [EU homepage of the GDPR](https://www.eugdpr.org/) for more information, and their infographic for businesses: [Data Protection: Better rules for small businesses](http://ec.europa.eu/justice/smedataprotect/index_en.htm)
131
132
### How do I make other plugins support Cookiebot? ###
133
- If you favourite plugins doesn't support Cookiebot you always welcome to ask the author to add support for Cookiebot.
134
135
Send an e-mail to the author of the plugin you want to support Cookiebot. Ask for adding support for Cookiebot. Cookiebot provides a helper function to check if there is an active, working version of Cookiebot on the website.
136
137
- The easiest way for at developer to implement Cookiebot support is following to add a check for Cookiebot where <script> tags are outputted to the visitor. This can be done following way
138
139
$scriptTag = '<script>';
140
if(function_exists('cookiebot_active') && cookiebot_active()) {
@@ -146,11 +159,14 @@ The developer of the plugin can see more details on [our Github repository](http
146
### Can I use Cookiebot with GTM? ###
147
Cookiebot works with GTM, however you need to enable the "Hide Cookie Popup" option on the Cookiebot plugin settings page.
148
149
- [Please see our article on how to depoloy Cookiebot with GTM](https://support.cookiebot.com/hc/en-us/articles/360003793854-Google-Tag-Manager-deployment).
150
151
152
## Changelog ##
153
154
### 2.5.0 - 2019-06-12 ###
155
* Add support for custom regex for embed autocorrect
156
* Adding Cookie Declaration widget
3
* Tags: cookie, compliance, eu, gdpr, europe, cookie consent, consent
4
* Requires at least: 4.4
5
* Tested up to: 5.2
6
+ * Stable tag: 3.0.0
7
* Requires PHP: 5.6
8
* License: GPLv2 or later
9
11
12
## Description ##
13
14
+ ### Trustworthy and easy GDPR/ePR compliant cookie consent ###
15
16
+ Cookiebot is a cloud-driven solution that enables full cookie compliance, offering:
17
18
+ * A highly customizable consent banner to handle consents and give the users the possibility to opt-in and -out of cookie categories, as required by the GPDR, ePrivacy Directive and similar legislations around the world.
19
+ * An automatically generated and updated cookie policy and cookie declaration, with purpose descriptions and categorization of your cookies (Necessary, Statistics, Preferences, Marketing).
20
+ * Full monthly website scan, detecting all first and third party cookies and similar tracking on your site (e.g. HTML5 Local Storage, Flash Local Shared Object, Silverlight Isolated Storage, IndexedDB, ultrasound beacons, pixel tags etc.) as well as their provenance, duration and where to the data is sent.
21
+ * The unique Cookiebot feature of automatic cookie blocking. All cookies and tracking are automatically held back right from the moment the user lands on the website and until the proper consent has been obtained, enabling compliance with the GDPR and ePrivacy requirement for “prior consent”.
22
* An easy way to allow the users to change or withdraw their consent.
23
+ * Translations for 44 languages and the ability to change the text on the banner and cookie declaration for any language.
24
+ * Storage of user consents in our cloud-driven environment, which are downloadable and can be used as proof that the consent was given.
25
* Execution of cookie-setting scripts without a page reload, if the user gives consent.
26
27
Please read our FAQ at the bottom of the page for more information.
29
https://youtube.com/watch?v=t1LJ6i1i9gA
30
31
### Will my website become compliant once I install Cookiebot? ###
32
33
+ If you use our plugin version 3.0 or later and chose our automatic implementation, Cookiebot enables full compliance with the prior consent requirement of the GDPR, the ePrivacy Directive (ePR) and similar legal instruments for protection of user data around the world.
34
35
+ The default consent banner has the strictest settings possible and is suitable for obtaining consent under both GDPR and the ePR. Make sure to adapt the consent banner content to fit your website. You should also check out [our GDPR checklist](https://support.cookiebot.com/hc/en-us/sections/360000917513-Ready-for-25-May-2018-GDPR-enforcement-date-A-Cookiebot-checklist-). If you are using server-side cookies, please check the [“Server side usage” guide](https://www.cookiebot.com/en/developer/).
36
37
+ However, being a customizable plugin, true compliance always depends on the website owner choosing a type of banner, wording and settings that are compliant with the local legislation and fits the specific website and company (controller).
38
39
+ **If you choose the manual implementation…**
40
+
41
+ Then please make sure of the following:
42
+
43
+ If you are using plugins that set cookies which require consent (which most do), you have to:
44
+
45
+ * Ask the plugin developers if they are planning on becoming GDPR compliant, or if they would like to integrate with Cookiebot.
46
+ * Check if there already exists an addon for your plugin in the "Prior consent" submenu.
47
+ * [Check out our Github repository](https://github.com/CybotAS/CookiebotAddons), where we are developing integrations for Cookiebot, until the plugin developers choose to do this themselves, [or if WP Core enables such functionality](https://core.trac.wordpress.org/ticket/44043)
48
+
49
+ Once Cookiebot is installed, and we've scanned your site, you can check the [cookie report](https://manage.cookiebot.com/goto/reports), to identify all cookies being set on your website. If the cookies are coming from content that you have inserted manually, you can mark up that content [as described in our manual implementation guide step 4](https://cookiebot.com/goto/manual-implementation).
50
+
51
+ Embedded videos and iframes which set cookies can be marked up as explained in our [Iframe cookie consent with YouTube example](https://support.cookiebot.com/hc/en-us/articles/360003790854-Iframe-cookie-consent-with-YouTube-example).
52
53
54
### Cookiebot Addons ####
82
83
**Implementing prior consent:**
84
85
+ Below is a video tutorial on how to manually implement prior consent i.e. holding back all cookies and trackers (other than those strictly necessary for the website to function) until the user has given a consent. The manual implementation guide (found in step 11 of the video) can be [found here](https://cookiebot.com/goto/manual-implementation).
86
+ Please note that you can make use of our automatic cookie blocking functionality instead of manually having to mark up the cookie-setting scripts. To do so, update the plugin (version 3.0.0 or higher) and choose automatic cookie control in your Admin panel. 
87
+
88
https://youtu.be/MeHycvV2QCQ
89
90
## Frequently Asked Questions ##
95
Whether the free plan can suffice or you need a premium plan, depends on two things:
96
97
**1. The size of your website, i.e. the number of subpages on your website.**
98
+ In other words, you cannot choose whether you want a free plan or a premium plan, as this is determined by the amount of subpages on your website. You can [get a quote](https://www.cookiebot.com/goto/quote-input/) to see what plan you need for your website.
99
100
**2. Your necessities, as the free plan does not include all features available in the premium plans.** The free plan does not include customization of banner and cookies declaration, multiple languages, e-mail reports, data-export, geo location, bulk consent, consent statistics, internal domain alias for development, test and staging.
101
102
+ If more than 100 subpages are found during the initial website scan, you will be given a free one-month trial of Cookiebot with full functionality.
103
104
+ See all details of [Cookiebot plans and pricing](https://www.cookiebot.com/goto/pricing/).
105
106
### What does Cookiebot count as pages?
107
Your pricing plan is dependent on the number of subpages we have detected on your website.
122
123
To display your cookie declaration, create a new page on your website - and add the shortcode that the plugin provides to the page: [cookie_declaration]. Alternatively, you can incorporate it into e.g. your existing Privacy Policy.
124
125
+ By default, the cookie declaration is displayed in the chosen Cookiebot language. You are able to override this setting with a "lang" attribute in the shortcode. Eg.: [cookie_declaration lang="de"] for a German version. Remember to add all used languages in the [Cookiebot Manager](https://manage.cookiebot.com).
126
127
https://youtu.be/OCXz2bt4H_w
128
129
### Cookie-checker: What cookies are in use on my site? ###
130
If you are in doubt about what cookies are in use on our site, you can start by trying our free compliance test:
131
132
+ **[Test my site](https://www.cookiebot.com/)**
133
134
+ The test scans up to five pages of your website and sends you a complete report of the cookies and online tracking on these pages, including information on their provenance, purpose and whether or not they are compliant with EU-legislation.
135
136
If you want a complete overview of the cookies and online tracking going on on all of your website, sign up to the Cookiebot solution.
137
138
+ ### What is the GDPR and the ePrivacy Directive? ###
139
+ The GDPR is the General Data Protection Regulation, an EU-law enforced since May 2018, that protects EU citizens’ personal data globally and affects all organizations and websites that handle such data. If you have a website with users from the EU, and if your websites uses cookies (it probably does), then you need to make your use of cookies and tracking compliant with the GDPR.
140
141
+ See the [EU homepage of the GDPR](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex%3A32016R0679) for more information, and their infographic for businesses: [Data Protection: Better rules for small businesses](http://ec.europa.eu/justice/smedataprotect/index_en.htm)
142
+
143
+ The ePrivacy Directive is another legal instrument of the EU that specifically aims to protect EU citizens’ online data such as data from online communication. It is in the process of becoming an actual Regulation such as the GDPR, which will probably happen in 2020.
144
145
### How do I make other plugins support Cookiebot? ###
146
+ If your favourite plugin doesn't support Cookiebot you are always welcome to ask the author to add support for Cookiebot.
147
148
Send an e-mail to the author of the plugin you want to support Cookiebot. Ask for adding support for Cookiebot. Cookiebot provides a helper function to check if there is an active, working version of Cookiebot on the website.
149
150
+ The easiest way for a developer to implement Cookiebot support is following to add a check for Cookiebot where <script> tags are outputted to the visitor. This can be done following way
151
152
$scriptTag = '<script>';
153
if(function_exists('cookiebot_active') && cookiebot_active()) {
159
### Can I use Cookiebot with GTM? ###
160
Cookiebot works with GTM, however you need to enable the "Hide Cookie Popup" option on the Cookiebot plugin settings page.
161
162
+ [Please see our article on how to deploy Cookiebot with GTM](https://support.cookiebot.com/hc/en-us/articles/360003793854-Google-Tag-Manager-deployment).
163
164
165
## Changelog ##
166
167
+ ### 3.0.0 - 2019-09-10 ###
168
+ * Adding support for auto cookie blocking mode
169
+
170
### 2.5.0 - 2019-06-12 ###
171
* Add support for custom regex for embed autocorrect
172
* Adding Cookie Declaration widget