Version Description
- New: Multilingual support
- Fix: Multiple classes no longer being added to script tags
- Fix: Buffering action hooks adjustments
- General rewrite using WordPress coding standards
- Turned into OOP
Download this release
Release Info
Developer | Facens |
Plugin | iubenda Cookie Solution for GDPR |
Version | 1.14.0-beta |
Comparing to | |
See all releases |
Code changes from version 1.11.2-beta2 to 1.14.0-beta
- iubenda_cookie_solution.php +504 -804
- readme.txt +16 -13
iubenda_cookie_solution.php
CHANGED
@@ -1,876 +1,576 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
|
|
|
|
32 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
}
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
if(defined("XMLRPC_REQUEST") && XMLRPC_REQUEST || defined("DOING_AJAX") && DOING_AJAX || isset($_SERVER["HTTP_X_REQUESTED_WITH"]) || isset($_GET["iub_no_parse"])) {
|
41 |
-
|
42 |
-
return;
|
43 |
-
|
44 |
}
|
45 |
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
51 |
}
|
52 |
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
if(!function_exists("get_plugins")) {
|
60 |
-
|
61 |
-
return false;
|
62 |
-
|
63 |
-
}
|
64 |
-
|
65 |
-
/*
|
66 |
-
Blacklist
|
67 |
-
*/
|
68 |
-
|
69 |
-
$blacklist = array
|
70 |
-
(
|
71 |
-
"WP Super Cache"
|
72 |
-
);
|
73 |
-
|
74 |
-
$plugins = get_plugins();
|
75 |
-
|
76 |
-
foreach($plugins as $plugin)
|
77 |
-
{
|
78 |
-
foreach($blacklist as $black)
|
79 |
-
{
|
80 |
-
if($plugin["Name"] === $black) {
|
81 |
-
|
82 |
-
return true;
|
83 |
-
|
84 |
-
}
|
85 |
-
}
|
86 |
-
}
|
87 |
-
}
|
88 |
-
|
89 |
-
function iubenda_conflicts_notice()
|
90 |
-
{
|
91 |
-
echo '
|
92 |
-
<div class="notice notice-error is-dismissible">
|
93 |
-
<p id="iubenda-fix-text"><a href="#iubenda-fix" id="iubenda-fix">fix it</a> - iubenda</p>
|
94 |
-
</div>
|
95 |
-
<script type="text/javascript">
|
96 |
-
document.getElementById("iubenda-fix").onclick = function(e)
|
97 |
-
{
|
98 |
-
e.preventDefault();
|
99 |
-
|
100 |
-
jQuery.ajax({
|
101 |
-
type: "POST",
|
102 |
-
url: "http://" + document.location.hostname + ":8888/wp-admin/admin-ajax.php",
|
103 |
-
data: {
|
104 |
-
|
105 |
-
action: "iubenda-autofix-post",
|
106 |
-
iubenda_autofix: "true"
|
107 |
-
|
108 |
-
},
|
109 |
-
dataType: "json"
|
110 |
-
}).done(function(json){}).fail(function(){});
|
111 |
-
}
|
112 |
-
</script>
|
113 |
-
';
|
114 |
}
|
115 |
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
* Checks
|
122 |
-
*/
|
123 |
-
|
124 |
-
if(function_exists("icl_object_id")) {
|
125 |
-
|
126 |
-
define("IUBENDA_WPML", true);
|
127 |
-
|
128 |
-
}
|
129 |
-
|
130 |
-
if(!function_exists("file_get_html"))
|
131 |
-
{
|
132 |
-
require(dirname(__FILE__).IUB_HTML_DOM);
|
133 |
-
}
|
134 |
-
|
135 |
-
require(dirname(__FILE__).IUB_CLASS_FASTER);
|
136 |
-
require(dirname(__FILE__).IUB_CLASS_DEFAULT);
|
137 |
-
|
138 |
-
/*
|
139 |
-
* Admin
|
140 |
-
*/
|
141 |
-
|
142 |
-
if(is_admin()) {
|
143 |
-
|
144 |
-
add_action("admin_menu", "iub_admin");
|
145 |
-
|
146 |
-
}
|
147 |
}
|
148 |
|
149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
-
|
|
|
|
|
152 |
|
153 |
-
|
154 |
-
{
|
155 |
-
if(get_option("iubenda_ctype"))
|
156 |
-
{
|
157 |
-
$iub_headers = headers_list();
|
158 |
-
$destroy = true;
|
159 |
-
|
160 |
-
/**/
|
161 |
-
|
162 |
-
foreach($iub_headers as $h)
|
163 |
-
{
|
164 |
-
if(strpos($h, "Content-Type: text/html") !== false || strpos($h, "Content-type: text/html") !== false)
|
165 |
-
{
|
166 |
-
$destroy = false;
|
167 |
-
}
|
168 |
-
}
|
169 |
-
|
170 |
-
/**/
|
171 |
-
|
172 |
-
if($destroy) {
|
173 |
-
|
174 |
-
define("IUBENDA_NO_HTML", true);
|
175 |
-
|
176 |
-
}
|
177 |
-
}
|
178 |
}
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
update_option("skip_parsing", true);
|
191 |
-
}
|
192 |
-
if(!get_option("default_iubendactype")) {
|
193 |
-
update_option("default_iubendactype", true);
|
194 |
-
update_option("iubenda_ctype", true);
|
195 |
-
}
|
196 |
-
if(!get_option("default_iubendaparse")) {
|
197 |
-
update_option("default_iubendaparse", true);
|
198 |
-
update_option("iubenda_parse", true);
|
199 |
-
}
|
200 |
-
if(!get_option("default_parser_engine")) {
|
201 |
-
update_option("default_parser_engine", true);
|
202 |
-
update_option("parser_engine", "default");
|
203 |
}
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
/*
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
{
|
215 |
-
if(is_user_logged_in())
|
216 |
-
{
|
217 |
-
return;
|
218 |
-
}
|
219 |
-
}
|
220 |
-
|
221 |
*/
|
222 |
-
|
223 |
-
{
|
224 |
return;
|
225 |
}
|
226 |
-
|
227 |
-
|
228 |
-
* __iubenda_buffer_head
|
229 |
-
*/
|
230 |
-
|
231 |
$iubenda_code = "";
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
update_option("iubenda-code-$language_tag", $wpml_old);
|
251 |
-
update_option("iubenda-code-default", $wpml_old);
|
252 |
-
update_option("iub_code", false);
|
253 |
-
}
|
254 |
-
|
255 |
-
if(defined("IUBENDA_WPML") && get_option("iubenda-code-".ICL_LANGUAGE_CODE))
|
256 |
-
{
|
257 |
-
$iubenda_code .= get_option("iubenda-code-".ICL_LANGUAGE_CODE);
|
258 |
}
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
|
|
263 |
}
|
264 |
-
|
265 |
$iubenda_code .= "\n
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
{
|
271 |
-
if('onConsentGiven' in _iub.csConfiguration.callback)
|
272 |
-
|
273 |
-
_iub.csConfiguration.callback.onConsentGiven = function()
|
274 |
-
{
|
275 |
-
iCallback();
|
276 |
-
|
277 |
-
/*
|
278 |
-
* Separator
|
279 |
-
*/
|
280 |
-
|
281 |
-
jQuery('noscript._no_script_iub').each(function (a, b) { var el = jQuery(b); el.after(el.html()); });
|
282 |
-
};
|
283 |
-
};
|
284 |
-
</script>";
|
285 |
-
|
286 |
-
/**/
|
287 |
|
288 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
289 |
}
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
{
|
297 |
-
|
298 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
299 |
return $output;
|
300 |
-
|
301 |
}
|
302 |
-
|
303 |
-
|
|
|
304 |
return $output;
|
305 |
-
|
306 |
-
}
|
307 |
|
308 |
-
|
309 |
-
|
310 |
return $output;
|
311 |
-
|
312 |
}
|
|
|
313 |
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
$startime = microtime(true);
|
322 |
-
|
323 |
-
/**/
|
324 |
|
325 |
-
if(
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
/**/
|
330 |
-
|
331 |
-
$output = $faster -> isParse(mb_convert_encoding($output, "HTML-ENTITIES", "UTF-8"));
|
332 |
-
|
333 |
-
/**/
|
334 |
-
|
335 |
-
$signature = "Parsed with iubenda experimental class in ";
|
336 |
}
|
337 |
-
|
338 |
-
|
339 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
$page->parse();
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
$output = $page->get_converted_page();
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
$signature = "Parsed with iubenda default class in ";
|
349 |
}
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
$output .= "<!-- ".$signature.round(microtime(true) - $startime, 4)."s -->";
|
354 |
-
|
355 |
-
/**/
|
356 |
-
|
357 |
-
return $output;
|
358 |
}
|
359 |
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
}
|
367 |
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
{
|
374 |
-
if(
|
375 |
-
|
376 |
-
add_action("admin_notices", "iubenda_conflicts_notice");
|
377 |
-
|
378 |
}
|
379 |
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
$language_tag = $iubenda_language;
|
397 |
-
|
398 |
-
break;
|
399 |
-
}
|
400 |
-
}
|
401 |
-
|
402 |
-
update_option("iubenda-code-$language_tag", $wpml_old);
|
403 |
-
update_option("iubenda-code-default", $wpml_old);
|
404 |
-
update_option("iub_code", false);
|
405 |
}
|
406 |
|
407 |
-
|
408 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
409 |
}
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
else {
|
419 |
-
update_option("skip_parsing", false);
|
420 |
-
}
|
421 |
-
if(!empty($_POST['iubenda_ctype'])) {
|
422 |
-
update_option("iubenda_ctype", true);
|
423 |
-
}
|
424 |
-
else {
|
425 |
-
update_option("iubenda_ctype", false);
|
426 |
-
}
|
427 |
-
if(!empty($_POST['iubenda_parse'])) {
|
428 |
-
update_option("iubenda_parse", true);
|
429 |
-
}
|
430 |
-
else {
|
431 |
-
update_option("iubenda_parse", false);
|
432 |
-
}
|
433 |
-
if(!empty($_POST['iubenda_output_filter'])) {
|
434 |
-
update_option("iubenda_output_filter", true);
|
435 |
-
}
|
436 |
-
else {
|
437 |
-
update_option("iubenda_output_filter", false);
|
438 |
-
}
|
439 |
-
if(!empty($_POST['iubenda_output_feed'])) {
|
440 |
-
update_option("iubenda_output_feed", true);
|
441 |
-
}
|
442 |
-
else {
|
443 |
-
update_option("iubenda_output_feed", false);
|
444 |
-
}
|
445 |
-
|
446 |
-
if($_POST["parser_engine"] == "default") update_option("parser_engine", "default");
|
447 |
-
if($_POST["parser_engine"] == "new") update_option("parser_engine", "new");
|
448 |
-
}
|
449 |
-
|
450 |
-
/*
|
451 |
-
Enabled by default.
|
452 |
-
*/
|
453 |
-
|
454 |
-
if(!get_option("default_skip_parsing")) {
|
455 |
-
update_option("default_skip_parsing", true);
|
456 |
-
update_option("skip_parsing", "skip");
|
457 |
}
|
458 |
-
if(!get_option("default_parser_engine")) {
|
459 |
-
update_option("default_parser_engine", true);
|
460 |
-
update_option("parser_engine", "default");
|
461 |
}
|
462 |
-
if(!get_option("default_iubendactype")) {
|
463 |
-
update_option("default_iubendactype", true);
|
464 |
-
update_option("iubenda_ctype", true);
|
465 |
}
|
466 |
-
if(!get_option("default_iubendaparse")) {
|
467 |
-
update_option("default_iubendaparse", true);
|
468 |
-
update_option("iubenda_parse", true);
|
469 |
}
|
470 |
-
if(!get_option("default_iubenda_output_feed")) {
|
471 |
-
update_option("default_iubenda_output_feed", true);
|
472 |
-
update_option("iubenda_output_feed", true);
|
473 |
-
}
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
/**/
|
488 |
-
|
489 |
$checked = "";
|
490 |
$checked_ctype = "";
|
491 |
$checked_parse = "";
|
492 |
$checked_output_feed = "";
|
493 |
$checked_output_filter = "";
|
494 |
-
|
495 |
-
if(get_option("iubenda_parse"))
|
496 |
-
|
497 |
-
if(get_option("
|
498 |
-
|
499 |
-
if(get_option("
|
500 |
-
|
|
|
|
|
|
|
|
|
|
|
501 |
$parser_engine_default = "";
|
502 |
$parser_engine_new = "";
|
503 |
-
|
504 |
-
if(get_option("parser_engine") == "default")
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
{
|
513 |
-
display: table;
|
514 |
-
|
515 |
-
width: 90%;
|
516 |
-
margin: 50px auto;
|
517 |
-
|
518 |
-
border-radius: 2px;
|
519 |
-
background-color: #FFFFFF;
|
520 |
-
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1)
|
521 |
-
}
|
522 |
-
#iubenda-tabs
|
523 |
-
{
|
524 |
-
display: table;
|
525 |
-
width: 80%;
|
526 |
-
margin: 50px auto;
|
527 |
-
}
|
528 |
-
|
529 |
-
.iubenda-tab
|
530 |
-
{
|
531 |
-
cursor: pointer;
|
532 |
-
|
533 |
-
display: inline-table;
|
534 |
-
padding: 10px 15px;
|
535 |
-
padding-top: 0;
|
536 |
-
margin-right: 10px;
|
537 |
-
|
538 |
-
background-color: #FFFFFF;
|
539 |
-
border-top: 2px solid #454545;
|
540 |
-
box-shadow: 0 -2px 3px 0 rgba(5, 5, 5, 0.2);
|
541 |
-
|
542 |
-
color: #454545
|
543 |
-
}
|
544 |
-
.iubenda-tab:before, .iubenda-tab::before
|
545 |
-
{
|
546 |
-
content: "";
|
547 |
-
|
548 |
-
display: table;
|
549 |
-
margin: auto;
|
550 |
-
margin-bottom: 8px;
|
551 |
-
|
552 |
-
border-style: solid;
|
553 |
-
border-width: 5px 5px 0;
|
554 |
-
border-color: transparent transparent;
|
555 |
-
}
|
556 |
-
|
557 |
-
#iubenda-code-it, #iubenda-code-de, #iubenda-code-ru, #iubenda-code-es, #iubenda-code-pt-br, #iubenda-code-en, #iubenda-code-fr {
|
558 |
-
display: none;
|
559 |
-
|
560 |
-
width: 100%;
|
561 |
-
|
562 |
-
background-color: #FFFFFF;
|
563 |
-
box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
|
564 |
-
}
|
565 |
-
|
566 |
-
#iubenda-information
|
567 |
-
{
|
568 |
-
width: 100%;
|
569 |
-
padding-top: 25px;
|
570 |
-
padding-bottom: 25px;
|
571 |
-
|
572 |
-
|
573 |
-
text-indent: 20px;
|
574 |
-
|
575 |
-
background-color: #FFFFFF;
|
576 |
-
box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
|
577 |
-
}
|
578 |
-
|
579 |
-
.iubenda-textarea
|
580 |
-
{
|
581 |
-
display: block;
|
582 |
-
width: 95%; height: 300px;
|
583 |
-
margin: 20px auto;
|
584 |
-
|
585 |
-
overflow-y: scroll;
|
586 |
-
|
587 |
-
outline: none;
|
588 |
-
resize: vertical
|
589 |
-
}
|
590 |
-
|
591 |
-
.iubenda-textarea-single {
|
592 |
-
width: 100%;
|
593 |
-
box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
|
594 |
-
}
|
595 |
-
|
596 |
-
[data-active-tab]
|
597 |
-
{
|
598 |
-
border-color: #1FAD81;
|
599 |
-
|
600 |
-
color: #1FAD81
|
601 |
-
}
|
602 |
-
[data-active-tab]:before, [data-active-tab]::before
|
603 |
-
{
|
604 |
-
border-color: #1FAD81 transparent
|
605 |
-
}
|
606 |
-
|
607 |
-
#iubenda-logo {
|
608 |
-
display: table;
|
609 |
-
}
|
610 |
-
|
611 |
-
.iubenda-link {
|
612 |
-
display: table;
|
613 |
-
margin: 55px auto;
|
614 |
-
}
|
615 |
-
|
616 |
-
#iubenda-save
|
617 |
-
{
|
618 |
-
transition: background-color 300ms, box-shadow 300ms;
|
619 |
-
cursor: pointer;
|
620 |
-
|
621 |
-
display: table;
|
622 |
-
margin: 20px 0;
|
623 |
-
padding: 5px 10px;
|
624 |
-
|
625 |
-
background-color: #1FAD81;
|
626 |
-
border: none;
|
627 |
-
border-radius: 1px;
|
628 |
-
box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
|
629 |
-
|
630 |
-
color: #FFFFFF
|
631 |
-
}
|
632 |
-
#iubenda-save:hover
|
633 |
-
{
|
634 |
-
background-color: #199C71;
|
635 |
-
box-shadow: 0 0 4px 0 rgba(5, 5, 5, 0.5);
|
636 |
-
}
|
637 |
-
|
638 |
-
#iubenda-saved
|
639 |
-
{
|
640 |
-
display: table;
|
641 |
-
margin: 10px 0;
|
642 |
-
width: 100%; height: 30px;
|
643 |
-
|
644 |
-
background-color: #199C71;
|
645 |
-
border-radius: 1px;
|
646 |
-
box-shadow: 0 0 3px 0 rgba(5, 5, 5, 0.2);
|
647 |
-
}
|
648 |
-
#iubenda-saved p
|
649 |
-
{
|
650 |
-
display: table;
|
651 |
-
margin: 10px;
|
652 |
-
|
653 |
-
color: #FFFFFF
|
654 |
-
}
|
655 |
-
|
656 |
-
.iubenda-text
|
657 |
-
{
|
658 |
-
display: table;
|
659 |
-
width: 80%;
|
660 |
-
margin: 5px auto;
|
661 |
-
|
662 |
-
color: #434149
|
663 |
-
}
|
664 |
-
.iubenda-title
|
665 |
-
{
|
666 |
-
display: table;
|
667 |
-
margin-top: 10px;
|
668 |
-
|
669 |
-
font-weight: bold;
|
670 |
-
}
|
671 |
-
.iubenda-url
|
672 |
-
{
|
673 |
-
display: inline-table;
|
674 |
-
margin-bottom: 10px;
|
675 |
-
}
|
676 |
-
|
677 |
-
#parser_engine label input
|
678 |
-
{
|
679 |
-
margin-right: 5px
|
680 |
-
}
|
681 |
-
|
682 |
-
#parser_engine, #par_skip_parsing, #par_iubenda_output_filter {
|
683 |
-
margin-left: 30px;
|
684 |
-
}
|
685 |
-
|
686 |
-
.wp-admin .iubenda-checkbox-options p label input[type=checkbox], .iubenda-checkbox-options label span {
|
687 |
-
display: inline-block;
|
688 |
-
vertical-align: top;
|
689 |
-
margin-top: 0;
|
690 |
-
line-height: 1.2;
|
691 |
-
}
|
692 |
-
|
693 |
-
</style>
|
694 |
-
<script>
|
695 |
-
function iubendaGetLanguage(str) {
|
696 |
-
var languages = ["it", "de", "en", "es", "pt-br", "ru", "fr"];
|
697 |
-
|
698 |
-
for(var i = 0; i < languages.length; i++) {
|
699 |
-
var tab = document.getElementById("iubenda-code-" + languages[i]);
|
700 |
-
|
701 |
-
var active_tab = document.querySelector(".iubenda-code-" + languages[i]);
|
702 |
-
|
703 |
-
if(active_tab) active_tab.removeAttribute("data-active-tab");
|
704 |
-
|
705 |
-
if(tab) tab.style.display = "none";
|
706 |
-
}
|
707 |
-
|
708 |
-
var tab = document.getElementById("iubenda-code-" + str);
|
709 |
-
var active_tab = document.querySelector(".iubenda-code-" + str);
|
710 |
-
|
711 |
-
if(tab) tab.style.display = "table";
|
712 |
-
if(active_tab) active_tab.setAttribute("data-active-tab", "");
|
713 |
-
|
714 |
-
document.getElementById("iubenda-information").style.display = "none";
|
715 |
-
}
|
716 |
-
|
717 |
-
window.addEventListener
|
718 |
-
(
|
719 |
-
"DOMContentLoaded", function()
|
720 |
-
{
|
721 |
-
var firstTab = document.querySelector("[data-iubenda-button]");
|
722 |
-
|
723 |
-
if(firstTab) jQuery(firstTab).trigger("click");
|
724 |
-
|
725 |
-
var engine = document.getElementById("parser_type");
|
726 |
-
|
727 |
-
engine.onchange = function()
|
728 |
-
{
|
729 |
-
if(this.checked)
|
730 |
-
{
|
731 |
-
document.getElementById("iubenda_parse_child").style.display = "block";
|
732 |
-
}
|
733 |
-
else
|
734 |
-
{
|
735 |
-
document.getElementById("iubenda_parse_child").style.display = "none";
|
736 |
-
}
|
737 |
-
}
|
738 |
-
|
739 |
-
jQuery(engine).trigger("change");
|
740 |
-
}
|
741 |
-
);
|
742 |
-
|
743 |
-
setTimeout
|
744 |
-
(
|
745 |
-
function() {
|
746 |
-
var x = document.getElementById("iubenda-saved");
|
747 |
-
|
748 |
-
if(x) x.style.display = "none";
|
749 |
-
}, 3000
|
750 |
-
);
|
751 |
-
</script>
|
752 |
<div id="iubenda-view">
|
753 |
-
<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>
|
754 |
-
|
755 |
-
<p class="iubenda-text">
|
756 |
-
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.
|
757 |
-
<span class="iubenda-title">Vuoi capire di più sulla cookie law?</span>
|
758 |
-
Consulta <a href="https://www.iubenda.com/it/soluzione-cookie-law" class="iubenda-url" target="_blank">la nostra guida completa alla cookie law</a>.
|
759 |
-
<span class="iubenda-title">Quali sono le funzionalità complete del plugin?</span>
|
760 |
-
Visita <a href="https://www.iubenda.com/it/help/posts/810" class="iubenda-url" target="_blank">la nostra pagina dedicata al plugin</a>.
|
761 |
-
<span class="iubenda-title">Inserisci qui sotto il codice di iubenda per la cookie law.</span>
|
762 |
-
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
|
763 |
-
</a>.
|
764 |
-
</p>
|
765 |
-
|
766 |
-
<form id="iubenda-tabs" method="post" action="'.str_replace('%7E', '~', $_SERVER['REQUEST_URI']).'">';
|
767 |
-
|
768 |
-
if($_POST) echo '<div id="iubenda-saved"><p>Impostazioni salvate con successo</p></div>';
|
769 |
-
|
770 |
-
if(defined("IUBENDA_WPML")) {
|
771 |
-
|
772 |
-
$languages = icl_get_languages('skip_missing=N&orderby=KEY&order=DIR&link_empty_to=str');
|
773 |
-
|
774 |
-
foreach($languages as $language => $value) {
|
775 |
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
<
|
819 |
-
|
820 |
-
|
821 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
822 |
</p>
|
823 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
824 |
<label>
|
825 |
-
<input type="checkbox" name="
|
826 |
<span>
|
827 |
-
|
828 |
-
(migliora le prestazioni, altamente consigliato, da disattivare solo qualora il tuo sito utilizzi un sistema di cache)
|
829 |
</span>
|
830 |
</label>
|
831 |
</p>
|
832 |
-
|
833 |
<label>
|
834 |
-
<input type="checkbox" name="
|
835 |
<span>
|
836 |
-
|
837 |
-
(attiva questa opzione solo qualora avessi problemi di performance o notassi che il blocco dei codici viene applicato più volte)
|
838 |
</span>
|
839 |
</label>
|
840 |
-
</p>
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
</
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
Non eseguire il plugin all\'interno dei Feed RSS (consigliato)
|
858 |
-
</span>
|
859 |
-
</label>
|
860 |
-
</p>
|
861 |
-
<p>
|
862 |
-
<input type="submit" value="Salva" id="iubenda-save">
|
863 |
-
</p>
|
864 |
-
</div> <!-- /iubenda-checkbox-options -->
|
865 |
-
</form>
|
866 |
-
<p class="iubenda-text">
|
867 |
-
<span class="iubenda-title">Hai bisogno di supporto su questo plugin?</span>
|
868 |
-
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>.
|
869 |
-
</p>
|
870 |
-
<p class="iubenda-text">
|
871 |
-
<span class="iubenda-title">Vuoi provare una versione Beta di questo plugin, con le funzionalità più recenti?</span>
|
872 |
-
Visita <a href="https://www.iubenda.com/it/help/posts/810" class="iubenda-url" target="_blank">la nostra documentazione</a> e segui le istruzioni per installare una versione Beta.
|
873 |
-
</p>
|
874 |
-
</div>';
|
875 |
-
}
|
876 |
-
?>
|
1 |
<?php
|
2 |
+
/*
|
3 |
+
* Plugin Name: Iubenda Cookie Solution
|
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.14.0-beta
|
8 |
+
* Text Domain: iubenda-cookie-law-solution
|
9 |
+
* Author URI: https://www.iubenda.com
|
10 |
+
*/
|
11 |
+
|
12 |
+
// exit if accessed directly
|
13 |
+
if ( ! defined( 'ABSPATH' ) )
|
14 |
+
exit;
|
15 |
+
|
16 |
+
// define contants
|
17 |
+
define( 'IUB_DEBUG', 0 );
|
18 |
+
define( 'IUB_REGEX_PATTERN', "/<!--IUB_COOKIE_POLICY_START-->(.*)<!--IUB_COOKIE_POLICY_END-->/sU" );
|
19 |
+
|
20 |
+
// set plugin instance
|
21 |
+
$iubenda_cookie_law_solution = new iubenda_Cookie_Law_Solution();
|
22 |
+
|
23 |
+
/**
|
24 |
+
* iubenda_Cookie_Law_Solution final class.
|
25 |
+
*
|
26 |
+
* @class iubenda_Cookie_Law_Solution
|
27 |
+
* @version 1.14.0
|
28 |
+
*/
|
29 |
+
class iubenda_Cookie_Law_Solution {
|
30 |
+
|
31 |
+
public $options;
|
32 |
+
public $defaults = array(
|
33 |
+
);
|
34 |
|
35 |
+
/**
|
36 |
+
* Constructor.
|
37 |
+
*/
|
38 |
+
public function __construct() {
|
39 |
+
// register_activation_hook( __FILE__, array( $this, 'activation' ) );
|
40 |
+
// register_deactivation_hook( __FILE__, array( $this, 'deactivation' ) );
|
41 |
+
|
42 |
+
// settings
|
43 |
+
$this->options = array_merge( $this->defaults, get_option( 'iubenda_cookie_law_solution', $this->defaults ) );
|
44 |
+
|
45 |
+
// actions
|
46 |
+
add_action( 'admin_menu', array( $this, 'admin_menu_options' ) );
|
47 |
+
add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
|
48 |
+
add_action( 'plugins_loaded', array( $this, 'init' ) );
|
49 |
+
add_action( 'after_setup_theme', array( $this, 'register_shortcode' ) );
|
50 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
51 |
+
add_action( 'wp_head', array( $this, 'wp_head' ), 99 );
|
52 |
+
add_action( 'after_setup_theme', array( $this, 'output_start' ), 0 );
|
53 |
+
add_action( 'shutdown', array( $this, 'output_end' ), 100 );
|
54 |
+
}
|
55 |
|
56 |
+
/**
|
57 |
+
* Initialize plugin.
|
58 |
+
*/
|
59 |
+
public function init() {
|
60 |
+
|
61 |
+
// check WPML
|
62 |
+
if ( function_exists( 'icl_object_id' ) ) {
|
63 |
+
define( 'IUBENDA_WPML', true );
|
64 |
}
|
65 |
+
|
66 |
+
// load Simple HTML DOM if needed
|
67 |
+
if ( ! function_exists( 'file_get_html' ) ) {
|
68 |
+
require_once( dirname( __FILE__ ) . '/lib/simple_html_dom.php' );
|
69 |
+
}
|
70 |
+
|
71 |
+
// load plugin class
|
72 |
+
require_once( dirname( __FILE__ ) . '/lib/iubenda.class.faster.php' );
|
73 |
+
require_once( dirname( __FILE__ ) . '/lib/iubenda.class.php' );
|
74 |
}
|
75 |
|
76 |
+
/**
|
77 |
+
* Register shortcode function.
|
78 |
+
*/
|
79 |
+
public function register_shortcode() {
|
80 |
+
add_shortcode( 'iub-cookie-policy', array( $this, 'shortcode' ) );
|
|
|
|
|
|
|
|
|
81 |
}
|
82 |
|
83 |
+
/**
|
84 |
+
* Handle shortcode function.
|
85 |
+
*
|
86 |
+
* @param array $atts
|
87 |
+
* @param mixed $content
|
88 |
+
* @return mixed
|
89 |
+
*/
|
90 |
+
public function shortcode( $atts, $content = '' ) {
|
91 |
+
return '<!--IUB_COOKIE_POLICY_START-->' . do_shortcode( $content ) . '<!--IUB_COOKIE_POLICY_END-->';
|
92 |
}
|
93 |
|
94 |
+
/**
|
95 |
+
* Add submenu.
|
96 |
+
*/
|
97 |
+
public function admin_menu_options() {
|
98 |
+
add_options_page(
|
99 |
+
'iubenda', 'iubenda', 'manage_options', 'iubenda-cookie-law-solution', array( $this, 'load_admin' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
}
|
101 |
|
102 |
+
/**
|
103 |
+
* Load textdomain.
|
104 |
+
*/
|
105 |
+
public function load_textdomain() {
|
106 |
+
load_plugin_textdomain( 'iubenda-cookie-law-solution', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
}
|
108 |
|
109 |
+
/**
|
110 |
+
* Load admin scripts and styles.
|
111 |
+
*
|
112 |
+
* @param string $page
|
113 |
+
* @return void
|
114 |
+
*/
|
115 |
+
public function admin_enqueue_scripts( $page ) {
|
116 |
+
if ( $page !== 'settings_page_iubenda-cookie-law-solution' )
|
117 |
+
return;
|
118 |
|
119 |
+
wp_enqueue_script(
|
120 |
+
'iubenda-admin', plugins_url( 'js/admin.js', __FILE__ ), array( 'jquery' )
|
121 |
+
);
|
122 |
|
123 |
+
wp_enqueue_style( 'iubenda-admin', plugins_url( 'css/admin.css', __FILE__ ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Add wp_head content.
|
128 |
+
*
|
129 |
+
* @return mixed
|
130 |
+
*/
|
131 |
+
public function wp_head() {
|
132 |
+
|
133 |
+
if ( ! get_option( "default_skip_parsing" ) ) {
|
134 |
+
update_option( "default_skip_parsing", true );
|
135 |
+
update_option( "skip_parsing", true );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
}
|
137 |
+
if ( ! get_option( "default_iubendactype" ) ) {
|
138 |
+
update_option( "default_iubendactype", true );
|
139 |
+
update_option( "iubenda_ctype", true );
|
140 |
+
}
|
141 |
+
if ( ! get_option( "default_iubendaparse" ) ) {
|
142 |
+
update_option( "default_iubendaparse", true );
|
143 |
+
update_option( "iubenda_parse", true );
|
144 |
+
}
|
145 |
+
if ( ! get_option( "default_parser_engine" ) ) {
|
146 |
+
update_option( "default_parser_engine", true );
|
147 |
+
update_option( "parser_engine", "default" );
|
148 |
+
}
|
149 |
+
|
150 |
+
// check content type
|
151 |
+
$this->check_content_type();
|
152 |
+
|
153 |
+
// check if user is logged in, then disable the banner.
|
154 |
/*
|
155 |
+
if ( is_user_logged_in() ) {
|
156 |
+
return;
|
157 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
*/
|
159 |
+
|
160 |
+
if ( $_POST || defined( 'IUBENDA_NO_HTML' ) ) {
|
161 |
return;
|
162 |
}
|
163 |
+
|
164 |
+
// initial head output
|
|
|
|
|
|
|
165 |
$iubenda_code = "";
|
166 |
+
|
167 |
+
if ( get_option( 'iub_code' ) ) {
|
168 |
+
$wpml_old = html_entity_decode( stripslashes( get_option( 'iub_code' ) ) );
|
169 |
+
|
170 |
+
$iubenda_languages = array( 'it', 'de', 'en', 'es', 'pt-br', 'ru', 'fr' );
|
171 |
+
|
172 |
+
foreach ( $iubenda_languages as $iubenda_language ) {
|
173 |
+
if ( strpos( $wpml_old, 'lang: "' . $iubenda_language ) !== false ) {
|
174 |
+
$language_tag = $iubenda_language;
|
175 |
+
|
176 |
+
break;
|
177 |
+
}
|
178 |
+
}
|
179 |
+
|
180 |
+
update_option( "iubenda-code-$language_tag", $wpml_old );
|
181 |
+
update_option( 'iubenda-code-default', $wpml_old );
|
182 |
+
update_option( 'iub_code', false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
}
|
184 |
+
|
185 |
+
if ( defined( 'IUBENDA_WPML' ) && get_option( 'iubenda-code-' . ICL_LANGUAGE_CODE ) ) {
|
186 |
+
$iubenda_code .= get_option( 'iubenda-code-' . ICL_LANGUAGE_CODE );
|
187 |
+
} else {
|
188 |
+
$iubenda_code .= get_option( 'iubenda-code-default' );
|
189 |
}
|
190 |
+
|
191 |
$iubenda_code .= "\n
|
192 |
+
<script>
|
193 |
+
var iCallback = function() {};
|
194 |
+
|
195 |
+
if ( typeof _iub.csConfiguration != 'undefined' ) {
|
196 |
+
if ( 'callback' in _iub.csConfiguration ) {
|
197 |
+
if ( 'onConsentGiven' in _iub.csConfiguration.callback )
|
198 |
+
iCallback = _iub.csConfiguration.callback.onConsentGiven;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
|
200 |
+
_iub.csConfiguration.callback.onConsentGiven = function() {
|
201 |
+
iCallback();
|
202 |
+
|
203 |
+
/* separator */
|
204 |
+
jQuery('noscript._no_script_iub').each(function (a, b) { var el = jQuery(b); el.after(el.html()); });
|
205 |
+
}
|
206 |
+
}
|
207 |
+
}
|
208 |
+
</script>";
|
209 |
+
|
210 |
+
echo $iubenda_code;
|
211 |
}
|
212 |
+
|
213 |
+
/**
|
214 |
+
* Initialize html output.
|
215 |
+
*
|
216 |
+
* @return void
|
217 |
+
*/
|
218 |
+
public function output_start() {
|
219 |
+
ob_start( array( $this, 'output_callback' ) );
|
220 |
+
}
|
221 |
+
|
222 |
+
/**
|
223 |
+
* Finish html output.
|
224 |
+
*
|
225 |
+
* @return void
|
226 |
+
*/
|
227 |
+
public function output_end() {
|
228 |
+
ob_end_flush();
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* Handle final html output.
|
233 |
+
*
|
234 |
+
* @param mixed $output
|
235 |
+
* @return mixed
|
236 |
+
*/
|
237 |
+
public function output_callback( $output ) {
|
238 |
+
// break on ajax, xmlrpc or iub_no_parse request
|
239 |
+
if ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST || defined( 'DOING_AJAX' ) && DOING_AJAX || isset( $_SERVER["HTTP_X_REQUESTED_WITH"] ) || isset( $_GET['iub_no_parse'] ) ) {
|
240 |
return $output;
|
|
|
241 |
}
|
242 |
+
|
243 |
+
// break on admin side
|
244 |
+
if ( is_admin() )
|
245 |
return $output;
|
|
|
|
|
246 |
|
247 |
+
// break for logged in users?
|
248 |
+
/* if ( is_user_logged_in() ) {
|
249 |
return $output;
|
|
|
250 |
}
|
251 |
+
*/
|
252 |
|
253 |
+
// break on rss feed
|
254 |
+
if ( get_option( 'iubenda_output_feed' ) ) {
|
255 |
+
if ( is_feed() ) {
|
256 |
+
return $output;
|
257 |
+
}
|
258 |
+
}
|
|
|
|
|
|
|
|
|
259 |
|
260 |
+
if ( strpos( $output, "<html" ) === false ) {
|
261 |
+
return $output;
|
262 |
+
} elseif ( strpos( $output, "<html" ) > 200 ) {
|
263 |
+
return $output;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
}
|
265 |
+
|
266 |
+
// check whether to run parser or not
|
267 |
+
if (
|
268 |
+
! get_option( 'iubenda_parse' )
|
269 |
+
|| ( iubendaPage::consent_given() && get_option( 'skip_parsing' ) )
|
270 |
+
|| iubendaPage::bot_detected()
|
271 |
+
|| $_POST
|
272 |
+
|| defined( 'IUBENDA_NO_HTML' )
|
273 |
+
|| ( get_option( 'iubenda_output_filter' ) && ob_get_level() > 1 ) ) {
|
274 |
+
|
275 |
+
return $output;
|
276 |
+
}
|
277 |
+
|
278 |
+
$startime = microtime( true );
|
279 |
+
|
280 |
+
// experimental class
|
281 |
+
if ( get_option( 'parser_engine' ) == 'new' ) {
|
282 |
+
$faster = new iubendaFaster;
|
283 |
+
|
284 |
+
// render output
|
285 |
+
$output = $faster->isParse( mb_convert_encoding( $output, 'HTML-ENTITIES', 'UTF-8' ) );
|
286 |
+
|
287 |
+
// append signature
|
288 |
+
$output .= '<!-- Parsed with iubenda experimental class in ' . round( microtime( true ) - $startime, 4 ) . ' sec. -->';
|
289 |
+
// default class
|
290 |
+
} else {
|
291 |
+
$page = new iubendaPage( $output );
|
292 |
$page->parse();
|
293 |
+
|
294 |
+
// render output
|
|
|
295 |
$output = $page->get_converted_page();
|
296 |
+
|
297 |
+
// append signature
|
298 |
+
$output .= '<!-- Parsed with iubenda default class in ' . round( microtime( true ) - $startime, 4 ) . ' sec. -->';
|
|
|
299 |
}
|
300 |
+
|
301 |
+
return apply_filters( 'iubenda_final_output', $output );
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
}
|
303 |
|
304 |
+
/**
|
305 |
+
* Check content type.
|
306 |
+
*
|
307 |
+
* @return void
|
308 |
+
*/
|
309 |
+
public function check_content_type() {
|
310 |
+
if ( get_option( 'iubenda_ctype' ) ) {
|
311 |
+
$iub_headers = headers_list();
|
312 |
+
$destroy = true;
|
313 |
+
|
314 |
+
foreach ( $iub_headers as $h ) {
|
315 |
+
if ( strpos( $h, "Content-Type: text/html" ) !== false || strpos( $h, "Content-type: text/html" ) !== false ) {
|
316 |
+
$destroy = false;
|
317 |
+
}
|
318 |
+
}
|
319 |
+
|
320 |
+
if ( $destroy ) {
|
321 |
+
define( 'IUBENDA_NO_HTML', true );
|
322 |
+
}
|
323 |
+
}
|
324 |
}
|
325 |
|
326 |
+
/**
|
327 |
+
* Load admin.
|
328 |
+
*
|
329 |
+
* @return void
|
330 |
+
*/
|
331 |
+
public function load_admin() {
|
332 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
333 |
+
wp_die( __( "You don't have permission to access this page.", 'iubenda-cookie-law-solution' ) );
|
|
|
|
|
334 |
}
|
335 |
|
336 |
+
if ( get_option( "iub_code" ) ) {
|
337 |
+
$wpml_old = html_entity_decode( stripslashes( get_option( "iub_code" ) ) );
|
338 |
+
|
339 |
+
$iubenda_languages = array( "it", "de", "en", "es", "pt-br", "ru", "fr" );
|
340 |
+
|
341 |
+
foreach ( $iubenda_languages as $iubenda_language ) {
|
342 |
+
if ( strpos( $wpml_old, 'lang: "' . $iubenda_language ) !== false ) {
|
343 |
+
$language_tag = $iubenda_language;
|
344 |
+
|
345 |
+
break;
|
346 |
+
}
|
347 |
+
}
|
348 |
+
|
349 |
+
update_option( "iubenda-code-$language_tag", $wpml_old );
|
350 |
+
update_option( "iubenda-code-default", $wpml_old );
|
351 |
+
update_option( "iub_code", false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
352 |
}
|
353 |
|
354 |
+
$iubenda_language = array( "it", "de", "en", "es", "pt-br", "ru", "fr", "default" );
|
355 |
+
|
356 |
+
if ( $_POST ) {
|
357 |
+
if ( ! empty( $_POST['skip_parsing'] ) ) {
|
358 |
+
update_option( "skip_parsing", "skip" );
|
359 |
+
} else {
|
360 |
+
update_option( "skip_parsing", false );
|
361 |
+
}
|
362 |
+
if ( ! empty( $_POST['iubenda_ctype'] ) ) {
|
363 |
+
update_option( "iubenda_ctype", true );
|
364 |
+
} else {
|
365 |
+
update_option( "iubenda_ctype", false );
|
366 |
+
}
|
367 |
+
if ( ! empty( $_POST['iubenda_parse'] ) ) {
|
368 |
+
update_option( "iubenda_parse", true );
|
369 |
+
} else {
|
370 |
+
update_option( "iubenda_parse", false );
|
371 |
+
}
|
372 |
+
if ( ! empty( $_POST['iubenda_output_filter'] ) ) {
|
373 |
+
update_option( "iubenda_output_filter", true );
|
374 |
+
} else {
|
375 |
+
update_option( "iubenda_output_filter", false );
|
376 |
+
}
|
377 |
+
if ( ! empty( $_POST['iubenda_output_feed'] ) ) {
|
378 |
+
update_option( "iubenda_output_feed", true );
|
379 |
+
} else {
|
380 |
+
update_option( "iubenda_output_feed", false );
|
381 |
+
}
|
382 |
+
|
383 |
+
if ( $_POST["parser_engine"] == "default" )
|
384 |
+
update_option( "parser_engine", "default" );
|
385 |
+
if ( $_POST["parser_engine"] == "new" )
|
386 |
+
update_option( "parser_engine", "new" );
|
387 |
}
|
388 |
+
|
389 |
+
/*
|
390 |
+
Enabled by default.
|
391 |
+
*/
|
392 |
+
|
393 |
+
if ( ! get_option( "default_skip_parsing" ) ) {
|
394 |
+
update_option( "default_skip_parsing", true );
|
395 |
+
update_option( "skip_parsing", "skip" );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
396 |
}
|
397 |
+
if ( ! get_option( "default_parser_engine" ) ) {
|
398 |
+
update_option( "default_parser_engine", true );
|
399 |
+
update_option( "parser_engine", "default" );
|
400 |
}
|
401 |
+
if ( ! get_option( "default_iubendactype" ) ) {
|
402 |
+
update_option( "default_iubendactype", true );
|
403 |
+
update_option( "iubenda_ctype", true );
|
404 |
}
|
405 |
+
if ( ! get_option( "default_iubendaparse" ) ) {
|
406 |
+
update_option( "default_iubendaparse", true );
|
407 |
+
update_option( "iubenda_parse", true );
|
408 |
}
|
409 |
+
if ( ! get_option( "default_iubenda_output_feed" ) ) {
|
410 |
+
update_option( "default_iubenda_output_feed", true );
|
411 |
+
update_option( "iubenda_output_feed", true );
|
412 |
+
}
|
413 |
+
|
414 |
+
/**/
|
415 |
+
|
416 |
+
if ( $_POST ) {
|
417 |
+
foreach ( $iubenda_language as $iub_check ) {
|
418 |
+
if ( ! empty( $_POST["iubenda-code-$iub_check"] ) ) {
|
419 |
+
update_option( "iubenda-code-$iub_check", stripslashes( $_POST["iubenda-code-$iub_check"] ) );
|
420 |
+
}
|
421 |
+
}
|
422 |
+
}
|
423 |
+
|
424 |
+
/**/
|
425 |
+
|
|
|
|
|
426 |
$checked = "";
|
427 |
$checked_ctype = "";
|
428 |
$checked_parse = "";
|
429 |
$checked_output_feed = "";
|
430 |
$checked_output_filter = "";
|
431 |
+
|
432 |
+
if ( get_option( "iubenda_parse" ) )
|
433 |
+
$checked_parse = 'checked="true"';
|
434 |
+
if ( get_option( "skip_parsing" ) )
|
435 |
+
$checked = 'checked="true"';
|
436 |
+
if ( get_option( "iubenda_ctype" ) )
|
437 |
+
$checked_ctype = 'checked="true"';
|
438 |
+
if ( get_option( "iubenda_output_feed" ) )
|
439 |
+
$checked_output_feed = 'checked="true"';
|
440 |
+
if ( get_option( "iubenda_output_filter" ) )
|
441 |
+
$checked_output_filter = 'checked="true"';
|
442 |
+
|
443 |
$parser_engine_default = "";
|
444 |
$parser_engine_new = "";
|
445 |
+
|
446 |
+
if ( get_option( "parser_engine" ) == "default" )
|
447 |
+
$parser_engine_default = 'checked="true"';
|
448 |
+
if ( get_option( "parser_engine" ) == "new" )
|
449 |
+
$parser_engine_new = 'checked="true"';
|
450 |
+
|
451 |
+
/**/
|
452 |
+
|
453 |
+
echo '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
<div id="iubenda-view">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
455 |
|
456 |
+
<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>
|
457 |
+
|
458 |
+
<p class="iubenda-text">
|
459 |
+
' . __( "This plugin is the easiest and most comprehensive way to adapt your WordPress site to the European cookie law. Upon your user's first visit, the plugin will take care of collecting their consent, of blocking the most popular among the scripts that install cookies and subsequently reactivate these scripts as soon as consent is provided. The basic settings include obtaining consent by a simple scroll action (the most effective method) and script reactivation without refreshing the page.", 'iubenda-cookie-law-solution' ) . '
|
460 |
+
<span class="iubenda-title">' . __( "Would you like to know more about the cookie law?", 'iubenda-cookie-law-solution' ) . '</span>
|
461 |
+
' . sprintf( __( "Read our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">complete guide to the cookie law.</a>", 'iubenda-cookie-law-solution' ), "https://www.iubenda.com/it/soluzione-cookie-law" ) . '
|
462 |
+
<span class="iubenda-title">' . __( "What’s the full functionality of the plugin?", 'iubenda-cookie-law-solution' ) . '</span>
|
463 |
+
' . sprintf( __( "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin page.</a>", 'iubenda-cookie-law-solution' ), "https://www.iubenda.com/it/help/posts/810" ) . '
|
464 |
+
<span class="iubenda-title">' . __( "Enter the iubenda code for the Cookie Solution below.", 'iubenda-cookie-law-solution' ) . '</span>
|
465 |
+
' . sprintf( __( "In order to run the plugin, you need to enter the iubenda code that activates the cookie law banner and the cookie policy in the form below. This code can be generated on www.iubenda.com, following <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">this guide.</a>", 'iubenda-cookie-law-solution' ), "https://www.iubenda.com/it/help/posts/680" ) . '
|
466 |
+
</p>
|
467 |
+
|
468 |
+
<form id="iubenda-tabs" method="post" action="' . str_replace( '%7E', '~', $_SERVER['REQUEST_URI'] ) . '">';
|
469 |
+
|
470 |
+
if ( $_POST )
|
471 |
+
echo '<div id="iubenda-saved"><p>' . __( 'Settings applied successfully', 'iubenda-cookie-law-solution' ). '</p></div>';
|
472 |
+
|
473 |
+
if ( defined( "IUBENDA_WPML" ) ) {
|
474 |
+
|
475 |
+
$languages = icl_get_languages( 'skip_missing=N&orderby=KEY&order=DIR&link_empty_to=str' );
|
476 |
+
|
477 |
+
foreach ( $languages as $language => $value ) {
|
478 |
+
|
479 |
+
echo
|
480 |
+
'
|
481 |
+
<div class="iubenda-tab iubenda-code-' . $language . '" onclick="iubendaGetLanguage(' . chr( 39 ) . $language . chr( 39 ) . ')" data-iubenda-button>'
|
482 |
+
. $value["translated_name"] . '
|
483 |
+
</div>
|
484 |
+
';
|
485 |
+
}
|
486 |
+
|
487 |
+
foreach ( $languages as $language => $value ) {
|
488 |
+
echo
|
489 |
+
'
|
490 |
+
<div id="iubenda-code-' . $language . '">
|
491 |
+
<textarea class="iubenda-textarea" name="iubenda-code-' . $language . '">' . stripslashes( get_option( "iubenda-code-" . $language ) ) . '</textarea>
|
492 |
+
</div>
|
493 |
+
';
|
494 |
+
}
|
495 |
+
|
496 |
+
echo
|
497 |
+
'
|
498 |
+
<div id="iubenda-information">' . __( 'Select a language to correctly pair it with your script', 'iubenda-cookie-law-solution' ) . '</div>
|
499 |
+
';
|
500 |
+
} else {
|
501 |
+
echo '<textarea class="iubenda-textarea iubenda-textarea-single" name="iubenda-code-default">' . stripslashes( get_option( "iubenda-code-default" ) ) . '</textarea>';
|
502 |
+
}
|
503 |
+
|
504 |
+
echo '
|
505 |
+
<div class="iubenda-checkbox-options">
|
506 |
+
|
507 |
+
<p>
|
508 |
+
<label>
|
509 |
+
<input id="parser_type" type="checkbox" name="iubenda_parse" value="enabled" ' . $checked_parse . '>
|
510 |
+
<span>
|
511 |
+
' . __( "Automatically blocks scripts detected by the plugin", 'iubenda-cookie-law-solution' ) . '<br />
|
512 |
+
(' . sprintf( __( "see <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">our documentation</a> for the list of detected scripts.", 'iubenda-cookie-law-solution' ), "https://www.iubenda.com/it/help/posts/810" ) . ')
|
513 |
+
</span>
|
514 |
+
</label>
|
515 |
</p>
|
516 |
+
|
517 |
+
<div id="iubenda_parse_child">
|
518 |
+
<p id="parser_engine">
|
519 |
+
' . __( "Parsing engine", 'iubenda-cookie-law-solution' ) . ':<br>
|
520 |
+
<label><input type="radio" name="parser_engine" value="default" ' . $parser_engine_default . '>' . __( "Default", 'iubenda-cookie-law-solution' ) . '</label>
|
521 |
+
<label><input type="radio" name="parser_engine" value="new" ' . $parser_engine_new . '>' . __( "Experimental (enhances performance)", 'iubenda-cookie-law-solution' ) . '</label>
|
522 |
+
</p>
|
523 |
+
<p id="par_skip_parsing">
|
524 |
+
<label>
|
525 |
+
<input type="checkbox" name="skip_parsing" value="skip" ' . $checked . '>
|
526 |
+
<span>
|
527 |
+
' . __( "Leaves scripts untouched on the page if the user has already given consent", 'iubenda-cookie-law-solution' ) . '<br />
|
528 |
+
(' . __( "improves performance, highly recommended, to be deactivated only if your site uses a caching system", 'iubenda-cookie-law-solution' ) . ')
|
529 |
+
</span>
|
530 |
+
</label>
|
531 |
+
</p>
|
532 |
+
<p id="par_iubenda_output_filter">
|
533 |
+
<label>
|
534 |
+
<input type="checkbox" name="iubenda_output_filter" value="enabled" ' . $checked_output_filter . '>
|
535 |
+
<span>
|
536 |
+
' . __( "Applies special optimizations in cases with faulty output", 'iubenda-cookie-law-solution' ) . '<br />
|
537 |
+
(' . __( "only select this option if you had performance problems or if you notice that the blocking of code is run several times", 'iubenda-cookie-law-solution' ) . ')
|
538 |
+
</span>
|
539 |
+
</label>
|
540 |
+
</p>
|
541 |
+
|
542 |
+
<hr />
|
543 |
+
</div> <!-- /iubenda_parse_child -->
|
544 |
+
|
545 |
+
<p>
|
546 |
<label>
|
547 |
+
<input type="checkbox" name="iubenda_ctype" value="enabled" ' . $checked_ctype . '>
|
548 |
<span>
|
549 |
+
' . __( 'Restrict the plugin to run only for requests that have "Content-type: text / html" (recommended)', 'iubenda-cookie-law-solution' ) . '
|
|
|
550 |
</span>
|
551 |
</label>
|
552 |
</p>
|
553 |
+
<p>
|
554 |
<label>
|
555 |
+
<input type="checkbox" name="iubenda_output_feed" value="enabled" ' . $checked_output_feed . '>
|
556 |
<span>
|
557 |
+
' . __( 'Do not run the plugin inside the RSS feed (recommended)', 'iubenda-cookie-law-solution' ) . '
|
|
|
558 |
</span>
|
559 |
</label>
|
560 |
+
</p>
|
561 |
+
<p>
|
562 |
+
<input type="submit" value="' . __( 'Save' ) . '" class="button button-primary">
|
563 |
+
</p>
|
564 |
+
</div> <!-- /iubenda-checkbox-options -->
|
565 |
+
</form>
|
566 |
+
<p class="iubenda-text">
|
567 |
+
<span class="iubenda-title">' . __( 'Need support for this plugin?', 'iubenda-cookie-law-solution' ) . '</span>
|
568 |
+
' . sprintf( __( "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">support forum.</a>", 'iubenda-cookie-law-solution' ), "https://support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti" ) . '
|
569 |
+
</p>
|
570 |
+
<p class="iubenda-text">
|
571 |
+
<span class="iubenda-title">' . __( 'Want to try a beta version of this plugin with the latest features?', 'iubenda-cookie-law-solution' ) . '</span>
|
572 |
+
' . sprintf( __( "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">documentation pages</a> and follow the instructions to install a beta version.", 'iubenda-cookie-law-solution' ), "https://www.iubenda.com/it/help/posts/810" ) . '
|
573 |
+
</p>
|
574 |
+
</div>';
|
575 |
+
}
|
576 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
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:
|
6 |
-
Tested up to: 4.
|
7 |
Stable tag: 1.11.1
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -19,9 +19,9 @@ NOTE: This plugin is a beta and could in certain situations still have bugs. We
|
|
19 |
* Find a comprehensive _guide and demo_ to the cookie law solution on our help blog https://www.iubenda.com/en/help/posts/1177
|
20 |
|
21 |
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.
|
22 |
-
This plugin works with the
|
23 |
|
24 |
-
* The plugin automatically inserts the
|
25 |
* It allows to manually block all the remaining resources, without the need of direct intervention on the code
|
26 |
* It handles the display of cookie banners and cookie policy, saving user preferences about the use of cookies
|
27 |
* It displays a clean page (without banner) to users who have already provided their consent
|
@@ -41,7 +41,7 @@ This plugin works with the iubenda Cookie Law Solution and allows to block the m
|
|
41 |
**Some background information**
|
42 |
|
43 |
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.
|
44 |
-
|
45 |
|
46 |
**Which languages does iubenda work in currently?**
|
47 |
|
@@ -107,8 +107,8 @@ Il plugin Wordpress di iubenda permette di semplificare l’adeguamento del prop
|
|
107 |
|
108 |
**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:** [Uservoice forum](http://support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti)
|
109 |
|
110 |
-
- **Installation via WP.org**: search in your WordPress plugin admin panel for "
|
111 |
-
- Once the plugin is installed and activated, go to the Admin Panel (Settings >
|
112 |
- At this point the plugin will begin to show the banner on which displays your cookie policy (link) to users who visit the site for the first time. No need for other configurations;
|
113 |
- Furthermore, the plugin automatically recognizes and blocks cookies that get installed via the YouTube video player and social widgets - such as the Facebook Like Box - on your site. **Important note** the scripts for Facebook, Twitter, G+, and YouTube iframe only get blocked automatically when generated from the server side (therefore processed by PHP via WordPress). Scripts that are added to the page via Javascript after page load cannot be blocked automatically;
|
114 |
- The other scripts that install cookies for which the automatic block isn't yet available can and should be "wrapped" using these comments:
|
@@ -124,8 +124,8 @@ Il plugin Wordpress di iubenda permette di semplificare l’adeguamento del prop
|
|
124 |
|
125 |
------ ITALIANO ------
|
126 |
|
127 |
-
- **Installazione automatica**: installa da WordPres.org cercando "
|
128 |
-
- Una volta installato ed attivato il plugin, accedi al pannello Admin (Impostazioni >
|
129 |
- A questo punto il plugin inizierà a mostrare il banner in cui è richiamata la tua cookie policy agli utenti che visitano il sito per la prima volta senza la necessità di altre configurazioni;
|
130 |
- In più, il plugin riconoscerà e bloccherà in automatico i cookie installati da tutti i video player di YouTube e dai widget sociali – come il Facebook Like Box – presenti sul tuo sito. **Nota importante**: il nostro plugin wordpress blocca in modo automatico tutti gli script Facebook, Twitter, G+, iframe youtube che sono generati lato server (quindi restituiti via PHP da wordpress). Script che vengono inseriti nella pagina dopo il loading della pagina tramite Javascript non sono e non possono essere bloccati in modo automatico;
|
131 |
- Gli altri script per i quali non è ancora disponibile il blocco automatico – e che installano cookie che richiedono il blocco prima del consenso – vanno “avvolti” utilizzando questi commenti:
|
@@ -150,16 +150,19 @@ Yes, right here: https://www.iubenda.com/en/help/posts/1177
|
|
150 |
|
151 |
== Changelog ==
|
152 |
|
153 |
-
= 1.11.2 =
|
154 |
-
* Various Bug Fixes and optimizations
|
155 |
-
* Updates to the parsing engine (better handling of Google AdSense, various fixes and optimizations)
|
156 |
-
|
157 |
= 1.11.1 =
|
158 |
* New: Created a new option that disables the plugin on RSS feeds
|
159 |
* New: Improved the control that checks if the request content type is HTML
|
160 |
* Fixed an issue with the banner script
|
161 |
* Fixed a series of conflicts with UTF-8 special characters caused by the experimental parsing engine
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
= 1.11.0 =
|
164 |
* New: Introduced a MUCH FASTER experimental parsing engine (visit the plugin options and select the experimental parsing engine)
|
165 |
* New: Created a new option that allow users to enable/disable the parsing engine and to select the parsing engine between stable and experimental
|
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: 4.0
|
6 |
+
Tested up to: 4.6
|
7 |
Stable tag: 1.11.1
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
19 |
* Find a comprehensive _guide and demo_ to the cookie law solution on our help blog https://www.iubenda.com/en/help/posts/1177
|
20 |
|
21 |
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.
|
22 |
+
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.
|
23 |
|
24 |
+
* The plugin automatically inserts the Iubenda code in the head of every page of the site
|
25 |
* It allows to manually block all the remaining resources, without the need of direct intervention on the code
|
26 |
* It handles the display of cookie banners and cookie policy, saving user preferences about the use of cookies
|
27 |
* It displays a clean page (without banner) to users who have already provided their consent
|
41 |
**Some background information**
|
42 |
|
43 |
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.
|
44 |
+
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.
|
45 |
|
46 |
**Which languages does iubenda work in currently?**
|
47 |
|
107 |
|
108 |
**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:** [Uservoice forum](http://support.iubenda.com/forums/314835-general/suggestions/9670701-discussion-regarding-the-iubenda-cookie-law-soluti)
|
109 |
|
110 |
+
- **Installation via WP.org**: search in your WordPress plugin admin panel for "Iubenda Cookie Solution", install it;
|
111 |
+
- 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;
|
112 |
- At this point the plugin will begin to show the banner on which displays your cookie policy (link) to users who visit the site for the first time. No need for other configurations;
|
113 |
- Furthermore, the plugin automatically recognizes and blocks cookies that get installed via the YouTube video player and social widgets - such as the Facebook Like Box - on your site. **Important note** the scripts for Facebook, Twitter, G+, and YouTube iframe only get blocked automatically when generated from the server side (therefore processed by PHP via WordPress). Scripts that are added to the page via Javascript after page load cannot be blocked automatically;
|
114 |
- The other scripts that install cookies for which the automatic block isn't yet available can and should be "wrapped" using these comments:
|
124 |
|
125 |
------ ITALIANO ------
|
126 |
|
127 |
+
- **Installazione automatica**: installa da WordPres.org cercando "Iubenda Cookie Solution";
|
128 |
+
- Una volta installato ed attivato il plugin, accedi al pannello Admin (Impostazioni > Iubenda Cookie Solution) dove ti verrà chiesto di incollare in un campo il codice che iubenda genera quando attivi il kit cookie law sulla tua privacy policy. Per ulteriori informazioni su come attivare il kit cookie law, consulta questo articolo: https://www.iubenda.com/it/help/posts/680;
|
129 |
- A questo punto il plugin inizierà a mostrare il banner in cui è richiamata la tua cookie policy agli utenti che visitano il sito per la prima volta senza la necessità di altre configurazioni;
|
130 |
- In più, il plugin riconoscerà e bloccherà in automatico i cookie installati da tutti i video player di YouTube e dai widget sociali – come il Facebook Like Box – presenti sul tuo sito. **Nota importante**: il nostro plugin wordpress blocca in modo automatico tutti gli script Facebook, Twitter, G+, iframe youtube che sono generati lato server (quindi restituiti via PHP da wordpress). Script che vengono inseriti nella pagina dopo il loading della pagina tramite Javascript non sono e non possono essere bloccati in modo automatico;
|
131 |
- Gli altri script per i quali non è ancora disponibile il blocco automatico – e che installano cookie che richiedono il blocco prima del consenso – vanno “avvolti” utilizzando questi commenti:
|
150 |
|
151 |
== Changelog ==
|
152 |
|
|
|
|
|
|
|
|
|
153 |
= 1.11.1 =
|
154 |
* New: Created a new option that disables the plugin on RSS feeds
|
155 |
* New: Improved the control that checks if the request content type is HTML
|
156 |
* Fixed an issue with the banner script
|
157 |
* Fixed a series of conflicts with UTF-8 special characters caused by the experimental parsing engine
|
158 |
|
159 |
+
= 1.14.0-beta =
|
160 |
+
* New: Multilingual support
|
161 |
+
* Fix: Multiple classes no longer being added to script tags
|
162 |
+
* Fix: Buffering action hooks adjustments
|
163 |
+
* General rewrite using WordPress coding standards
|
164 |
+
* Turned into OOP
|
165 |
+
|
166 |
= 1.11.0 =
|
167 |
* New: Introduced a MUCH FASTER experimental parsing engine (visit the plugin options and select the experimental parsing engine)
|
168 |
* New: Created a new option that allow users to enable/disable the parsing engine and to select the parsing engine between stable and experimental
|