iubenda Cookie Solution for GDPR - Version 1.10.0

Version Description

  • New: Multi-language support with WPML integration
  • New: AdSense auto-matching/blocking has been redone and now works properly
  • New: Addthis and Sharethis are now also automatically blocked
  • Loads of small fixes and improvements
Download this release

Release Info

Developer Facens
Plugin Icon 128x128 iubenda Cookie Solution for GDPR
Version 1.10.0
Comparing to
See all releases

Code changes from version 1.9.19 to 1.10.0

iubenda-cookie-class/iubenda.class.php CHANGED
@@ -11,7 +11,9 @@
11
  'connect.facebook.net',
12
  'www.youtube.com/iframe_api',
13
  'pagead2.googlesyndication.com/pagead/show_ads.js',
14
- 'pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'
 
 
15
  );
16
 
17
  public $auto_iframe_tags = array(
@@ -47,41 +49,24 @@
47
  print iubenda banner, parameter: the script code of iubenda to print the banner
48
  */
49
  public function print_banner($banner){
50
- return $banner.="
51
  <script>
52
- (function(){
53
-
54
- function extendObj() {
55
- for (var i = 1; i < arguments.length; i++)
56
- for (var key in arguments[i])
57
- if (arguments[i].hasOwnProperty(key))
58
- arguments[0][key] = arguments[i][key];
59
- return arguments[0];
60
- }
61
-
62
-
63
- var userCallback, extend;
64
-
65
- if(typeof(_iub.csConfiguration.callback) !== 'undefined'){
66
- userCallback = _iub.csConfiguration.callback.onConsentGiven || function(){};
67
- }else{
68
- userCallback = function(){};
69
- }
70
-
71
- extend = {
72
- callback: {
73
- onConsentGiven: function(){
74
- userCallback();
75
- jQuery('noscript._no_script_iub').each(function(a,b){
76
- var el = jQuery(b);
77
- el.after(el.html());
78
- });
79
- }
80
- }
81
- };
82
-
83
- extendObj(_iub.csConfiguration, extend);
84
- })();
85
  </script>";
86
  }
87
 
@@ -89,10 +74,7 @@
89
  Static, detect bot & crawler
90
  */
91
  static function bot_detected() {
92
- if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
93
- return true;
94
- }
95
- return false;
96
  }
97
 
98
  /*
@@ -193,21 +175,21 @@
193
  $count = count($scripts);
194
  for($j=0; $j<$count; $j++){
195
  $s = $scripts[$j];
196
- if($s->innertext){
197
  $this->scripts_detected[] = $s->innertext;
198
  if (Page::strpos_array($s->innertext, $this->auto_script_tags) !== false) {
199
  $class = $s->class;
200
- $s->class = $class . ' _iub_cs_activate';
201
  $s->type = 'text/plain';
202
- $this->scripts_converted[] = $s->innertext;
203
  }
204
  }else{
205
- $src = $s->src;
206
  if($src){
207
  $this->scripts_inline_detected[] = $src;
208
  if (Page::strpos_array($src, $this->auto_script_tags) !== false) {
209
  $class = $s->class;
210
- $s->class = $class . ' _iub_cs_activate-inline';
211
  $s->type = 'text/plain';
212
  $this->scripts_inline_converted[] = $src;
213
  }
@@ -215,6 +197,115 @@
215
  }
216
  }
217
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  $this->content_page = $html;
219
  }
220
  }
11
  'connect.facebook.net',
12
  'www.youtube.com/iframe_api',
13
  'pagead2.googlesyndication.com/pagead/show_ads.js',
14
+ 'pagead2.googlesyndication.com/pagead/js/adsbygoogle.js',
15
+ 'sharethis.com/button/buttons.js',
16
+ 'addthis.com/js/'
17
  );
18
 
19
  public $auto_iframe_tags = array(
49
  print iubenda banner, parameter: the script code of iubenda to print the banner
50
  */
