Version Description
Download this release
Release Info
Developer | cookiebot |
Plugin | Cookiebot | GDPR Compliant Cookie Consent and Notice |
Version | 3.6.0 |
Comparing to | |
See all releases |
Code changes from version 3.5.0 to 3.6.0
- addons/controller/addons/gadwp/gadwp.php +12 -0
- addons/cookiebot-addons-init.php +1 -1
- addons/tests/integration/addons/test-gadwp.php +7 -7
- cookiebot.php +143 -34
- readme.txt +5 -1
addons/controller/addons/gadwp/gadwp.php
CHANGED
@@ -98,6 +98,7 @@ class Gadwp implements Cookiebot_Addons_Interface {
|
|
98 |
),
|
99 |
false );
|
100 |
|
|
|
101 |
$this->buffer_output->add_tag( 'wp_footer',
|
102 |
99,
|
103 |
array(
|
@@ -106,6 +107,17 @@ class Gadwp implements Cookiebot_Addons_Interface {
|
|
106 |
'ga-disable-' => $this->get_cookie_types(),
|
107 |
),
|
108 |
false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
}
|
110 |
|
111 |
/**
|
98 |
),
|
99 |
false );
|
100 |
|
101 |
+
|
102 |
$this->buffer_output->add_tag( 'wp_footer',
|
103 |
99,
|
104 |
array(
|
107 |
'ga-disable-' => $this->get_cookie_types(),
|
108 |
),
|
109 |
false );
|
110 |
+
|
111 |
+
|
112 |
+
/* For new versions of GADWP */
|
113 |
+
$this->script_loader_tag->add_tag( 'exactmetrics-frontend-script', $this->get_cookie_types() );
|
114 |
+
$this->buffer_output->add_tag( 'wp_head',
|
115 |
+
6,
|
116 |
+
array(
|
117 |
+
'GoogleAnalyticsObject' => $this->get_cookie_types(),
|
118 |
+
),
|
119 |
+
false );
|
120 |
+
|
121 |
}
|
122 |
|
123 |
/**
|
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', '3.
|
27 |
|
28 |
/**
|
29 |
* Register autoloader to load files/classes dynamically
|
23 |
/**
|
24 |
* Same version as the CookiebotWP
|
25 |
*/
|
26 |
+
define( 'COOKIEBOT_ADDONS_VERSION', '3.6.0' );
|
27 |
|
28 |
/**
|
29 |
* Register autoloader to load files/classes dynamically
|
addons/tests/integration/addons/test-gadwp.php
CHANGED
@@ -14,16 +14,16 @@ class Test_Gadwp extends \WP_UnitTestCase {
|
|
14 |
* @since 2.1.0
|
15 |
*/
|
16 |
public function test_hooks() {
|
17 |
-
$content = file_get_contents( 'http://plugins.svn.wordpress.org/google-analytics-dashboard-for-wp/trunk/
|
18 |
|
19 |
-
$this->assertNotFalse( strpos( $content, '
|
20 |
|
21 |
-
$content = file_get_contents( 'http://plugins.svn.wordpress.org/google-analytics-dashboard-for-wp/trunk/
|
22 |
|
23 |
-
$this->assertNotFalse( strpos( $content, '
|
24 |
|
25 |
-
$content = file_get_contents( 'http://plugins.svn.wordpress.org/google-analytics-dashboard-for-wp/trunk/
|
26 |
|
27 |
-
$this->assertNotFalse( strpos( $content, '
|
28 |
}
|
29 |
-
}
|
14 |
* @since 2.1.0
|
15 |
*/
|
16 |
public function test_hooks() {
|
17 |
+
$content = file_get_contents( 'http://plugins.svn.wordpress.org/google-analytics-dashboard-for-wp/trunk/includes/frontend/tracking/class-tracking-analytics.php' );
|
18 |
|
19 |
+
$this->assertNotFalse( strpos( $content, 'GoogleAnalyticsObject') );
|
20 |
|
21 |
+
$content = file_get_contents( 'http://plugins.svn.wordpress.org/google-analytics-dashboard-for-wp/trunk/includes/frontend/frontend.php' );
|
22 |
|
23 |
+
$this->assertNotFalse( strpos( $content, "add_action( 'wp_head', 'exactmetrics_tracking_script', 6 );") );
|
24 |
|
25 |
+
$content = file_get_contents( 'http://plugins.svn.wordpress.org/google-analytics-dashboard-for-wp/trunk/includes/frontend/events/class-analytics-events.php' );
|
26 |
|
27 |
+
$this->assertNotFalse( strpos( $content, "wp_enqueue_script( 'exactmetrics-frontend-script',") );
|
28 |
}
|
29 |
+
}
|
cookiebot.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Cookiebot | GDPR/CCPA Compliant Cookie Consent and Control
|
|
4 |
Plugin URI: https://cookiebot.com/
|
5 |
Description: Cookiebot is a cloud-driven solution that automatically controls cookies and trackers, enabling full GDPR/ePrivacy and CCPA compliance for websites.
|
6 |
Author: Cybot A/S
|
7 |
-
Version: 3.
|
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 = '3.
|
25 |
|
26 |
/**
|
27 |
* @var Cookiebot_WP The single instance of the class
|
@@ -139,6 +139,8 @@ final class Cookiebot_WP {
|
|
139 |
|
140 |
//Adding menu to WP admin
|
141 |
add_action('admin_menu', array($this,'add_menu'),1);
|
|
|
|
|
142 |
|
143 |
if(is_multisite()) {
|
144 |
add_action('network_admin_menu', array($this,'add_network_menu'),1);
|
@@ -250,15 +252,25 @@ final class Cookiebot_WP {
|
|
250 |
$icon = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzIgNTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNDYuODcyNTkwMyA4Ljc3MzU4MzM0QzQxLjk0MzkwMzkgMy4zODI5NTAxMSAzNC44NDI0OTQ2IDAgMjYuOTQ4MjgxOSAwIDEyLjA2NTE1NjggMCAwIDEyLjAyNDQ3NzQgMCAyNi44NTc0MjE5YzAgMTQuODMyOTQ0NSAxMi4wNjUxNTY4IDI2Ljg1NzQyMTkgMjYuOTQ4MjgxOSAyNi44NTc0MjE5IDcuODk0MjEyNyAwIDE0Ljk5NTYyMi0zLjM4Mjk1MDIgMTkuOTI0MzA4NC04Ljc3MzU4MzQtMi44ODk2OTY3LTEuMzY4ODY2My01LjM5OTMxMS0zLjQwNTQzOS03LjMyODA4MzgtNS45MDk2MzU4LTMuMTIxNDMwNiAzLjIwOTQxMDQtNy40OTI5OTQ0IDUuMjA0MTI5MS0xMi4zMzIwMjU4IDUuMjA0MTI5MS05LjQ4NDM0NDQgMC0xNy4xNzI5MjQ3LTcuNjYyNjU3Mi0xNy4xNzI5MjQ3LTE3LjExNTAyMzhzNy42ODg1ODAzLTE3LjExNTAyMzcgMTcuMTcyOTI0Ny0xNy4xMTUwMjM3YzQuNzIzNDgyMiAwIDkuMDAxNTU1MiAxLjkwMDU5MzkgMTIuMTA2MjkyIDQuOTc2MzA5IDEuOTU2OTIzNy0yLjY0MTEzMSA0LjU1MDAyNjMtNC43ODU1MTgzIDcuNTUzODE3Ni02LjIwODQzMTg2eiIvPjxwYXRoIGQ9Ik01NS4zODAzMjgyIDQyLjY1MDE5OTFDNDYuMzMzNzIyNyA0Mi42NTAxOTkxIDM5IDM1LjM0MTIwMzEgMzkgMjYuMzI1MDk5NiAzOSAxNy4zMDg5OTYgNDYuMzMzNzIyNyAxMCA1NS4zODAzMjgyIDEwYzkuMDQ2NjA1NSAwIDE2LjM4MDMyODIgNy4zMDg5OTYgMTYuMzgwMzI4MiAxNi4zMjUwOTk2IDAgOS4wMTYxMDM1LTcuMzMzNzIyNyAxNi4zMjUwOTk1LTE2LjM4MDMyODIgMTYuMzI1MDk5NXptLjAyMTMwOTItNy43NTU2MzQyYzQuNzM3MDI3NiAwIDguNTc3MTQ3MS0zLjgyNzE3MiA4LjU3NzE0NzEtOC41NDgyMjc5IDAtNC43MjEwNTYtMy44NDAxMTk1LTguNTQ4MjI4LTguNTc3MTQ3MS04LjU0ODIyOC00LjczNzAyNzUgMC04LjU3NzE0NyAzLjgyNzE3Mi04LjU3NzE0NyA4LjU0ODIyOCAwIDQuNzIxMDU1OSAzLjg0MDExOTUgOC41NDgyMjc5IDguNTc3MTQ3IDguNTQ4MjI3OXoiLz48L2c+PC9zdmc+';
|
251 |
add_menu_page( 'Cookiebot', __('Cookiebot','cookiebot'), 'manage_options', 'cookiebot', array($this,'settings_page'),$icon);
|
252 |
|
253 |
-
add_submenu_page('cookiebot',__('Cookiebot Settings','cookiebot'),__('Settings','cookiebot'), 'manage_options', 'cookiebot',array($this,'settings_page'));
|
254 |
-
add_submenu_page('cookiebot',__('Cookiebot Support','cookiebot'),__('Support','cookiebot'), 'manage_options', 'cookiebot_support',array($this,'support_page'));
|
255 |
-
add_submenu_page('cookiebot',__('IAB','cookiebot'),__('IAB','cookiebot'), 'manage_options', 'cookiebot_iab',array($this,'iab_page'));
|
256 |
-
|
257 |
if(defined('COOKIEBOT_ADDONS_UNSUPPORTED_PHPVERSION')) {
|
258 |
//Load prior consent page anyway - but from Cookiebot WP Core plugin.
|
259 |
add_submenu_page( 'cookiebot', __( 'Prior Consent', 'cookiebot' ), __( 'Prior Consent', 'cookiebot' ), 'manage_options', 'cookiebot-addons', array($this,'setting_page_placeholder' ) );
|
260 |
}
|
261 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
|
263 |
/**
|
264 |
* Cookiebot_WP Add menu for network sites
|
@@ -745,8 +757,8 @@ final class Cookiebot_WP {
|
|
745 |
<table class="widefat striped consent_mapping_table">
|
746 |
<thead>
|
747 |
<tr>
|
748 |
-
<th
|
749 |
-
<th class="consent_mapping"
|
750 |
</tr>
|
751 |
</thead>
|
752 |
<?php
|
@@ -763,18 +775,18 @@ final class Cookiebot_WP {
|
|
763 |
<td>
|
764 |
<div class="cb_consent">
|
765 |
<span class="forceconsent">Necessary</span>
|
766 |
-
<span class="<?php echo ($state['preferences'] ? 'consent' : 'noconsent'); ?>"
|
767 |
-
<span class="<?php echo ($state['statistics'] ? 'consent' : 'noconsent'); ?>"
|
768 |
-
<span class="<?php echo ($state['marketing'] ? 'consent' : 'noconsent'); ?>"
|
769 |
</div>
|
770 |
</td>
|
771 |
<td>
|
772 |
<div class="consent_mapping">
|
773 |
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][functional]" data-default-value="1" value="1" checked disabled> Functional </label>
|
774 |
-
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][preferences]" data-default-value="<?php echo $mDefault[$key]['preferences']; ?>" value="1" <?php if($m[$key]['preferences']) { echo 'checked'; } ?>> Preferences </label>
|
775 |
-
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][statistics]" data-default-value="<?php echo $mDefault[$key]['statistics']; ?>" value="1" <?php if($m[$key]['statistics']) { echo 'checked'; } ?>> Statistics </label>
|
776 |
-
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][statistics-anonymous]" data-default-value="<?php echo $mDefault[$key]['statistics-anonymous']; ?>" value="1" <?php if($m[$key]['statistics-anonymous']) { echo 'checked'; } ?>> Statistics Anonymous
|
777 |
-
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][marketing]" data-default-value="<?php echo $mDefault[$key]['marketing']; ?>" value="1" <?php if($m[$key]['marketing']) { echo 'checked'; } ?>> Marketing
|
778 |
</div>
|
779 |
</td>
|
780 |
</tr>
|
@@ -783,7 +795,7 @@ final class Cookiebot_WP {
|
|
783 |
?>
|
784 |
<tfoot>
|
785 |
<tr>
|
786 |
-
<td colspan="2" style="text-align:right;"><button class="button" onclick="return resetConsentMapping();"
|
787 |
</tr>
|
788 |
</tfoot>
|
789 |
</table>
|
@@ -824,7 +836,7 @@ final class Cookiebot_WP {
|
|
824 |
<?php _e('Cookiebot enables your website to comply with current legislation in the EU on the use of cookies for user tracking and profiling. The EU ePrivacy Directive requires prior, informed consent of your site users, while the <a href="https://www.cookiebot.com/goto/gdpr" target="_blank">General Data Protection Regulation (GDPR)</a> requires you to document each consent. At the same time you must be able to account for what user data you share with embedded third-party services on your website and where in the world the user data is sent.','cookiebot'); ?>
|
825 |
</p>
|
826 |
<p>
|
827 |
-
<b><big style="color:red;"><?php _e('The settings below is network wide settings. See notes below each field.'); ?></big></b>
|
828 |
</p>
|
829 |
<form method="post" action="edit.php?action=cookiebot_network_settings">
|
830 |
<?php wp_nonce_field( 'cookiebot-network-settings' ); ?>
|
@@ -834,7 +846,7 @@ final class Cookiebot_WP {
|
|
834 |
<td>
|
835 |
<input type="text" name="cookiebot-cbid" value="<?php echo esc_attr( get_site_option('cookiebot-cbid','') ); ?>" style="width:300px" />
|
836 |
<p class="description">
|
837 |
-
<b><?php _e('If added this will be the default Cookiebot ID for all subsites. Subsites are able to override the Cookiebot ID.'); ?></b>
|
838 |
<br />
|
839 |
<?php _e('Need an ID?','cookiebot'); ?>
|
840 |
<a href="https://www.cookiebot.com/goto/signup" target="_blank"><?php _e('Sign up for free on cookiebot.com','cookiebot'); ?></a>
|
@@ -894,7 +906,7 @@ final class Cookiebot_WP {
|
|
894 |
?>
|
895 |
<label>
|
896 |
<input type="radio" name="cookiebot-script-tag-uc-attribute" value="" <?php checked('', $cv, true); ?> />
|
897 |
-
<i
|
898 |
</label>
|
899 |
|
900 |
<label>
|
@@ -909,10 +921,10 @@ final class Cookiebot_WP {
|
|
909 |
|
910 |
<label>
|
911 |
<input type="radio" name="cookiebot-script-tag-uc-attribute" value="custom" <?php checked('custom',$cv, true); ?> />
|
912 |
-
<i
|
913 |
</label>
|
914 |
<p class="description">
|
915 |
-
<b><?php _e('Setting will apply for all subsites. Subsites will not be able to override.'); ?></b><br />
|
916 |
<?php _e('Add async or defer attribute to Cookiebot script tag. Default: Choose per subsite','cookiebot') ?>
|
917 |
</p>
|
918 |
</td>
|
@@ -920,7 +932,7 @@ final class Cookiebot_WP {
|
|
920 |
<tr valign="top">
|
921 |
<th scope="row">
|
922 |
<?php _e('Add async or defer attribute','cookiebot'); ?>
|
923 |
-
<br /><?php _e('Cookie declaration script tag'); ?>
|
924 |
</th>
|
925 |
<td>
|
926 |
<?php
|
@@ -928,7 +940,7 @@ final class Cookiebot_WP {
|
|
928 |
?>
|
929 |
<label>
|
930 |
<input type="radio" name="cookiebot-script-tag-cd-attribute" value="" <?php checked('', $cv, true); ?> />
|
931 |
-
<i
|
932 |
</label>
|
933 |
|
934 |
<label>
|
@@ -943,10 +955,10 @@ final class Cookiebot_WP {
|
|
943 |
|
944 |
<label>
|
945 |
<input type="radio" name="cookiebot-script-tag-cd-attribute" value="custom" <?php checked('custom',$cv, true); ?> />
|
946 |
-
<i
|
947 |
</label>
|
948 |
<p class="description">
|
949 |
-
<b><?php _e('Setting will apply for all subsites. Subsites will not be able to override.'); ?></b><br />
|
950 |
<?php _e('Add async or defer attribute to Cookiebot script tag. Default: Choose per subsite','cookiebot') ?>
|
951 |
</p>
|
952 |
</td>
|
@@ -1102,14 +1114,108 @@ final class Cookiebot_WP {
|
|
1102 |
</div>
|
1103 |
<?php
|
1104 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1105 |
|
1106 |
/**
|
1107 |
* Cookiebot_WP Add Cookiebot JS to <head>
|
1108 |
*
|
1109 |
-
* @version
|
1110 |
* @since 1.0.0
|
1111 |
*/
|
1112 |
-
function add_js() {
|
1113 |
$cbid = $this->get_cbid();
|
1114 |
if(!empty($cbid) && !defined('COOKIEBOT_DISABLE_ON_PAGE')) {
|
1115 |
if(is_multisite() && get_site_option('cookiebot-nooutput',false)) {
|
@@ -1119,9 +1225,9 @@ final class Cookiebot_WP {
|
|
1119 |
return; //Do not show JS - output disabled
|
1120 |
}
|
1121 |
|
1122 |
-
if($this->get_cookie_blocking_mode() == 'auto' && $this->can_current_user_edit_theme() ) {
|
1123 |
-
|
1124 |
-
|
1125 |
|
1126 |
$lang = $this->get_language();
|
1127 |
if(!empty($lang)) {
|
@@ -1140,9 +1246,12 @@ final class Cookiebot_WP {
|
|
1140 |
}
|
1141 |
|
1142 |
$iab = ( get_option('cookiebot-iab') != false ) ? 'data-framework="IAB"' : '';
|
1143 |
-
|
1144 |
-
<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js"
|
1145 |
-
|
|
|
|
|
|
|
1146 |
}
|
1147 |
}
|
1148 |
|
@@ -1179,7 +1288,7 @@ final class Cookiebot_WP {
|
|
1179 |
* @version 2.2.0
|
1180 |
* @since 1.0.0
|
1181 |
*/
|
1182 |
-
function show_declaration($atts) {
|
1183 |
$cbid = $this->get_cbid();
|
1184 |
$lang = '';
|
1185 |
if(!empty($cbid)) {
|
4 |
Plugin URI: https://cookiebot.com/
|
5 |
Description: Cookiebot is a cloud-driven solution that automatically controls cookies and trackers, enabling full GDPR/ePrivacy and CCPA compliance for websites.
|
6 |
Author: Cybot A/S
|
7 |
+
Version: 3.6.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.6.0';
|
25 |
|
26 |
/**
|
27 |
* @var Cookiebot_WP The single instance of the class
|
139 |
|
140 |
//Adding menu to WP admin
|
141 |
add_action('admin_menu', array($this,'add_menu'),1);
|
142 |
+
add_action('admin_menu', array($this,'add_menu_debug'),50);
|
143 |
+
|
144 |
|
145 |
if(is_multisite()) {
|
146 |
add_action('network_admin_menu', array($this,'add_network_menu'),1);
|
252 |
$icon = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzIgNTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNDYuODcyNTkwMyA4Ljc3MzU4MzM0QzQxLjk0MzkwMzkgMy4zODI5NTAxMSAzNC44NDI0OTQ2IDAgMjYuOTQ4MjgxOSAwIDEyLjA2NTE1NjggMCAwIDEyLjAyNDQ3NzQgMCAyNi44NTc0MjE5YzAgMTQuODMyOTQ0NSAxMi4wNjUxNTY4IDI2Ljg1NzQyMTkgMjYuOTQ4MjgxOSAyNi44NTc0MjE5IDcuODk0MjEyNyAwIDE0Ljk5NTYyMi0zLjM4Mjk1MDIgMTkuOTI0MzA4NC04Ljc3MzU4MzQtMi44ODk2OTY3LTEuMzY4ODY2My01LjM5OTMxMS0zLjQwNTQzOS03LjMyODA4MzgtNS45MDk2MzU4LTMuMTIxNDMwNiAzLjIwOTQxMDQtNy40OTI5OTQ0IDUuMjA0MTI5MS0xMi4zMzIwMjU4IDUuMjA0MTI5MS05LjQ4NDM0NDQgMC0xNy4xNzI5MjQ3LTcuNjYyNjU3Mi0xNy4xNzI5MjQ3LTE3LjExNTAyMzhzNy42ODg1ODAzLTE3LjExNTAyMzcgMTcuMTcyOTI0Ny0xNy4xMTUwMjM3YzQuNzIzNDgyMiAwIDkuMDAxNTU1MiAxLjkwMDU5MzkgMTIuMTA2MjkyIDQuOTc2MzA5IDEuOTU2OTIzNy0yLjY0MTEzMSA0LjU1MDAyNjMtNC43ODU1MTgzIDcuNTUzODE3Ni02LjIwODQzMTg2eiIvPjxwYXRoIGQ9Ik01NS4zODAzMjgyIDQyLjY1MDE5OTFDNDYuMzMzNzIyNyA0Mi42NTAxOTkxIDM5IDM1LjM0MTIwMzEgMzkgMjYuMzI1MDk5NiAzOSAxNy4zMDg5OTYgNDYuMzMzNzIyNyAxMCA1NS4zODAzMjgyIDEwYzkuMDQ2NjA1NSAwIDE2LjM4MDMyODIgNy4zMDg5OTYgMTYuMzgwMzI4MiAxNi4zMjUwOTk2IDAgOS4wMTYxMDM1LTcuMzMzNzIyNyAxNi4zMjUwOTk1LTE2LjM4MDMyODIgMTYuMzI1MDk5NXptLjAyMTMwOTItNy43NTU2MzQyYzQuNzM3MDI3NiAwIDguNTc3MTQ3MS0zLjgyNzE3MiA4LjU3NzE0NzEtOC41NDgyMjc5IDAtNC43MjEwNTYtMy44NDAxMTk1LTguNTQ4MjI4LTguNTc3MTQ3MS04LjU0ODIyOC00LjczNzAyNzUgMC04LjU3NzE0NyAzLjgyNzE3Mi04LjU3NzE0NyA4LjU0ODIyOCAwIDQuNzIxMDU1OSAzLjg0MDExOTUgOC41NDgyMjc5IDguNTc3MTQ3IDguNTQ4MjI3OXoiLz48L2c+PC9zdmc+';
|
253 |
add_menu_page( 'Cookiebot', __('Cookiebot','cookiebot'), 'manage_options', 'cookiebot', array($this,'settings_page'),$icon);
|
254 |
|
255 |
+
add_submenu_page('cookiebot',__('Cookiebot Settings','cookiebot'),__('Settings','cookiebot'), 'manage_options', 'cookiebot',array($this,'settings_page') );
|
256 |
+
add_submenu_page('cookiebot',__('Cookiebot Support','cookiebot'),__('Support','cookiebot'), 'manage_options', 'cookiebot_support',array($this,'support_page') );
|
257 |
+
add_submenu_page('cookiebot',__('IAB','cookiebot'),__('IAB','cookiebot'), 'manage_options', 'cookiebot_iab',array($this,'iab_page') );
|
258 |
+
|
259 |
if(defined('COOKIEBOT_ADDONS_UNSUPPORTED_PHPVERSION')) {
|
260 |
//Load prior consent page anyway - but from Cookiebot WP Core plugin.
|
261 |
add_submenu_page( 'cookiebot', __( 'Prior Consent', 'cookiebot' ), __( 'Prior Consent', 'cookiebot' ), 'manage_options', 'cookiebot-addons', array($this,'setting_page_placeholder' ) );
|
262 |
}
|
263 |
}
|
264 |
+
|
265 |
+
/**
|
266 |
+
* Cookiebot_WP Add debug menu - we need to add this seperate to ensure it is placed last (after menu items from Addons).
|
267 |
+
*
|
268 |
+
* @version 3.6.0
|
269 |
+
* @since 3.6.0
|
270 |
+
*/
|
271 |
+
function add_menu_debug() {
|
272 |
+
add_submenu_page('cookiebot',__('Debug info','cookiebot'),__('Debug info','cookiebot'), 'manage_options', 'cookiebot_debug',array($this,'debug_page') );
|
273 |
+
}
|
274 |
|
275 |
/**
|
276 |
* Cookiebot_WP Add menu for network sites
|
757 |
<table class="widefat striped consent_mapping_table">
|
758 |
<thead>
|
759 |
<tr>
|
760 |
+
<th><?php _e('Cookiebot categories','cookiebot'); ?></th>
|
761 |
+
<th class="consent_mapping"><?php _e('WP Consent Level categories','cookiebot'); ?></th>
|
762 |
</tr>
|
763 |
</thead>
|
764 |
<?php
|
775 |
<td>
|
776 |
<div class="cb_consent">
|
777 |
<span class="forceconsent">Necessary</span>
|
778 |
+
<span class="<?php echo ($state['preferences'] ? 'consent' : 'noconsent'); ?>"><?php _e('Preferences','cookiebot'); ?></span>
|
779 |
+
<span class="<?php echo ($state['statistics'] ? 'consent' : 'noconsent'); ?>"><?php _e('Statistics','cookiebot'); ?></span>
|
780 |
+
<span class="<?php echo ($state['marketing'] ? 'consent' : 'noconsent'); ?>"><?php _e('Marketing','cookiebot'); ?></span>
|
781 |
</div>
|
782 |
</td>
|
783 |
<td>
|
784 |
<div class="consent_mapping">
|
785 |
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][functional]" data-default-value="1" value="1" checked disabled> Functional </label>
|
786 |
+
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][preferences]" data-default-value="<?php echo $mDefault[$key]['preferences']; ?>" value="1" <?php if($m[$key]['preferences']) { echo 'checked'; } ?>> <?php _e('Preferences','cookiebot'); ?> </label>
|
787 |
+
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][statistics]" data-default-value="<?php echo $mDefault[$key]['statistics']; ?>" value="1" <?php if($m[$key]['statistics']) { echo 'checked'; } ?>> <?php _e('Statistics','cookiebot'); ?> </label>
|
788 |
+
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][statistics-anonymous]" data-default-value="<?php echo $mDefault[$key]['statistics-anonymous']; ?>" value="1" <?php if($m[$key]['statistics-anonymous']) { echo 'checked'; } ?>> <?php _e('Statistics Anonymous','cookiebot'); ?></label>
|
789 |
+
<label><input type="checkbox" name="cookiebot-consent-mapping[<?php echo $key; ?>][marketing]" data-default-value="<?php echo $mDefault[$key]['marketing']; ?>" value="1" <?php if($m[$key]['marketing']) { echo 'checked'; } ?>> <?php _e('Marketing','cookiebot'); ?></label>
|
790 |
</div>
|
791 |
</td>
|
792 |
</tr>
|
795 |
?>
|
796 |
<tfoot>
|
797 |
<tr>
|
798 |
+
<td colspan="2" style="text-align:right;"><button class="button" onclick="return resetConsentMapping();"><?php _e('Reset to default mapping','cookiebot'); ?></button></td>
|
799 |
</tr>
|
800 |
</tfoot>
|
801 |
</table>
|
836 |
<?php _e('Cookiebot enables your website to comply with current legislation in the EU on the use of cookies for user tracking and profiling. The EU ePrivacy Directive requires prior, informed consent of your site users, while the <a href="https://www.cookiebot.com/goto/gdpr" target="_blank">General Data Protection Regulation (GDPR)</a> requires you to document each consent. At the same time you must be able to account for what user data you share with embedded third-party services on your website and where in the world the user data is sent.','cookiebot'); ?>
|
837 |
</p>
|
838 |
<p>
|
839 |
+
<b><big style="color:red;"><?php _e('The settings below is network wide settings. See notes below each field.','cookiebot'); ?></big></b>
|
840 |
</p>
|
841 |
<form method="post" action="edit.php?action=cookiebot_network_settings">
|
842 |
<?php wp_nonce_field( 'cookiebot-network-settings' ); ?>
|
846 |
<td>
|
847 |
<input type="text" name="cookiebot-cbid" value="<?php echo esc_attr( get_site_option('cookiebot-cbid','') ); ?>" style="width:300px" />
|
848 |
<p class="description">
|
849 |
+
<b><?php _e('If added this will be the default Cookiebot ID for all subsites. Subsites are able to override the Cookiebot ID.','cookiebot'); ?></b>
|
850 |
<br />
|
851 |
<?php _e('Need an ID?','cookiebot'); ?>
|
852 |
<a href="https://www.cookiebot.com/goto/signup" target="_blank"><?php _e('Sign up for free on cookiebot.com','cookiebot'); ?></a>
|
906 |
?>
|
907 |
<label>
|
908 |
<input type="radio" name="cookiebot-script-tag-uc-attribute" value="" <?php checked('', $cv, true); ?> />
|
909 |
+
<i><?php _e('None','cookiebot'); ?></i>
|
910 |
</label>
|
911 |
|
912 |
<label>
|
921 |
|
922 |
<label>
|
923 |
<input type="radio" name="cookiebot-script-tag-uc-attribute" value="custom" <?php checked('custom',$cv, true); ?> />
|
924 |
+
<i><?php _e('Choose per subsite','cookiebot'); ?></i>
|
925 |
</label>
|
926 |
<p class="description">
|
927 |
+
<b><?php _e('Setting will apply for all subsites. Subsites will not be able to override.','cookiebot'); ?></b><br />
|
928 |
<?php _e('Add async or defer attribute to Cookiebot script tag. Default: Choose per subsite','cookiebot') ?>
|
929 |
</p>
|
930 |
</td>
|
932 |
<tr valign="top">
|
933 |
<th scope="row">
|
934 |
<?php _e('Add async or defer attribute','cookiebot'); ?>
|
935 |
+
<br /><?php _e('Cookie declaration script tag','cookiebot'); ?>
|
936 |
</th>
|
937 |
<td>
|
938 |
<?php
|
940 |
?>
|
941 |
<label>
|
942 |
<input type="radio" name="cookiebot-script-tag-cd-attribute" value="" <?php checked('', $cv, true); ?> />
|
943 |
+
<i><?php _e('None','cookiebot'); ?></i>
|
944 |
</label>
|
945 |
|
946 |
<label>
|
955 |
|
956 |
<label>
|
957 |
<input type="radio" name="cookiebot-script-tag-cd-attribute" value="custom" <?php checked('custom',$cv, true); ?> />
|
958 |
+
<i><?php _e('Choose per subsite','cookiebot'); ?></i>
|
959 |
</label>
|
960 |
<p class="description">
|
961 |
+
<b><?php _e('Setting will apply for all subsites. Subsites will not be able to override.','cookiebot'); ?></b><br />
|
962 |
<?php _e('Add async or defer attribute to Cookiebot script tag. Default: Choose per subsite','cookiebot') ?>
|
963 |
</p>
|
964 |
</td>
|
1114 |
</div>
|
1115 |
<?php
|
1116 |
}
|
1117 |
+
|
1118 |
+
/**
|
1119 |
+
* Cookiebot_WP Debug Page
|
1120 |
+
*
|
1121 |
+
* @version 3.6.0
|
1122 |
+
* @since 3.6.0
|
1123 |
+
*/
|
1124 |
+
|
1125 |
+
function debug_page() {
|
1126 |
+
global $wpdb;
|
1127 |
+
|
1128 |
+
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
1129 |
+
$plugins = get_plugins();
|
1130 |
+
$active_plugins = get_option( 'active_plugins' );
|
1131 |
+
|
1132 |
+
|
1133 |
+
//$foo = new cookiebot_addons\lib\Settings_Service;
|
1134 |
+
//$addons = $foo->get_active_addons();
|
1135 |
+
|
1136 |
+
$debugStr = "";
|
1137 |
+
$debugStr.= "##### Debug Information for ".get_site_url()." generated at ".date("c")." #####\n\n";
|
1138 |
+
$debugStr.= "Wordpress Version: ".get_bloginfo('version')."\n";
|
1139 |
+
$debugStr.= "Wordpress Language: ".get_bloginfo('language')."\n";
|
1140 |
+
$debugStr.= "PHP Version: ".phpversion()."\n";
|
1141 |
+
$debugStr.= "MySQL Version: ".$wpdb->db_version()."\n";
|
1142 |
+
$debugStr.= "\n--- Cookiebot Information ---\n";
|
1143 |
+
$debugStr.= "Plugin Version: ".$this->version."\n";
|
1144 |
+
$debugStr.= "Cookiebot ID: ".$this->get_cbid()."\n";
|
1145 |
+
$debugStr.= "Blocking mode: ".get_option('cookiebot-cookie-blocking-mode')."\n";
|
1146 |
+
$debugStr.= "Language: ".get_option('cookiebot-language')."\n";
|
1147 |
+
$debugStr.= "IAB: ".(get_option('cookiebot-iab') == '1' ? 'Enabled' : 'Not enabled')."\n";
|
1148 |
+
$debugStr.= "Add async/defer to banner tag: ".(get_option('cookiebot-script-tag-uc-attribute') != '' ? get_option('cookiebot-script-tag-uc-attribute') : 'None')."\n";
|
1149 |
+
$debugStr.= "Add async/defer to declaration tag: ".(get_option('cookiebot-script-tag-cd-attribute') != '' ? get_option('cookiebot-script-tag-cd-attribute') : 'None')."\n";
|
1150 |
+
$debugStr.= "Auto update: ".(get_option('cookiebot-autoupdate') == '1' ? 'Enabled' : 'Not enabled')."\n";
|
1151 |
+
$debugStr.= "Hide Cookie Popup: ".(get_option('cookiebot-nooutput') == '1' ? 'Yes' : 'No')."\n";
|
1152 |
+
$debugStr.= "Disable Cookiebot in WP Admin: ".(get_option('cookiebot-nooutput-admin') == '1' ? 'Yes' : 'No')."\n";
|
1153 |
+
$debugStr.= "Banner tag: ".$this->add_js(false)."\n";
|
1154 |
+
$debugStr.= "Declaration tag: ".$this->show_declaration()."\n";
|
1155 |
+
|
1156 |
+
if($this->is_wp_consent_api_active()) {
|
1157 |
+
$debugStr.= "\n--- WP Consent Level API Mapping ---\n";
|
1158 |
+
$debugStr .= 'F = Functional, N = Necessary, P = Preferences, M = Marketing, S = Statistics, SA = Statistics Anonymous'."\n";
|
1159 |
+
$m = $this->get_wp_consent_api_mapping();
|
1160 |
+
foreach($m as $k=>$v) {
|
1161 |
+
$cb = array();
|
1162 |
+
|
1163 |
+
$debugStr .= strtoupper( str_replace(';', ', ', $k ) ) . ' => ';
|
1164 |
+
|
1165 |
+
$debugStr .= 'F=1, ';
|
1166 |
+
$debugStr .= 'P=' . $v['preferences'] . ', ';
|
1167 |
+
$debugStr .= 'M=' . $v['marketing'] . ', ';
|
1168 |
+
$debugStr .= 'S=' . $v['statistics'] . ', ';
|
1169 |
+
$debugStr .= 'SA=' . $v['statistics-anonymous'] . "\n";
|
1170 |
+
|
1171 |
+
}
|
1172 |
+
|
1173 |
+
}
|
1174 |
+
|
1175 |
+
if(class_exists('cookiebot_addons\Cookiebot_Addons')) {
|
1176 |
+
$ca = new cookiebot_addons\Cookiebot_Addons();
|
1177 |
+
$settingservice = $ca->container->get( 'Settings_Service_Interface' );
|
1178 |
+
$addons = $settingservice->get_active_addons();
|
1179 |
+
$debugStr.= "\n--- Activated Cookiebot Addons ---\n";
|
1180 |
+
foreach($addons as $addon) {
|
1181 |
+
$debugStr.= $addon->get_addon_name()." (".implode( ", ", $addon->get_cookie_types() ).")\n";
|
1182 |
+
}
|
1183 |
+
}
|
1184 |
+
|
1185 |
+
$debugStr.= "\n--- Activated Plugins ---\n";
|
1186 |
+
foreach($active_plugins as $p) {
|
1187 |
+
if($p != 'cookiebot/cookiebot.php') {
|
1188 |
+
$debugStr.= $plugins[$p]['Name'] . " (Version: ".$plugins[$p]['Version'].")\n";
|
1189 |
+
}
|
1190 |
+
}
|
1191 |
+
|
1192 |
+
$debugStr.= "\n##### Debug Information END #####";
|
1193 |
+
|
1194 |
+
?>
|
1195 |
+
<div class="wrap">
|
1196 |
+
<h1><?php _e('Debug information','cookiebot'); ?></h1>
|
1197 |
+
<p><?php _e('The information below is for debugging purpose. If you have any issues with your Cookiebot integration, the information below is usefull for a supporter to help you the best way.'); ?></p>
|
1198 |
+
<p><button class="button button-primary" onclick="copyDebugInfo();"><?php _e('Copy debug information to clipboard'); ?></button></p>
|
1199 |
+
<textarea cols="100" rows="40" style="width:800px;max-width:100%;" id="cookiebot-debug-info" readonly><?php echo $debugStr; ?></textarea>
|
1200 |
+
<script>
|
1201 |
+
function copyDebugInfo() {
|
1202 |
+
var t = document.getElementById("cookiebot-debug-info");
|
1203 |
+
t.select();
|
1204 |
+
t.setSelectionRange(0, 99999);
|
1205 |
+
document.execCommand("copy");
|
1206 |
+
}
|
1207 |
+
</script>
|
1208 |
+
</div>
|
1209 |
+
<?php
|
1210 |
+
}
|
1211 |
|
1212 |
/**
|
1213 |
* Cookiebot_WP Add Cookiebot JS to <head>
|
1214 |
*
|
1215 |
+
* @version 3.6.0
|
1216 |
* @since 1.0.0
|
1217 |
*/
|
1218 |
+
function add_js($printTag=true) {
|
1219 |
$cbid = $this->get_cbid();
|
1220 |
if(!empty($cbid) && !defined('COOKIEBOT_DISABLE_ON_PAGE')) {
|
1221 |
if(is_multisite() && get_site_option('cookiebot-nooutput',false)) {
|
1225 |
return; //Do not show JS - output disabled
|
1226 |
}
|
1227 |
|
1228 |
+
if($this->get_cookie_blocking_mode() == 'auto' && $this->can_current_user_edit_theme() && $printTag !== false ) {
|
1229 |
+
return;
|
1230 |
+
}
|
1231 |
|
1232 |
$lang = $this->get_language();
|
1233 |
if(!empty($lang)) {
|
1246 |
}
|
1247 |
|
1248 |
$iab = ( get_option('cookiebot-iab') != false ) ? 'data-framework="IAB"' : '';
|
1249 |
+
|
1250 |
+
$tag = '<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" '.$iab.' data-cbid="'.$cbid.'"'.$lang.' type="text/javascript" '.$tagAttr.'></script>';
|
1251 |
+
if($printTag===false) {
|
1252 |
+
return $tag;
|
1253 |
+
}
|
1254 |
+
echo $tag;
|
1255 |
}
|
1256 |
}
|
1257 |
|
1288 |
* @version 2.2.0
|
1289 |
* @since 1.0.0
|
1290 |
*/
|
1291 |
+
function show_declaration($atts=array()) {
|
1292 |
$cbid = $this->get_cbid();
|
1293 |
$lang = '';
|
1294 |
if(!empty($cbid)) {
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Tags: cookie, compliance, eu, gdpr, europe, cookie consent, consent, ccpa
|
4 |
* Requires at least: 4.4
|
5 |
* Tested up to: 5.3.2
|
6 |
-
* Stable tag: 3.
|
7 |
* Requires PHP: 5.6
|
8 |
* License: GPLv2 or later
|
9 |
|
@@ -190,6 +190,10 @@ You are able to define the mapping between Cookiebot and the WP Consent API in t
|
|
190 |
|
191 |
## Changelog ##
|
192 |
|
|
|
|
|
|
|
|
|
193 |
### 3.5.0 - 2020-02-10 ###
|
194 |
* Adding integration with WP Consent API
|
195 |
|
3 |
* Tags: cookie, compliance, eu, gdpr, europe, cookie consent, consent, ccpa
|
4 |
* Requires at least: 4.4
|
5 |
* Tested up to: 5.3.2
|
6 |
+
* Stable tag: 3.6.0
|
7 |
* Requires PHP: 5.6
|
8 |
* License: GPLv2 or later
|
9 |
|
190 |
|
191 |
## Changelog ##
|
192 |
|
193 |
+
### 3.6.0 - 2020-02-18 ###
|
194 |
+
* Adding Debugging submenu
|
195 |
+
* Update GADWP addon to support newest version of plugin
|
196 |
+
|
197 |
### 3.5.0 - 2020-02-10 ###
|
198 |
* Adding integration with WP Consent API
|
199 |
|