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 | 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 +135 -44
- iubenda-cookie-class/simple_html_dom.php +1 -1
- iubenda-cookie-class/test.php +12 -4
- iubenda-cookie-class/usage.php +2 -2
- iubenda_cookie_solution.php +411 -130
- readme.txt +106 -11
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 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
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 |
-
|
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 |
-
|
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
|
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,
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
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://
|
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(
|
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.
|
|
|
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
|
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 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
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 |
-
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
}
|
|
|
|
|
88 |
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
|
|
95 |
return $output;
|
96 |
}
|
|
|
|
|
97 |
|
98 |
$page = new Page($output);
|
99 |
$page->parse();
|
100 |
-
|
101 |
-
|
102 |
|
103 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
122 |
-
|
|
|
123 |
}
|
124 |
|
125 |
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
|
132 |
-
|
133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
|
135 |
-
|
136 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
if(
|
148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
}
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
<textarea name="iub_code" cols="44" rows="13">'.stripslashes($iub_code).'</textarea>
|
160 |
</p>
|
161 |
<p>
|
162 |
-
|
163 |
-
Salta il parsing della pagina se l\'utente ha già dato il consenso (migliora le prestazioni, altamente consigliato).
|
164 |
</p>
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
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 è il modo più semplice e completo per adeguare il tuo sito Wordpress alla cookie law. Alla prima visita dell'utente il plugin si occuperà di raccoglierne il consenso, di bloccare i più 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ù 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.
|
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
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
-
NOTE: This plugin is a
|
16 |
|
17 |
-
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
== Installation ==
|
27 |
|
28 |
-
**NOTE: This plugin is a
|
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://
|
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://
|
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
|