51
  public function print_banner($banner){
52
+ return $banner.= "\n
53
  <script>
54
+ var iCallback = function(){};
55
+
56
+ if('callback' in _iub.csConfiguration) {
57
+ if('onConsentGiven' in _iub.csConfiguration.callback) iCallback = _iub.csConfiguration.callback.onConsentGiven;
58
+
59
+ _iub.csConfiguration.callback.onConsentGiven = function()
60
+ {
61
+ iCallback();
62
+
63
+ /*
64
+ * Separator
65
+ */
66
+
67
+ jQuery('noscript._no_script_iub').each(function (a, b) { var el = jQuery(b); el.after(el.html()); });
68
+ };
69
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  </script>";
71
  }
72
 
74
  Static, detect bot & crawler
75
  */
76
  static function bot_detected() {
77
+ return (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT']));
 
 
 
78
  }
79
 
80
  /*
175
  $count = count($scripts);
176
  for($j=0; $j<$count; $j++){
177
  $s = $scripts[$j];
178
+ if(!empty($s->innertext)){
179
  $this->scripts_detected[] = $s->innertext;
180
  if (Page::strpos_array($s->innertext, $this->auto_script_tags) !== false) {
181
  $class = $s->class;
182
+ $s->class = $class . ' _iub_cs_activate-inline';
183
  $s->type = 'text/plain';
184
+ $this->scripts_converted[] = $s->innertext;
185
  }
186
  }else{
187
+ $src = $s->src;
188
  if($src){
189
  $this->scripts_inline_detected[] = $src;
190
  if (Page::strpos_array($src, $this->auto_script_tags) !== false) {
191
  $class = $s->class;
192
+ $s->class = $class . ' _iub_cs_activate';
193
  $s->type = 'text/plain';
194
  $this->scripts_inline_converted[] = $src;
195
  }
197
  }
198
  }
199
  }
200
+
201
+ /*
202
+ * AdSense check by Peste Vasile Alexandru, AdSense here
203
+ */
204
+
205
+ $ad_found = false;
206
+
207
+ while(preg_match("#google_ad_client =(.*?);#i", $html))
208
+ {
209
+ $ad_found = true;
210
+ $ad_client = null;
211
+ $ad_slot = null;
212
+ $ad_width = null;
213
+ $ad_height = null;
214
+ $ad_block = null;
215
+
216
+ /**/
217
+
218
+ preg_match("#google_ad_client =(.*?);#i", $html, $ad_client);
219
+ preg_match("#google_ad_slot =(.*?);#i", $html, $ad_slot);
220
+ preg_match("#google_ad_width =(.*?);#i", $html, $ad_width);
221
+ preg_match("#google_ad_height =(.*?);#i", $html, $ad_height);
222
+
223
+ /**/
224
+
225
+ $html = preg_replace("#google_ad_client =(.*?);#i", "", $html, 1);
226
+ $html = preg_replace("#google_ad_slot =(.*?);#i", "", $html, 1);
227
+ $html = preg_replace("#google_ad_width =(.*?);#i", "", $html, 1);
228
+ $html = preg_replace("#google_ad_height =(.*?);#i", "", $html, 1);
229
+
230
+ /**/
231
+
232
+ $ad_client = trim($ad_client[1]);
233
+ $ad_slot = trim($ad_slot[1]);
234
+ $ad_width = trim($ad_width[1]);
235
+ $ad_height = trim($ad_height[1]);
236
+
237
+ /**/
238
+
239
+ $ad_class = 'class="_iub_cs_activate_google_ads"';
240
+ $ad_style = 'style="width:'.$ad_width.'px; height:'.$ad_height.'px;"';
241
+
242
+ $ad_client = 'data-client='.$ad_client;
243
+ $ad_slot = 'data-slot='.$ad_slot;
244
+ $ad_width = 'data-width="'.$ad_width.'"';
245
+ $ad_height = 'data-height="'.$ad_height.'"';
246
+
247
+ /**/
248
+
249
+ $ad_block = "<div $ad_style $ad_class $ad_width $ad_height $ad_slot $ad_client></div>";
250
+
251
+ /**/
252
+
253
+ $html = preg_replace('#(<[^>]+) src="//pagead2.googlesyndication.com/pagead/show_ads.js"(.*?)</script>#i', $ad_block, $html, 1);
254
+ }
255
+
256
+ /**/
257
+
258
+ if($ad_found)
259
+ {
260
+ $adSense_script =
261
+ "
262
+ <script>
263
+ function iubenda_adsense_unblock(){
264
+ var t = 1;
265
+ jQuery('._iub_cs_activate_google_ads').each(function() {
266
+ var banner = jQuery(this);
267
+ setTimeout(function(){
268
+ var client = banner.data('client');
269
+ var slot = banner.data('slot');
270
+ var width = banner.data('width');
271
+ var height = banner.data('height');
272
+ var adsense_script = '<scr'+'ipt>'
273
+ + 'google_ad_client = ".chr(34)."'+client+'".chr(34).";'
274
+ + 'google_ad_slot = '+slot+';'
275
+ + 'google_ad_width = '+width+';'
276
+ + 'google_ad_height = '+height+';'
277
+ + '</scr'+'ipt>';
278
+ var script = document.createElement('script');
279
+ var ads = document.createElement('ads');
280
+ var w = document.write;
281
+ script.setAttribute('type', 'text/javascript');
282
+ script.setAttribute('src', 'http://pagead2.googlesyndication.com/pagead/show_ads.js');
283
+ document.write = (function(params) {
284
+ ads.innerHTML = params;
285
+ document.write = w;
286
+ });
287
+ banner.html(adsense_script).append(ads).append(script);
288
+ }, t);
289
+ t += 300;
290
+ });
291
+ }
292
+ if('callback' in _iub.csConfiguration) {
293
+ _iub.csConfiguration.callback.onConsentGiven = iubenda_adsense_unblock;
294
+ }
295
+ else
296
+ {
297
+ _iub.csConfiguration.callback = {};
298
+
299
+ _iub.csConfiguration.callback.onConsentGiven = iubenda_adsense_unblock;
300
+ }
301
+ </script>
302
+ ";
303
+
304
+ $html = str_replace("</body>", "$adSense_script</body>", $html);
305
+ }
306
+
307
+ /**/
308
+
309
  $this->content_page = $html;
310
  }
311
  }
iubenda-cookie-class/simple_html_dom.php CHANGED
@@ -1055,7 +1055,7 @@ class simple_html_dom
1055
  global $debug_object;
1056
 
1057
  // prepare
1058
- $this->prepare($str, $lowercase, $stripRN, $defaultBRText, $defaultSpanText);
1059
  // strip out cdata
1060
  $this->remove_noise("'<!\[CDATA\[(.*?)\]\]>'is", true);
1061
  // strip out comments
1055
  global $debug_object;
1056
 
1057
  // prepare
1058
+ $this->prepare($str, $lowercase, $stripRN, '', '');
1059
  // strip out cdata
1060
  $this->remove_noise("'<!\[CDATA\[(.*?)\]\]>'is", true);
1061
  // strip out comments
iubenda-cookie-class/test.php CHANGED
@@ -1,3 +1,7 @@
 
 
 
 
1
  <html>
2
  <head>
3
  <!-- Latest compiled and minified CSS -->
@@ -25,9 +29,8 @@ ul li { list-style-type: none; }
25
  <?php
26
 
27
  $url = $_POST['url'];
