Version Description
Download this release
Release Info
Developer | cookiebot |
Plugin | 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', '
|
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\',
|
19 |
$this->assertNotFalse( strpos( $content,
|
20 |
-
'add_action(\'wp_head\', \'caos_analytics_render_tracking_code\',
|
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:
|
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 = '
|
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 |
+
|
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 |
+
|
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:
|
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 |
-
###
|
15 |
|
16 |
-
Cookiebot is a cloud-driven solution that
|
17 |
|
18 |
-
* A highly customizable consent banner to handle
|
19 |
-
*
|
20 |
-
* Full monthly
|
21 |
-
*
|
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
|
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 |
-
|
35 |
|
36 |
-
|
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 |
-
|
42 |
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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/
|
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 |
-
|
92 |
|
93 |
-
See all details of [Cookiebot plans and pricing](https://www.cookiebot.com/
|
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
|
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/
|
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
|
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,
|
129 |
|
130 |
-
See the
|
|
|
|
|
131 |
|
132 |
### How do I make other plugins support Cookiebot? ###
|
133 |
-
If
|
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
|
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
|
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
|