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