28
- if($url){
29
-
30
-
31
  function print_stuff($array){
32
  if(count($array)){
33
  echo "<ul>";
@@ -44,7 +47,12 @@ ul li { list-style-type: none; }
44
  include_once 'iubenda.class.php';
45
  include_once 'simple_html_dom.php';
46
 
47
- $content = file_get_contents($url);
 
 
 
 
 
48
  $page = new Page($content);
49
  $page->parse();
50
 
1
+ <?php
2
+ ini_set('max_execution_time', 300);
3
+ ?>
4
+
5
  <html>
6
  <head>
7
  <!-- Latest compiled and minified CSS -->
29
  <?php
30
 
31
  $url = $_POST['url'];
32
+ if($url || $_GET['url']){
33
+
 
34
  function print_stuff($array){
35
  if(count($array)){
36
  echo "<ul>";
47
  include_once 'iubenda.class.php';
48
  include_once 'simple_html_dom.php';
49
 
50
+ if($_GET['url']){
51
+ $content = file_get_contents('A');
52
+ }else{
53
+ $content = file_get_contents($url);
54
+ }
55
+
56
  $page = new Page($content);
57
  $page->parse();
58
 
iubenda-cookie-class/usage.php CHANGED
@@ -5,11 +5,11 @@
5
  // Check if the user has already given consent
6
  if(!Page::consent_given()){
7
 
8
- $url = 'http://iubenda.com';
9
 
10
  // Here you should pass the content of the page, this is just an example
11
  // using file_get_contents(url) to have a real web page
12
- $content = file_get_contents($url);
13
 
14
  // Istantiate new Page with content
15
  $page = new Page($content);
5
  // Check if the user has already given consent
6
  if(!Page::consent_given()){
7
 
8
+ $url = 'http://www.facciamoilpresepe.it';
9
 
10
  // Here you should pass the content of the page, this is just an example
11
  // using file_get_contents(url) to have a real web page
12
+ $content = file_get_contents(A);
13
 
14
  // Istantiate new Page with content
15
  $page = new Page($content);
iubenda_cookie_solution.php CHANGED
@@ -4,104 +4,125 @@
4
  Plugin URI: https://www.iubenda.com
5
  Description: Iubenda Cookie Solution permette di gestire tutti gli aspetti della cookie law su WP.
6
  Author: iubenda
7
- Version: 1.9.19
 
8
  Author URI: https://www.iubenda.com
9
  */
10
 
11
- if(!function_exists('file_get_html')){
12
- include_once dirname(__FILE__) . '/iubenda-cookie-class/simple_html_dom.php';
13
- }
14
-
15
- include_once dirname(__FILE__) . '/iubenda-cookie-class/iubenda.class.php';
16
-
17
  DEFINE('DEBUG', 0);
18
- DEFINE('VOICE_MENU', 'Iubenda Cookie Solution');
19
  DEFINE('URL_MENU', str_replace(' ', '_', VOICE_MENU));
20
  DEFINE('IUB_REGEX_PATTERN', '/<!--IUB_COOKIE_POLICY_START-->(.*)<!--IUB_COOKIE_POLICY_END-->/sU');
21
  DEFINE('IUB_NO_PARSE_GET_PARAM', 'iub_no_parse');
22
-
23
-
24
- function iub_header(){
25
- ob_start();
26
- $iub_code = get_option('iub_code');
27
- $str = html_entity_decode(stripslashes($iub_code));
28
-
29
- if(!Page::consent_given() && !DEBUG && !Page::bot_detected() || $_GET[IUB_NO_PARSE_GET_PARAM]){
30
- $str.="\n
31
- <script>
32
- (function(){
33
-
34
- function extendObj() {
35
- for (var i = 1; i < arguments.length; i++)
36
- for (var key in arguments[i])
37
- if (arguments[i].hasOwnProperty(key))
38
- arguments[0][key] = arguments[i][key];
39
- return arguments[0];
40
- }
41
-
42
-
43
- var userCallback, extend;
44
-
45
- if(typeof(_iub.csConfiguration.callback) !== 'undefined'){
46
- userCallback = _iub.csConfiguration.callback.onConsentGiven || function(){};
47
- }else{
48
- userCallback = function(){};
49
- }
50
-
51
- extend = {
52
- callback: {
53
- onConsentGiven: function(){
54
- userCallback();
55
- jQuery('noscript._no_script_iub').each(function(a,b){
56
- var el = jQuery(b);
57
- el.after(el.html());
58
- });
59
- }
60
- }
61
- };
62
-
63
- extendObj(_iub.csConfiguration, extend);
64
- })();
65
- </script>";
66
- }
67
-
68
- echo $str;
69
- }
70
-
71
- add_action('wp_head', 'iub_header', 99);
72
-
73
-
74
- function __shutdown(){
75
- $final = '';
76
-
77
- // We'll need to get the number of ob levels we're in, so that we can iterate over each, collecting
78
- // that buffer's output into the final output.
79
- $levels = count(ob_get_level());
80
-
81
- for ($i = 0; $i < $levels; $i++){
82
- $final .= ob_get_clean();
83
  }
84
-
85
- // Apply any filters to the final output
86
- echo apply_filters('final_output', $final);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  }
 
 
88
 
89
- add_action('shutdown', '__shutdown', 0);
90
-
91
-
92
- function __final_output($output){
93
-
94
- if(Page::consent_given() && !DEBUG || $_GET[IUB_NO_PARSE_GET_PARAM] || Page::bot_detected()){
 
95
  return $output;
96
  }
 
 
97
 
98
  $page = new Page($output);
99
  $page->parse();
100
- return $page->get_converted_page();
101
- }
102
 
103
- add_filter('final_output', '__final_output');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
  function iub_func($atts, $content = "") {
107
  return '<!--IUB_COOKIE_POLICY_START-->'.do_shortcode($content).'<!--IUB_COOKIE_POLICY_END-->';
@@ -118,65 +139,325 @@
118
  ************************************/
119
 
120
 
121
- function iub_admin_actions() {
122
- add_options_page(VOICE_MENU, VOICE_MENU, 1, URL_MENU, 'iub_admin');
 
123
  }
124
 
125
 
126
- function iub_admin(){
127
-
128
- if (get_option('skip_parsing') === false){
129
- add_option('skip_parsing', 'on');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
 
132
- /* Handling POST DATA and FETCHING from DB */
133
- if($_POST['iub_update_form'] == 1) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
 
135
- $iub_code = htmlentities($_POST['iub_code']);
136
- $skip_parsing = htmlentities($_POST['skip_parsing']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
 
138
- update_option('skip_parsing', $skip_parsing, 'on');
139
- update_option('iub_code', $iub_code);
140
- echo '<div class="updated"><p><strong>Opzioni salvate</strong></p></div>';
141
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
 
143
- $iub_code = get_option('iub_code');
144
- $skip_parsing = get_option('skip_parsing');
145
-
146
- $checked = '';
147
- if($skip_parsing){
148
- $checked = 'checked="true"';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  }
150
-
151
-
152
- echo '
153
- <div class="wrap">
154
- <h2> iubenda Cookie Policy Solution</h2>
155
- <form name="iub_form" method="post" action="'.str_replace( '%7E', '~', $_SERVER['REQUEST_URI']).'">
156
- <h4>Iubenda settings</h4>
157
- <p>
158
- Codice iubenda<br>
159
- <textarea name="iub_code" cols="44" rows="13">'.stripslashes($iub_code).'</textarea>
160
  </p>
161
  <p>
162
- <input type="checkbox" name="skip_parsing" '.$checked.'>
163
- Salta il parsing della pagina se l\'utente ha già dato il consenso (migliora le prestazioni, altamente consigliato).
164
  </p>
165
-
166
- <p class="submit">
167
- <input type="hidden" name="iub_update_form" value="1">
168
- <input type="submit" name="Submit" value="Update">
169
- </p>
170
-
171
- </form>
172
- <p>
173
- Per informazioni ed istruzioni su questo plugin, visita questa guida:<br>
174
- <a href="https://www.iubenda.com/it/help/posts/810">https://www.iubenda.com/it/help/posts/810</a>
175
- </p>
176
- </div>';
177
  }
178
-
179
-
180
- add_action('admin_menu', 'iub_admin_actions');
181
-
182
- ?>
4
  Plugin URI: https://www.iubenda.com
5
  Description: Iubenda Cookie Solution permette di gestire tutti gli aspetti della cookie law su WP.
6
  Author: iubenda
7
+ Version: 1.10.0
8
+ Text Domain: iubenda-cookie-wp-plugin
9
  Author URI: https://www.iubenda.com
10
  */
11
 
 
 
 
 
 
 
12
  DEFINE('DEBUG', 0);
13
+ DEFINE('VOICE_MENU', 'Iubenda');
14
  DEFINE('URL_MENU', str_replace(' ', '_', VOICE_MENU));
15
  DEFINE('IUB_REGEX_PATTERN', '/<!--IUB_COOKIE_POLICY_START-->(.*)<!--IUB_COOKIE_POLICY_END-->/sU');
16
  DEFINE('IUB_NO_PARSE_GET_PARAM', 'iub_no_parse');
17
+
18
+ /**/
19
+
20
+ function iubenda_load_admin_panel()
21
+ {
22
+ /*
23
+ * Check for WPML
24
+ */
25
+
26
+ if(function_exists('icl_object_id')) {
27
+ define("IUBENDA_WPML", true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  }
29
+
30
+ /*
31
+ * Check for SimpleHTMLDom
32
+ */
33
+
34
+ if(!function_exists('file_get_html')){
35
+ include_once dirname(__FILE__) . '/iubenda-cookie-class/simple_html_dom.php';
36
+ }
37
+
38
+ /*
39
+ * Import iubenda CLASS
40
+ */
41
+
42
+ include_once dirname(__FILE__) . '/iubenda-cookie-class/iubenda.class.php';
43
+
44
+ /*
45
+ * Add settings panel
46
+ */
47
+
48
+ if(is_admin()) add_action('admin_menu', 'iub_admin');
49
  }
50
+
51
+ add_action("plugins_loaded", "iubenda_load_admin_panel");
52
 
53
+ function iubenda_output_parser($output)
54
+ {
55
+ $iub_no_parse = isset($_GET[IUB_NO_PARSE_GET_PARAM]) ? $_GET[IUB_NO_PARSE_GET_PARAM] : 0;
56
+
57
+ /* Parser & Banner */
58
+
59
+ if($iub_no_parse || Page::bot_detected() || defined('XMLRPC_REQUEST') || Page::consent_given() && get_option('skip_parsing')) {
60
  return $output;
61
  }
62
+
63
+ /**/
64
 
65
  $page = new Page($output);
66
  $page->parse();
67
+
68
+ /**/
69
 
70
+ $iubenda_code = "";
71
+
72
+ /**/
73
+
74
+ $output = $page->get_converted_page();
75
+
76
+ if(defined("IUBENDA_WPML") && get_option("iubenda-code-".ICL_LANGUAGE_CODE))
77
+ {
78
+ $iubenda_code .= get_option("iubenda-code-".ICL_LANGUAGE_CODE);
79
+ }
80
+ else
81
+ {
82
+ $iubenda_code .= get_option("iubenda-code-default");
83
+ }
84
+
85
+ $iubenda_code .= "\n
86
+ <script>
87
+ var iCallback = function(){};
88
+
89
+ if('callback' in _iub.csConfiguration) {
90
+ if('onConsentGiven' in _iub.csConfiguration.callback) iCallback = _iub.csConfiguration.callback.onConsentGiven;
91
+
92
+ _iub.csConfiguration.callback.onConsentGiven = function()
93
+ {
94
+ iCallback();
95
+
96
+ /*
97
+ * Separator
98
+ */
99
+
100
+ jQuery('noscript._no_script_iub').each(function (a, b) { var el = jQuery(b); el.after(el.html()); });
101
+ };
102
+ };
103
+ </script>";
104
+
105
+
106
+ $output = str_replace("</head>", "$iubenda_code</head>", $output);
107
 
108
+ /**/
109
+
110
+ return $output;
111
+ }
112
+
113
+ /**/
114
+
115
+ function iubenda_buffer_start() { ob_start("iubenda_output_parser"); }
116
+ function iubenda_buffer_end() { /* ob_end_flush(); */ }
117
+
118
+ /**/
119
+
120
+ if(!is_admin() && !$_POST) {
121
+ add_action("wp_head", "iubenda_buffer_start");
122
+ add_action("shutdown", "iubenda_buffer_end");
123
+ }
124
+
125
+ /**/
126
 
127
  function iub_func($atts, $content = "") {
128
  return '<!--IUB_COOKIE_POLICY_START-->'.do_shortcode($content).'<!--IUB_COOKIE_POLICY_END-->';
139
  ************************************/
140
 
141
 
142
+ function iub_admin()
143
+ {
144
+ add_menu_page("Iubenda - Settings", "Iubenda", "administrator", __FILE__, "__iub_admin_load");
145
  }
146
 
147
 
148
+ /*
149
+ * Iub admin forms
150
+ *
151
+ */
152
+ function __iub_admin_load(){
153
+
154
+ // Only for debug purposes
155
+ // *Don't touch*
156
+ // delete_option('iub_cp_default');
157
+ // delete_option('iub_cp');
158
+
159
+ /***************************************************************************
160
+ *
161
+ * Style for messages
162
+ *
163
+ ***************************************************************************/
164
+
165
+
166
+ if ( ! current_user_can( 'manage_options' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
167
+ wp_die( __( 'You are not allowed to access this part of the site' ) );
168
  }
169
+
170
+ $iubenda_language = array("it", "de", "en", "es", "br", "ru", "default");
171
+
172
+ if($_POST)
173
+ {
174
+ if(!empty($_POST['skip_parsing'])) {
175
+ update_option("skip_parsing", "skip");
176
+ }
177
+ else {
178
+ update_option("skip_parsing", null);
179
+ }
180
+ }
181
+
182
+ if(!get_option("default_skip_parsing")) {
183
+ update_option("default_skip_parsing", true);
184
+ update_option("skip_parsing", "skip");
185
+ }
186
 
187
+ /**/
188
+
189
+ if($_POST)
190
+ {
191
+ foreach($iubenda_language as $iub_check) {
192
+ if(!empty($_POST["iubenda-code-$iub_check"])) {
193
+ update_option("iubenda-code-$iub_check", stripslashes($_POST["iubenda-code-$iub_check"]));
194
+ }
195
+ }
196
+ }
197
+
198
+ /* */
199
+
200
+ $checked = "";
201
+
202
+ if(get_option("skip_parsing")) $checked = 'checked="true"';
203
+
204
+ /* */
205
+
206
 
207
+ echo '
208
+
209
+ <style>
210
+ #iubenda-tabs
211
+ {
212
+ display: table;
213
+ width: 80%;
214
+ margin: 50px auto;
215
+ }
216
+
217
+ .iubenda-tab
218
+ {
219
+ cursor: pointer;
220
+
221
+ display: inline-table;
222
+ padding: 10px 15px;
223
+ padding-top: 0;
224
+ margin-right: 10px;
225
+
226
+ background-color: #FFFFFF;
227
+ border-top: 2px solid #454545;
228
+ box-shadow: 0 -2px 3px 0 rgba(5, 5, 5, 0.2);
229
+
230
+ color: #454545
231
+ }
232
+ .iubenda-tab:before, .iubenda-tab::before
233
+ {
234
+ content: "";
235
+
236
+ display: table;
237
+ margin: auto;
238
+ margin-bottom: 8px;
239
+
240
+ border-style: solid;
241
+ border-width: 5px 5px 0;
242
+ border-color: transparent transparent;
243
+ }
244
+
245
+ #iubenda-code-it, #iubenda-code-de, #iubenda-code-ru, #iubenda-code-es, #iubenda-code-br, #iubenda-code-en {
246
+ display: none;
247
+
248
+ width: 100%;
249
+
250
+ background-color: #FFFFFF;
251
+ box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
252
+ }
253
+
254
+ #iubenda-information
255
+ {
256
+ width: 100%;
257
+ padding-top: 25px;
258
+ padding-bottom: 25px;
259
+
260
+
261
+ text-indent: 20px;
262
+
263
+ background-color: #FFFFFF;
264
+ box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
265
+ }
266
+
267
+ .iubenda-textarea
268
+ {
269
+ display: block;
270
+ width: 95%; height: 300px;
271
+ margin: 20px auto;
272
+
273
+ overflow-y: scroll;
274
+
275
+ outline: none;
276
+ resize: vertical
277
+ }
278
+
279
+ .iubenda-textarea-single {
280
+ width: 100%;
281
+ box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
282
+ }
283
+
284
+ [data-active-tab]
285
+ {
286
+ border-color: #1FAD81;
287
+
288
+ color: #1FAD81
289
+ }
290
+ [data-active-tab]:before, [data-active-tab]::before
291
+ {
292
+ border-color: #1FAD81 transparent
293
+ }
294
+
295
+ #iubenda-logo {
296
+ display: table;
297
+ }
298
+
299
+ .iubenda-link {
300
+ display: table;
301
+ margin: 55px auto;
302
+ }
303
+
304
+ #iubenda-save
305
+ {
306
+ transition: background-color 300ms, box-shadow 300ms;
307
+ cursor: pointer;
308
+
309
+ display: table;
310
+ margin: 20px 0;
311
+ padding: 5px 10px;
312
+
313
+ background-color: #1FAD81;
314
+ border: none;
315
+ border-radius: 1px;
316
+ box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
317
+
318
+ color: #FFFFFF
319
+ }
320
+ #iubenda-save:hover
321
+ {
322
+ background-color: #199C71;
323
+ box-shadow: 0 0 4px 0 rgba(5, 5, 5, 0.5);
324
+ }
325
+
326
+ #iubenda-saved
327
+ {
328
+ display: table;
329
+ margin: 10px 0;
330
+ width: 100%; height: 30px;
331
+
332
+ background-color: #199C71;
333
+ border-radius: 1px;
334
+ box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
335
+ }
336
+ #iubenda-saved p
337
+ {
338
+ display: table;
339
+ margin: 10px;
340
+
341
+ color: #FFFFFF
342
+ }
343
+
344
+ .iubenda-text
345
+ {
346
+ display: table;
347
+ width: 80%;
348
+ margin: 5px auto;
349
+
350
+ color: #434149
351
+ }
352
+ .iubenda-title
353
+ {
354
+ display: table;
355
+ margin-top: 10px;
356
+
357
+ font-weight: bold;
358
+ }
359
+ .iubenda-url
360
+ {
361
+ display: inline-table;
362
+ margin-bottom: 10px;
363
+ }
364
+ </style>
365
+ <script>
366
+ function iubendaGetLanguage(str) {
367
+ var languages = ["it", "de", "en", "es", "br", "ru"];
368
 
369
+ for(var i = 0; i < languages.length; i++) {
370
+ var tab = document.getElementById("iubenda-code-" + languages[i]);
371
+
372
+ var active_tab = document.querySelector(".iubenda-code-" + languages[i]);
373
+
374
+ if(active_tab) active_tab.removeAttribute("data-active-tab");
375
+
376
+ if(tab) tab.style.display = "none";
377
+ }
378
+
379
+ var tab = document.getElementById("iubenda-code-" + str);
380
+ var active_tab = document.querySelector(".iubenda-code-" + str);
381
+
382
+ if(tab) tab.style.display = "table";
383
+ if(active_tab) active_tab.setAttribute("data-active-tab", "");
384
+
385
+ document.getElementById("iubenda-information").style.display = "none";
386
+ }
387
+
388
+ setTimeout
389
+ (
390
+ function() {
391
+ var x = document.getElementById("iubenda-saved");
392
+
393
+ if(x) x.style.display = "none";
394
+ }, 3000
395
+ );
396
+ </script>
397
+
398
+ <a class="iubenda-link" href="http://iubenda.com"><img id="iubenda-logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAAAdCAMAAAB8M6mmAAAAhFBMVEUAAAA0O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0I0O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr380O0Ibr3/////G69+35tdTw5/U8Ofx+vdiyKd+0rep4c/i9e8otIeN17/AB1g0AAAAHnRSTlMAEBAgIDAwQEBQUGBwcICAkJCgoLCwwMDQ0ODg8PCQCZ0FAAACrklEQVR4Xr2V63LbIBCFF1OZKBCiKAohlK7kXHt5//cruyDjjFTX42l9fnhh1+yHGB0EAJu7kXS/gUto8zRmPV2Edz/OergA7ctYtV0DCKPPBCgrF7kb4rzs3incrCzpEd05LKEDolqkb4nzNr1RuF1UB8TzcE1E/CPu+7Rbxwnozn06Eddw25H0wr9XsJQh3Flyazh4HGd9hRWpf4zbfptx15fAwR53dRHcWHFSkQDKoOJ05w5M1NjBdXpvFU0WW9TlHidN73rbVtz7844PU7mIiADQOkyaccIjqQOW6DHQ/3yTxiYg2pQhqVIfMPYDYiwZHdF3gdpk3K/XadoVH6hCgbbivMcsyzSPhntiFBAcbcOj6xI/QKl7UYynciOTj9YWJ/z8scfBjIOKQ68ADC2n8+oKNc37FHuqp7xMsQGuRzHvV1U/tMVQVwm0O4oLIg+4v0CkKXNiChZxEMVmbQrN/tBjweVdygXu7g84B3N/D6AxWhYdY8ZZgDroM6QaQUfGiwXu8Tiu5UyP0e3VLHERccUIqseCuzkVJzjjMEDVAtfgCk4HdLrgbk/FQcHhMZxa4hqPLg0WuKcTce1fcPITTvMbtoIbj+MaHvWIAxQFuXqYuuLYMKH08xQeTsVpbqRrPx1h9VVxFcd+6w77PX7G+dmtC5zDILK90XAl2nUjoD7A2fJUzRK3AYCBLzc5JCwqIarNTdmHxaRg7YBR5Gl3iJOx8EyKVkjFuxO8qhky7nV6m79ALXdDLyhGxXdf0EJYjO1s9yLFN2TZjgiIngaaSt4FjPla55AWc5o+dx/P0zQ9fzCOT5EfMBU19+nygl5CkeVEaCo6gOfI76AKuewwWgnQ0NRJcNwVxirGgdSGOlkFs5SxLZFrwppaXUoZ6qD1PFWSQ8p9wl3D/9ZvoAF23RgFj1kAAAAASUVORK5CYII="/></a>
399
+
400
+ <p class="iubenda-text">
401
+ Questo plugin &#xE8; il modo pi&#xF9; semplice e completo per adeguare il tuo sito Wordpress alla cookie law. Alla prima visita dell&#x27;utente il plugin si occuper&#xE0; di raccoglierne il consenso, di bloccare i pi&#xF9; popolari fra gli script che installano cookie e di riattivarli non appena il consenso viene fornito. Le impostazioni di base includono la raccolta del consenso tramite il semplice scroll (il metodo pi&#xF9; efficace) e la riattivazione senza il refresh della pagina.
402
+ <span class="iubenda-title">Vuoi capire di più sulla cookie law?</span>
403
+ Consulta <a href="https://www.iubenda.com/it/soluzione-cookie-law" class="iubenda-url" target="_blank">la nostra guida completa alla cookie law</a>.
404
+ <span class="iubenda-title">Quali sono le funzionalità complete del plugin?</span>
405
+ Visita <a href="https://www.iubenda.com/it/help/posts/810" class="iubenda-url" target="_blank">la nostra pagina dedicata al plugin</a>.
406
+ <span class="iubenda-title">Inserisci qui sotto il codice di iubenda per la cookie law.</span>
407
+ Per far funzionare il plugin, è necessario inserire nel form sottostante il codice di iubenda che attiva il banner cookie law e la cookie policy.Questo codice può essere generato su www.iubenda.com, seguendo <a href="https://www.iubenda.com/it/help/posts/680" class="iubenda-url" target="_blank">questa guida
408
+ </a>.
409
+ </p>
410
 
411
+ <form id="iubenda-tabs" method="post" action="'.str_replace('%7E', '~', $_SERVER['REQUEST_URI']).'">';
412
+
413
+ if($_POST) echo '<div id="iubenda-saved"><p>Impostazioni salvate con successo</p></div>';
414
+
415
+ if(defined("IUBENDA_WPML")) {
416
+
417
+ $languages = icl_get_languages('skip_missing=N&orderby=KEY&order=DIR&link_empty_to=str');
418
+
419
+ foreach($languages as $language => $value) {
420
+
421
+ echo
422
+ '
423
+ <div class="iubenda-tab iubenda-code-'.$language.'" onclick="iubendaGetLanguage('.chr(39).$language.chr(39).')">'
424
+ .$value["translated_name"].'
425
+ </div>
426
+ ';
427
+ }
428
+
429
+ foreach($languages as $language => $value) {
430
+ echo
431
+ '
432
+ <div id="iubenda-code-'.$language.'">
433
+ <textarea class="iubenda-textarea" name="iubenda-code-'.$language.'">'.stripslashes(get_option("iubenda-code-".$language)).'</textarea>
434
+ </div>
435
+ ';
436
+ }
437
+
438
+ echo
439
+ '
440
+ <div id="iubenda-information">Seleziona una lingua a cui associare un codice</div>
441
+ ';
442
+
443
  }
444
+ else
445
+ {
446
+ echo '<textarea class="iubenda-textarea iubenda-textarea-single" name="iubenda-code-default">'.stripslashes(get_option("iubenda-code-default")).'</textarea>';
447
+ }
448
+
449
+ echo '
450
+ <p>
451
+ <input type="checkbox" name="skip_parsing" value="skip" '.$checked.'>
452
+ Lascia intatti gli script della pagina se l\'utente ha già dato il consenso (migliora le prestazioni, altamente consigliato, da disattivare solo qualora tuo sito utilizzi un sistema di cache)
 
453
  </p>
454
  <p>
455
+ <input type="submit" value="Save" id="iubenda-save">
 
456
  </p>
457
+ </form>
458
+ <p class="iubenda-text">
459
+ <span class="iubenda-title">Hai bisogno di supporto su questo plugin?</span>
460
+ Visita il nostro <a href="//support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti" class="iubenda-url" target="_blank">forum di supporto</a>.
461
+ </p>';
 
 
 
 
 
 
 
462
  }
463
+ ?>
 
 
 
 
readme.txt CHANGED
@@ -1,31 +1,102 @@
1
  === Plugin Name ===
2
  Contributors: iubenda
3
  Donate link:
4
- Tags: cookies, cookie law, cookie policy, cookie banner, cookie block, privacy policy, cookie consent
5
  Requires at least: 3.0.1
6
- Tested up to: 4.4.2
7
  Stable tag: 1.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
- A plugin that works with the iubenda Cookie Law Solution that shows a cookie banner & allows blocking prior to consent, particularly fit for Italy.
12
 
13
  == Description ==
14
 
15
- NOTE: This plugin is a very early beta and could lead to problems. We encourage you to actively let us know about the problems here: http://gsfn.us/t/4qpks
16
 
17
- This plugin works with the Iubenda Cookie Law Solution and allows to block the most common widgets and third party cookies to comply with Cookie Laws, particularly with the Italian implementation in mind.
 
 
 
18
 
19
  * The plugin automatically inserts the Iubenda code in the head of every page of the site
20
  * It automatically blocks scripts by YouTube, Facebook, G + and Twitter (other automatic blocks on the way!)
21
  * It allows to manually block all the remaining resources, without the need of direct intervention on the code
22
  * It handles the display of cookie banners and cookie policy, saving user preferences about the use of cookies
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
- Under "Installation/Other Notes" you will find instructions in both English and Italian.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
  == Installation ==
27
 
28
- **NOTE: This plugin is a very early beta and could lead to problems.** We encourage you to actively let us know about the problems here: http://gsfn.us/t/4qpks
29
 
30
  - **Installation via WP.org**: search in your WordPress plugin admin panel for "Iubenda Cookie Solution", install it;
31
  - Once the plugin is installed and activated, go to the Admin Panel (Settings > Iubenda Cookie Solution) where you will be asked to paste the code into tht field that gets generated from your Iubenda account dashboard when you activate the cookie law kit for your privacy policy. For more information on how to activate the cookie law kit, see this article: https://www.iubenda.com/it/help/posts/680;
@@ -49,9 +120,33 @@ Under "Installation/Other Notes" you will find instructions in both English and
49
 
50
  1. This screen shot shows the default banner on top of our test site testkada4.altervista.org/cookie-test/example2.html
51
  2. When clicking on the cookie policy link, the user gets a view of the entire cookie policy, where they ultimately can give their consent
 
52
 
53
  == Changelog ==
54
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  = 1.9.19 =
56
  * new iframe src according to the new doc
57
 
@@ -68,7 +163,7 @@ Under "Installation/Other Notes" you will find instructions in both English and
68
  * include bug + google maps
69
 
70
  = 1.9.14 =
71
- * Autoconvert iframe vimeo + facebook likebox
72
 
73
  = 1.9.13 =
74
  * Now the plugin use iubenda.class.php + fix bug on it.
@@ -83,7 +178,7 @@ Under "Installation/Other Notes" you will find instructions in both English and
83
  * Another adsense script blocked, another fix on simple html dom
84
 
85
  = 1.9.9 =
86
- * Bugs page 60000 chars
87
 
88
  = 1.9.8 =
89
  * Added Google Maps & Google Adsense + better shortcode handling
@@ -155,7 +250,7 @@ Header image for this plugin page [graciously provided by this person](http://ww
155
  == Bug reports ==
156
 
157
  * The best way you can help us is by providing as much information as possible, including the use of wp_debug https://codex.wordpress.org/Debugging_in_WordPress.
158
- * We will be very happy to receive feedback here: http://gsfn.us/t/4qpks
159
 
160
  == Istruzioni in italiano ==
161
 
@@ -194,4 +289,4 @@ Al momento il blocco automatico dei video player di YouTube e dei widget sociali
194
  == Segnalazioni di bug ==
195
 
196
  * Il modo migliore per aiutarci è quello di fornire quante più informazioni possibili, compreso l'uso di wp_debug https://codex.wordpress.org/Debugging_in_WordPress.
197
- * Saremo molto contenti di ricevere feedback qui: http://gsfn.us/t/4qpks
1
  === Plugin Name ===
2
  Contributors: iubenda
3
  Donate link:
4
+ Tags: cookies, cookie law, cookie policy, cookie banner, cookie block, privacy policy, cookie consent, privacy
5
  Requires at least: 3.0.1
6
+ Tested up to: 4.4.3
7
  Stable tag: 1.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
+ A plugin that works with the iubenda Cookie Law Solution: shows a cookie banner & allows blocking prior to consent, particularly fit for Italy.
12
 
13
  == Description ==
14
 
15
+ NOTE: This plugin is a beta and could in certain situations still have bugs. We encourage you to actively let us know about any issues here: http://bit.ly/1g79rcQ (support.iubenda.com)
16
 
17
+ * Find a comprehensive _guide and demo_ to the cookie law solution on our help blog https://www.iubenda.com/en/help/posts/1177
18
+
19
+ This plugin is an All-in-One approach developed by iubenda that helps with generating the privacy policy text, the cookie banner and the blocking management of cookies.
20
+ This plugin works with the Iubenda Cookie Law Solution and allows to block the most common widgets and third party cookies to comply with Cookie Laws, particularly with the Italian cookie law implementation in mind.
21
 
22
  * The plugin automatically inserts the Iubenda code in the head of every page of the site
23
  * It automatically blocks scripts by YouTube, Facebook, G + and Twitter (other automatic blocks on the way!)
24
  * It allows to manually block all the remaining resources, without the need of direct intervention on the code
25
  * It handles the display of cookie banners and cookie policy, saving user preferences about the use of cookies
26
+ * It displays a clean page (without banner) to users who have already provided their consent
27
+ * It detects bots/spiders and serves them a clean page
28
+
29
+ The plugin is currently capable of automatically detecting and blocking the following scripts:
30
+
31
+ * Facebook widgets
32
+ * Twitter widgets
33
+ * Google+ widgets
34
+ * Google AdSense
35
+ * YouTube widgets
36
+ * AddThis widgets
37
+ * ShareThis widgets
38
+
39
+ **Some background information**
40
+
41
+ If you have European users you will know the problem: you need to obtain consent for the usage of many types of cookies and you need to manage that consent somehow. Now even Google forces cookie consent onto users of Google AdSense, DoubleClick for Publishers, and DoubleClick Ad Exchange (and even Google Analytics in some cases). Time to get started with a cookie banner.
42
+ Iubenda and the Cookie Law Solution extension for WordPress help remove these complex tasks with a couple of clicks. This extension works with the Iubenda Cookie Law Solution, displays a cookie banner in 8 languages and saves consent for returning users.
43
+
44
+ **Which languages does iubenda work in currently?**
45
+
46
+ * English
47
+ * Italian
48
+ * French
49
+ * Spanish
50
+ * Portuguese (Brazilian)
51
+ * German
52
+ * Dutch
53
+ * Russian
54
+
55
+ -----
56
+
57
+ NOTA: Il plugin è attualmente in versione beta e potrebbe pertanto presentare alcuni bug. Ti invitiamo a segnalare sul nostro forum eventuali malfunzionamenti: http://bit.ly/1Vlbxck (support.iubenda.com)
58
+
59
+ * Consulta la _guida completa_ al kit cookie law di iubenda: https://www.iubenda.com/it/help/posts/680
60
+
61
+ Questo plugin semplifica l’implementazione tecnica della soluzione cookie di iubenda, ad esempio attraverso il blocco automatico dei widget e dei cookie di terze parti più diffusi, al fine di garantire la conformità rispetto alla cookie law, con particolare riguardo alla declinazione voluta dal Garante Privacy italiano.
62
+ La soluzione cookie sviluppata da iubenda permette di gestire con facilità l’adeguamento alla cookie law predisponendo sul proprio sito una privacy/cookie policy, mostrando il cookie banner e bloccando i codici che richiedono consenso preventivo.
63
+
64
+ * Il plugin inserisce in automatico il codice del kit cookie law di iubenda nel tag HEAD di tutte le pagine del sito web
65
+ * Blocca in automatico gli script di YouTube, Facebook, G+ e Twitter (altri blocchi automatici in arrivo!)
66
+ * Consente il blocco manuale di tutte le altre risorse, senza la necessità di interventi diretti sul codice del sito
67
+ * Gestisce la visualizzazione del cookie banner e della cookie policy, la registrazione del consenso ed il salvataggio delle preferenze dell’utente circa l’installazione dei cookie
68
+ * Lascia intatti gli script della pagina se l'utente ha già dato il consenso
69
+ * Rileva i bot/spider ed in questi casi il plugin non mostra alcun banner né blocca gli script
70
 
71
+ Il plugin è attualmente in grado di rilevare e bloccare automaticamente gli script seguenti:
72
+
73
+ * Facebook widget
74
+ * Twitter widget
75
+ * Google+ widget
76
+ * Google AdSense
77
+ * YouTube widget
78
+ * AddThis widget
79
+ * ShareThis widget
80
+
81
+ **Alcune informazioni aggiuntive**
82
+
83
+ Se il tuo sito riceve visite da utenti UE, conosci il problema: ottenere e gestire il consenso all’uso dei cookie. Ora anche Google richiede l’adeguamento alla cookie law per consentire l’uso di Google AdSense, DoubleClick for Publishers e DoubleClick Ad Exchange (in alcuni casi, anche per Google Analytics). Per prima cosa è necessario predisporre un cookie banner.
84
+ Il plugin Wordpress di iubenda permette di semplificare l’adeguamento del proprio sito alla cookie law. In pochi click è possibile gestire la visualizzazione del banner in 8 lingue ed il salvataggio delle preferenze degli utenti.
85
+
86
+ **Quali lingue sono disponibili con iubenda?**
87
+
88
+ * Italiano
89
+ * Inglese
90
+ * Francese
91
+ * Spagnolo
92
+ * Portoghese (Brasiliano)
93
+ * Tedesco
94
+ * Olandese
95
+ * Russo
96
 
97
  == Installation ==
98
 
99
+ **NOTE: This plugin is a beta and could in certain situations still have bugs. We encourage you to actively let us know about any issues here: http://bit.ly/1g79rcQ
100
 
101
  - **Installation via WP.org**: search in your WordPress plugin admin panel for "Iubenda Cookie Solution", install it;
102
  - Once the plugin is installed and activated, go to the Admin Panel (Settings > Iubenda Cookie Solution) where you will be asked to paste the code into tht field that gets generated from your Iubenda account dashboard when you activate the cookie law kit for your privacy policy. For more information on how to activate the cookie law kit, see this article: https://www.iubenda.com/it/help/posts/680;
120
 
121
  1. This screen shot shows the default banner on top of our test site testkada4.altervista.org/cookie-test/example2.html
122
  2. When clicking on the cookie policy link, the user gets a view of the entire cookie policy, where they ultimately can give their consent
123
+ 3. It's as simple as copy-pasting the code from iubenda into the plugin form.
124
 
125
  == Changelog ==
126
 
127
+ = 1.10.0 =
128
+ * New: Multi-language support with WPML integration
129
+ * New: AdSense auto-matching/blocking has been redone and now works properly
130
+ * New: Addthis and Sharethis are now also automatically blocked
131
+ * Loads of small fixes and improvements
132
+
133
+ = 1.9.28 =
134
+ * Fixed some bugs about i18n, created .pot files for translations. Now is true i18n friendly. Tested.
135
+
136
+ = 1.9.27 =
137
+ * i18n friendly
138
+
139
+ = 1.9.26 =
140
+ * Associate cookie policy for installation before/after WPML
141
+
142
+ = 1.9.25 =
143
+ * Hiding E_NOTICE messages
144
+
145
+ = 1.9.24 =
146
+ * skip parsing if XML-RPC request
147
+ * skip parsing if is admin page
148
+ * added multilanguage
149
+
150
  = 1.9.19 =
151
  * new iframe src according to the new doc
152
 
163
  * include bug + google maps
164
 
165
  = 1.9.14 =
166
+ * Autoconvert iframe vimeo + facebook likebox
167
 
168
  = 1.9.13 =
169
  * Now the plugin use iubenda.class.php + fix bug on it.
178
  * Another adsense script blocked, another fix on simple html dom
179
 
180
  = 1.9.9 =
181
+ * Bugs page 60000 chars
182
 
183
  = 1.9.8 =
184
  * Added Google Maps & Google Adsense + better shortcode handling
250
  == Bug reports ==
251
 
252
  * The best way you can help us is by providing as much information as possible, including the use of wp_debug https://codex.wordpress.org/Debugging_in_WordPress.
253
+ * We will be very happy to receive feedback here: http://bit.ly/1g79rcQ
254
 
255
  == Istruzioni in italiano ==
256
 
289
  == Segnalazioni di bug ==
290
 
291
  * Il modo migliore per aiutarci è quello di fornire quante più informazioni possibili, compreso l'uso di wp_debug https://codex.wordpress.org/Debugging_in_WordPress.
292
+ * Saremo molto contenti di ricevere feedback qui: http://bit.ly/1g79rcQ