iubenda Cookie Solution for GDPR - Version 2.1.2-beta

Version Description

  • New: Google AMP compatibility option
Download this release

Release Info

Developer dfactory
Plugin Icon 128x128 iubenda Cookie Solution for GDPR
Version 2.1.2-beta
Comparing to
See all releases

Code changes from version 2.1.0-beta to 2.1.2-beta

css/admin.css CHANGED
@@ -42,6 +42,12 @@
42
  #iub_parser_engine_container > div:not(:last-child) {
43
  margin-bottom: 10px;
44
  }
 
 
 
 
 
 
45
  #iubenda-tabs .contextual-help-wrap {
46
  overflow: auto;
47
  margin: 0;
42
  #iub_parser_engine_container > div:not(:last-child) {
43
  margin-bottom: 10px;
44
  }
45
+ #iub_amp_options_container {
46
+ margin-top: 10px;
47
+ }
48
+ #iub_amp_options_container > div:not(:last-child) {
49
+ margin-bottom: 10px;
50
+ }
51
  #iubenda-tabs .contextual-help-wrap {
52
  overflow: auto;
53
  margin: 0;
includes/settings.php CHANGED
@@ -127,6 +127,7 @@ class iubenda_Settings {
127
  add_settings_field( 'iub_output_feed', __( 'RSS feed', 'iubenda' ), array( $this, 'iub_output_feed' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
128
  add_settings_field( 'iub_output_post', __( 'POST requests', 'iubenda' ), array( $this, 'iub_output_post' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
129
  add_settings_field( 'iub_menu_position', __( 'Menu position', 'iubenda' ), array( $this, 'iub_menu_position' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
 
130
  add_settings_field( 'iub_deactivation', __( 'Deactivation', 'iubenda' ), array( $this, 'iub_deactivation' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
131
 
132
  // forms list
@@ -413,7 +414,7 @@ class iubenda_Settings {
413
  } else
414
  $iubenda_code = iubenda()->options['cs']['code_default'];
415
 
416
- $per_purpose_enabled = preg_match( '/\"perPurposeConsent\"\: *\"true\"/', $iubenda_code );
417
 
418
  if ( $per_purpose_enabled )
419
  $this->add_notice( 'iub_per_purpose_enabled', sprintf( __( 'If you are using per-purpose script blocking please disable the "Leave scripts untouched on the page if the user has already given consent" option. <a href="%s" target="_self">Disable now</a>', 'iubenda' ), esc_url( add_query_arg( 'action', 'disable_skip_parsing', $redirect_to ) ) ), 'notice' );
@@ -626,7 +627,7 @@ class iubenda_Settings {
626
  </div>
627
  <div>
628
  <label><input id="iub_skip_parsing" type="checkbox" name="iubenda_cookie_law_solution[skip_parsing]" value="1" ' . checked( true, (bool) iubenda()->options['cs']['skip_parsing'], false ) . '/>' . __( 'Leave scripts untouched on the page if the user has already given consent', 'iubenda' ) . '</label>
629
- <p class="description">(' . __( "improves performance, highly recommended, to be deactivated only if your site uses a caching system or you have per-purpose script blokcing active.", 'iubenda' ) . ')</p>
630
  </div>
631
  </div>
632
  </div>';
@@ -681,6 +682,41 @@ class iubenda_Settings {
681
  <p class="description">' . __( 'Select whether to display iubenda in a top admin menu or the Settings submenu.', 'iubenda' ) . '</p>
682
  </div>';
683
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
684
 
685
  /**
686
  * Deactivation option.
@@ -1109,7 +1145,14 @@ class iubenda_Settings {
1109
  $input['output_feed'] = (bool) isset( $input['output_feed'] );
1110
  $input['output_post'] = (bool) isset( $input['output_post'] );
1111
  $input['menu_position'] = isset( $input['menu_position'] ) && in_array( $input['menu_position'], array( 'topmenu', 'submenu' ) ) ? $input['menu_position'] : iubenda()->defaults['cs']['menu_position'];
 
1112
  $input['deactivation'] = (bool) isset( $input['deactivation'] );
 
 
 
 
 
 
1113
 
1114
  // multilang support
1115
  if ( iubenda()->multilang && ! empty( iubenda()->languages ) ) {
127
  add_settings_field( 'iub_output_feed', __( 'RSS feed', 'iubenda' ), array( $this, 'iub_output_feed' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
128
  add_settings_field( 'iub_output_post', __( 'POST requests', 'iubenda' ), array( $this, 'iub_output_post' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
129
  add_settings_field( 'iub_menu_position', __( 'Menu position', 'iubenda' ), array( $this, 'iub_menu_position' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
130
+ add_settings_field( 'iub_amp_support', __( 'Google AMP', 'iubenda' ), array( $this, 'iub_amp_support' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
131
  add_settings_field( 'iub_deactivation', __( 'Deactivation', 'iubenda' ), array( $this, 'iub_deactivation' ), 'iubenda_cookie_law_solution', 'iubenda_cookie_law_solution' );
132
 
133
  // forms list
414
  } else
415
  $iubenda_code = iubenda()->options['cs']['code_default'];
416
 
417
+ $per_purpose_enabled = preg_match( '/(?:"|\')perPurposeConsent(?:"|\')\: *(?:"|\'*)true(?:"|\'*)/', $iubenda_code );
418
 
419
  if ( $per_purpose_enabled )
420
  $this->add_notice( 'iub_per_purpose_enabled', sprintf( __( 'If you are using per-purpose script blocking please disable the "Leave scripts untouched on the page if the user has already given consent" option. <a href="%s" target="_self">Disable now</a>', 'iubenda' ), esc_url( add_query_arg( 'action', 'disable_skip_parsing', $redirect_to ) ) ), 'notice' );
627
  </div>
628
  <div>
629
  <label><input id="iub_skip_parsing" type="checkbox" name="iubenda_cookie_law_solution[skip_parsing]" value="1" ' . checked( true, (bool) iubenda()->options['cs']['skip_parsing'], false ) . '/>' . __( 'Leave scripts untouched on the page if the user has already given consent', 'iubenda' ) . '</label>
630
+ <p class="description">(' . __( "improves performance, highly recommended, to be deactivated only if your site uses a caching system or if you're collecting per-category consent.", 'iubenda' ) . ')</p>
631
  </div>
632
  </div>
633
  </div>';
682
  <p class="description">' . __( 'Select whether to display iubenda in a top admin menu or the Settings submenu.', 'iubenda' ) . '</p>
683
  </div>';
684
  }
685
+
686
+ /**
687
+ * Google AMP support option.
688
+ *
689
+ * @return mixed
690
+ */
691
+ public function iub_amp_support() {
692
+ echo '
693
+ <div id="iub_amp_support_container">
694
+ <label><input id="iub_amp_support" type="checkbox" name="iubenda_cookie_law_solution[amp_support]" value="1" ' . checked( true, (bool) iubenda()->options['cs']['amp_support'], false ) . '/>' . __( 'Enable Google AMP caching compatibility.', 'iubenda' ) . '</label>
695
+ <p class="description">' . sprintf( __( 'This plugin provides compatibility with Google AMP through <a href="%s" target="_blank">AMP</a> and <a href="%s" target="_blank">AMP for WP</a> WordPress plugins.', 'iubenda' ), 'https://wordpress.org/plugins/amp/', 'https://wordpress.org/plugins/accelerated-mobile-pages/' ) . '</p>
696
+ <div id="iub_amp_options_container"' . ( iubenda()->options['cs']['amp_support'] === false ? ' style="display: none;"' : '' ) . '>
697
+ <div>
698
+ <label><input id="iub_amp_source-local" class="iub_amp_source" type="radio" name="iubenda_cookie_law_solution[amp_source]" value="local" ' . checked( 'local', iubenda()->options['cs']['amp_source'], false ) . ' />' . __( 'Local file', 'iubenda' ) . '</label>
699
+ <label><input id="iub_amp_source-remote" class="iub_amp_source" type="radio" name="iubenda_cookie_law_solution[amp_source]" value="remote" ' . checked( 'remote', iubenda()->options['cs']['amp_source'], false ) . ' />' . __( 'Remote file', 'iubenda' ) . '</label>
700
+ <p class="description">' . __( 'Select the iubenda AMP configuration file location.', 'iubenda' ) . '</p>
701
+ </div>
702
+ <div id="iub_amp_template-local"' . ( iubenda()->options['cs']['amp_source'] === 'remote' ? ' style="display: none;"' : '' ) . '>';
703
+ if ( iubenda()->options['cs']['amp_template_done'] === false ) {
704
+ echo '
705
+ <p class="description">' . __( 'No file available. Save changes to generate iubenda AMP configuration file.', 'iubenda' ) . '</p>';
706
+ } else {
707
+ echo '
708
+ <a href="' . iubenda()->get_amp_template_url() . '" target="_blank">' . iubenda()->get_amp_template_url() . '</a>
709
+ <p class="description">' . __( 'Autogenerated iubenda AMP configuration file.', 'iubenda' ) . '</p>';
710
+ }
711
+ echo '
712
+ </div>
713
+ <div id="iub_amp_template-remote"' . ( iubenda()->options['cs']['amp_source'] === 'local' ? ' style="display: none;"' : '' ) . '>
714
+ <label><input id="iub_amp_template" type="text" class="regular-text" name="iubenda_cookie_law_solution[amp_template]" value="' . esc_url( iubenda()->options['cs']['amp_template'] ) . '" /></label>
715
+ <p class="description">' . __( 'If you\'re experiencing issues with AMP setup download the generated iubenda AMP configuration file, upload it to any SSL server and paste the file link to the field above.', 'iubenda' ) . '</p>
716
+ </div>
717
+ </div>
718
+ </div>';
719
+ }
720
 
721
  /**
722
  * Deactivation option.
1145
  $input['output_feed'] = (bool) isset( $input['output_feed'] );
1146
  $input['output_post'] = (bool) isset( $input['output_post'] );
1147
  $input['menu_position'] = isset( $input['menu_position'] ) && in_array( $input['menu_position'], array( 'topmenu', 'submenu' ) ) ? $input['menu_position'] : iubenda()->defaults['cs']['menu_position'];
1148
+ $input['amp_support'] = (bool) isset( $input['amp_support'] );
1149
  $input['deactivation'] = (bool) isset( $input['deactivation'] );
1150
+
1151
+ // generate amp template file
1152
+ if ( isset( $input['amp_support'] ) ) {
1153
+ $input['amp_template_done'] = (bool) iubenda()->generate_amp_template();
1154
+ $input['amp_template'] = esc_url( $input['amp_template'] );
1155
+ }
1156
 
1157
  // multilang support
1158
  if ( iubenda()->multilang && ! empty( iubenda()->languages ) ) {
iubenda-cookie-class/README.md CHANGED
@@ -98,6 +98,9 @@ These operations take place in accordance with the rules explained in [this guid
98
 
99
  ## Changelog
100
 
 
 
 
101
  ##### 4.0.0
102
  * New: Per-purpose script blocking support
103
  * New: Reject button support
98
 
99
  ## Changelog
100
 
101
+ ##### 4.1.0
102
+ * New: Google AMP support
103
+
104
  ##### 4.0.0
105
  * New: Per-purpose script blocking support
106
  * New: Reject button support
iubenda-cookie-class/iubenda.class.php CHANGED
@@ -3,9 +3,9 @@
3
  * iubenda.class.php
4
  *
5
  * @author iubenda s.r.l
6
- * @copyright 2018-2019, iubenda s.r.l
7
  * @license GNU/GPL
8
- * @version 4.0.0
9
  * @deprecated
10
  *
11
  * This program is free software: you can redistribute it and/or modify
@@ -137,6 +137,7 @@ class iubendaParser {
137
  );
138
 
139
  private $type = 'page';
 
140
  public $iub_comments_detected = array();
141
  public $skipped_comments_detected = array();
142
  public $iframes_skipped = array();
@@ -162,6 +163,9 @@ class iubendaParser {
162
  public function __construct( $content_page = '', $args = array() ) {
163
  // valid type?
164
  $this->type = ! empty( $args['type'] ) && in_array( $args['type'], array( 'page', 'faster' ), true ) ? $args['type'] : 'page';
 
 
 
165
 
166
  // load Simple HTML DOM if needed
167
  if ( ! function_exists( 'file_get_html' ) || ! function_exists( 'str_get_html' ) )
@@ -369,6 +373,10 @@ class iubendaParser {
369
  case 'script':
370
  if ( $args['pattern'] === 'IUB_REGEX_PURPOSE_PATTERN' )
371
  $e->{'data-iub-purposes'} = $args['number'];
 
 
 
 
372
 
373
  $class = $e->class;
374
  $e->class = $class . ' ' . $this->iub_class;
@@ -379,6 +387,10 @@ class iubendaParser {
379
  case 'iframe':
380
  if ( $args['pattern'] === 'IUB_REGEX_PURPOSE_PATTERN' )
381
  $e->{'data-iub-purposes'} = $args['number'];
 
 
 
 
382
 
383
  $new_src = $this->iub_empty;
384
  $class = $e->class;
@@ -498,6 +510,10 @@ class iubendaParser {
498
  // add data-iub-purposes attribute
499
  $s->{'data-iub-purposes'} = $this->recursive_array_search( $found, $this->script_tags );
500
 
 
 
 
 
501
  $this->scripts_converted[] = $src;
502
  }
503
  }
@@ -654,12 +670,20 @@ class iubendaParser {
654
 
655
  // add data-iub-purposes attribute
656
  $script->setAttribute( 'data-iub-purposes', $this->recursive_array_search( $found, $this->script_tags ) );
 
 
 
 
657
 
658
  // add script as converted
659
  $this->scripts_converted[] = $src;
660
  } elseif ( $found_inline !== false ) {
661
  $script->setAttribute( 'type', 'text/plain' );
662
  $script->setAttribute( 'class', $script->getAttribute( 'class' ) . ' ' . $class_inline );
 
 
 
 
663
 
664
  // add inline script as converted
665
  $this->scripts_inline_converted[] = $script->nodeValue;
@@ -724,6 +748,10 @@ class iubendaParser {
724
 
725
  // add data-iub-purposes attribute
726
  $i->{'data-iub-purposes'} = $this->recursive_array_search( $found, $this->iframe_tags );
 
 
 
 
727
 
728
  $this->iframes_converted[] = $src;
729
  }
@@ -785,6 +813,10 @@ class iubendaParser {
785
 
786
  // per purpose, add data-iub-purposes attribute
787
  $iframe->setAttribute( 'data-iub-purposes', $this->recursive_array_search( $found, $this->iframe_tags ) );
 
 
 
 
788
 
789
  // add iframe as converted
790
  $this->iframes_converted[] = $src;
3
  * iubenda.class.php
4
  *
5
  * @author iubenda s.r.l
6
+ * @copyright 2018-2020, iubenda s.r.l
7
  * @license GNU/GPL
8
+ * @version 4.1.0
9
  * @deprecated
10
  *
11
  * This program is free software: you can redistribute it and/or modify
137
  );
138
 
139
  private $type = 'page';
140
+ private $amp = false;
141
  public $iub_comments_detected = array();
142
  public $skipped_comments_detected = array();
143
  public $iframes_skipped = array();
163
  public function __construct( $content_page = '', $args = array() ) {
164
  // valid type?
165
  $this->type = ! empty( $args['type'] ) && in_array( $args['type'], array( 'page', 'faster' ), true ) ? $args['type'] : 'page';
166
+
167
+ // amp support>
168
+ $this->amp = (bool) ( isset( $args['amp'] ) && $args['amp'] === true );
169
 
170
  // load Simple HTML DOM if needed
171
  if ( ! function_exists( 'file_get_html' ) || ! function_exists( 'str_get_html' ) )
373
  case 'script':
374
  if ( $args['pattern'] === 'IUB_REGEX_PURPOSE_PATTERN' )
375
  $e->{'data-iub-purposes'} = $args['number'];
376
+
377
+ // AMP support
378
+ if ( $this->amp )
379
+ $e->{'data-block-on-consent'} = '_till_accepted';
380
 
381
  $class = $e->class;
382
  $e->class = $class . ' ' . $this->iub_class;
387
  case 'iframe':
388
  if ( $args['pattern'] === 'IUB_REGEX_PURPOSE_PATTERN' )
389
  $e->{'data-iub-purposes'} = $args['number'];
390
+
391
+ // AMP support
392
+ if ( $this->amp )
393
+ $e->{'data-block-on-consent'} = '_till_accepted';
394
 
395
  $new_src = $this->iub_empty;
396
  $class = $e->class;
510
  // add data-iub-purposes attribute
511
  $s->{'data-iub-purposes'} = $this->recursive_array_search( $found, $this->script_tags );
512
 
513
+ // AMP support
514
+ if ( $this->amp )
515
+ $s->{'data-block-on-consent'} = '_till_accepted';
516
+
517
  $this->scripts_converted[] = $src;
518
  }
519
  }
670
 
671
  // add data-iub-purposes attribute
672
  $script->setAttribute( 'data-iub-purposes', $this->recursive_array_search( $found, $this->script_tags ) );
673
+
674
+ // AMP support
675
+ if ( $this->amp )
676
+ $script->setAttribute( 'data-block-on-consent', '_till_accepted' );
677
 
678
  // add script as converted
679
  $this->scripts_converted[] = $src;
680
  } elseif ( $found_inline !== false ) {
681
  $script->setAttribute( 'type', 'text/plain' );
682
  $script->setAttribute( 'class', $script->getAttribute( 'class' ) . ' ' . $class_inline );
683
+
684
+ // AMP support
685
+ if ( $this->amp )
686
+ $script->setAttribute( 'data-block-on-consent', '_till_accepted' );
687
 
688
  // add inline script as converted
689
  $this->scripts_inline_converted[] = $script->nodeValue;
748
 
749
  // add data-iub-purposes attribute
750
  $i->{'data-iub-purposes'} = $this->recursive_array_search( $found, $this->iframe_tags );
751
+
752
+ // AMP support
753
+ if ( $this->amp )
754
+ $i->{'data-block-on-consent'} = '_till_accepted';
755
 
756
  $this->iframes_converted[] = $src;
757
  }
813
 
814
  // per purpose, add data-iub-purposes attribute
815
  $iframe->setAttribute( 'data-iub-purposes', $this->recursive_array_search( $found, $this->iframe_tags ) );
816
+
817
+ // AMP support
818
+ if ( $this->amp )
819
+ $iframe->setAttribute( 'data-block-on-consent', '_till_accepted' );
820
 
821
  // add iframe as converted
822
  $this->iframes_converted[] = $src;
iubenda_cookie_solution.php CHANGED
@@ -1,25 +1,25 @@
1
  <?php
2
  /*
3
- Plugin Name: Cookie and Consent Solution for the GDPR & ePrivacy
4
- Plugin URI: https://www.iubenda.com
5
- Description: An All-in-One approach developed by iubenda, which includes functionalities of two powerful solutions that help to make your website GDPR and ePrivacy compliant.
6
- Version: 2.1.0
7
- Author: iubenda
8
- Author URI: https://www.iubenda.com
9
- License: MIT License
10
- License URI: http://opensource.org/licenses/MIT
11
- Text Domain: iubenda
12
- Domain Path: /languages
13
 
14
- Cookie and Consent Solution for the GDPR & ePrivacy
15
- Copyright (C) 2018-2019, iubenda s.r.l
16
 
17
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
18
 
19
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
20
 
21
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- */
23
 
24
  // exit if accessed directly
25
  if ( ! defined( 'ABSPATH' ) )
@@ -39,7 +39,7 @@ class iubenda {
39
  private static $instance;
40
  public $options = array();
41
  public $defaults = array(
42
- 'cs' => array(
43
  'parse' => false, // iubenda_parse
44
  'skip_parsing' => true, // skip_parsing
45
  'ctype' => true, // iubenda_ctype
@@ -49,11 +49,15 @@ class iubenda {
49
  'output_post' => true,
50
  'code_default' => false, // iubenda-code-default,
51
  'menu_position' => 'topmenu',
 
 
 
 
52
  'custom_scripts' => array(),
53
  'custom_iframes' => array(),
54
  'deactivation' => false
55
  ),
56
- 'cons' => array(
57
  'public_api_key' => '',
58
  )
59
  );
@@ -67,12 +71,16 @@ class iubenda {
67
  /**
68
  * Disable object clone.
69
  */
70
- private function __clone() {}
 
 
71
 
72
  /**
73
  * Disable unserializing of the class.
74
  */
75
- private function __wakeup() {}
 
 
76
 
77
  /**
78
  * Main plugin instance,
@@ -141,6 +149,12 @@ class iubenda {
141
  add_action( 'template_redirect', array( $this, 'output_start' ), 0 );
142
  add_action( 'shutdown', array( $this, 'output_end' ), 100 );
143
  add_action( 'template_redirect', array( $this, 'disable_jetpack_tracking' ) );
 
 
 
 
 
 
144
  }
145
 
146
  /**
@@ -188,7 +202,7 @@ class iubenda {
188
  // get default language
189
  $this->lang_default = pll_default_language();
190
 
191
- // WPML support
192
  } elseif ( is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) && class_exists( 'SitePress' ) ) {
193
  $this->multilang = true;
194
 
@@ -304,7 +318,7 @@ class iubenda {
304
  return;
305
 
306
  // initial head output
307
- $iubenda_code = "";
308
 
309
  if ( $this->multilang === true && defined( 'ICL_LANGUAGE_CODE' ) && isset( $this->options['cs']['code_' . ICL_LANGUAGE_CODE] ) ) {
310
  $iubenda_code .= $this->options['cs']['code_' . ICL_LANGUAGE_CODE];
@@ -351,9 +365,9 @@ class iubenda {
351
  if ( ! empty( $this->options['cons']['public_api_key'] ) ) {
352
 
353
  $parameters = apply_filters( 'iubenda_cons_init_parameters', array(
354
- 'log_level' => 'error',
355
- 'logger' => 'console',
356
- 'send_from_local' => true
357
  ) );
358
 
359
  echo '<!-- Library initialization -->
@@ -437,13 +451,9 @@ class iubenda {
437
  */
438
  public function output_callback( $output ) {
439
  // check whether to run parser or not
440
-
441
  // bail on ajax, xmlrpc or iub_no_parse request
442
  if (
443
- ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST )
444
- || ( defined( 'DOING_AJAX' ) && DOING_AJAX )
445
- || isset( $_SERVER["HTTP_X_REQUESTED_WITH"] )
446
- || isset( $_GET['iub_no_parse'] )
447
  )
448
  return $output;
449
 
@@ -493,16 +503,26 @@ class iubenda {
493
 
494
  // experimental class
495
  if ( $this->options['cs']['parser_engine'] == 'new' ) {
496
- $iubenda = new iubendaParser( mb_convert_encoding( $output, 'HTML-ENTITIES', 'UTF-8' ), array( 'type' => 'faster', 'scripts' => $scripts, 'iframes' => $iframes ) );
 
 
 
 
 
497
 
498
  // render output
499
  $output = $iubenda->parse();
500
 
501
  // append signature
502
  $output .= '<!-- Parsed with iubenda experimental class in ' . round( microtime( true ) - $startime, 4 ) . ' sec. -->';
503
- // default class
504
  } else {
505
- $iubenda = new iubendaParser( $output, array( 'type' => 'page', 'scripts' => $scripts, 'iframes' => $iframes ) );
 
 
 
 
 
506
 
507
  // render output
508
  $output = $iubenda->parse();
@@ -582,7 +602,6 @@ class iubenda {
582
  return;
583
 
584
  // if ( is_feed() || is_robots() || is_trackback() || is_preview() || jetpack_is_dnt_enabled() )
585
-
586
  // bail if skripts blocking disabled
587
  if ( ! $this->options['cs']['parse'] )
588
  return;
@@ -595,6 +614,330 @@ class iubenda {
595
  remove_action( 'wp_footer', 'stats_footer', 101 );
596
  }
597
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
598
  /**
599
  * Get allowed iubenda script HTML.
600
  *
@@ -605,29 +948,28 @@ class iubenda {
605
  remove_filter( 'pre_kses', array( 'Filter_Embedded_HTML_Objects', 'filter' ), 11 );
606
 
607
  $html = array_merge(
608
- wp_kses_allowed_html( 'post' ),
609
- array(
610
- 'script' => array(
611
- 'type' => array(),
612
- 'src' => array(),
613
- 'charset' => array(),
614
- 'async' => array()
615
- ),
616
- 'noscript' => array(),
617
- 'style' => array(
618
- 'type' => array()
619
- ),
620
- 'iframe' => array(
621
- 'src' => array(),
622
- 'height' => array(),
623
- 'width' => array(),
624
- 'frameborder' => array(),
625
- 'allowfullscreen' => array()
626
- )
627
  )
 
628
  );
629
 
630
- return apply_filters( 'iub_code_allowed_html', $html );
631
  }
632
 
633
  }
1
  <?php
2
  /*
3
+ Plugin Name: Cookie and Consent Solution for the GDPR & ePrivacy
4
+ Plugin URI: https://www.iubenda.com
5
+ Description: An All-in-One approach developed by iubenda, which includes functionalities of two powerful solutions that help to make your website GDPR and ePrivacy compliant.
6
+ Version: 2.1.0
7
+ Author: iubenda
8
+ Author URI: https://www.iubenda.com
9
+ License: MIT License
10
+ License URI: http://opensource.org/licenses/MIT
11
+ Text Domain: iubenda
12
+ Domain Path: /languages
13
 
14
+ Cookie and Consent Solution for the GDPR & ePrivacy
15
+ Copyright (C) 2018-2019, iubenda s.r.l
16
 
17
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
18
 
19
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
20
 
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ */
23
 
24
  // exit if accessed directly
25
  if ( ! defined( 'ABSPATH' ) )
39
  private static $instance;
40
  public $options = array();
41
  public $defaults = array(
42
+ 'cs' => array(
43
  'parse' => false, // iubenda_parse
44
  'skip_parsing' => true, // skip_parsing
45
  'ctype' => true, // iubenda_ctype
49
  'output_post' => true,
50
  'code_default' => false, // iubenda-code-default,
51
  'menu_position' => 'topmenu',
52
+ 'amp_support' => false,
53
+ 'amp_source' => 'local',
54
+ 'amp_template_done' => false,
55
+ 'amp_template' => '',
56
  'custom_scripts' => array(),
57
  'custom_iframes' => array(),
58
  'deactivation' => false
59
  ),
60
+ 'cons' => array(
61
  'public_api_key' => '',
62
  )
63
  );
71
  /**
72
  * Disable object clone.
73
  */
74
+ private function __clone() {
75
+
76
+ }
77
 
78
  /**
79
  * Disable unserializing of the class.
80
  */
81
+ private function __wakeup() {
82
+
83
+ }
84
 
85
  /**
86
  * Main plugin instance,
149
  add_action( 'template_redirect', array( $this, 'output_start' ), 0 );
150
  add_action( 'shutdown', array( $this, 'output_end' ), 100 );
151
  add_action( 'template_redirect', array( $this, 'disable_jetpack_tracking' ) );
152
+
153
+ // WP AMP support
154
+ add_action( 'amp_post_template_head', array( $this, 'wp_head_amp' ), 100 );
155
+ add_action( 'amp_post_template_footer', array( $this, 'wp_footer_amp' ), 100 );
156
+ add_action( 'wp_head', array( $this, 'wp_head_amp' ), 100 );
157
+ add_action( 'wp_footer', array( $this, 'wp_footer_amp' ), 100 );
158
  }
159
 
160
  /**
202
  // get default language
203
  $this->lang_default = pll_default_language();
204
 
205
+ // WPML support
206
  } elseif ( is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) && class_exists( 'SitePress' ) ) {
207
  $this->multilang = true;
208
 
318
  return;
319
 
320
  // initial head output
321
+ $iubenda_code = '';
322
 
323
  if ( $this->multilang === true && defined( 'ICL_LANGUAGE_CODE' ) && isset( $this->options['cs']['code_' . ICL_LANGUAGE_CODE] ) ) {
324
  $iubenda_code .= $this->options['cs']['code_' . ICL_LANGUAGE_CODE];
365
  if ( ! empty( $this->options['cons']['public_api_key'] ) ) {
366
 
367
  $parameters = apply_filters( 'iubenda_cons_init_parameters', array(
368
+ 'log_level' => 'error',
369
+ 'logger' => 'console',
370
+ 'send_from_local' => true
371
  ) );
372
 
373
  echo '<!-- Library initialization -->
451
  */
452
  public function output_callback( $output ) {
453
  // check whether to run parser or not
 
454
  // bail on ajax, xmlrpc or iub_no_parse request
455
  if (
456
+ ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || isset( $_SERVER["HTTP_X_REQUESTED_WITH"] ) || isset( $_GET['iub_no_parse'] )
 
 
 
457
  )
458
  return $output;
459
 
503
 
504
  // experimental class
505
  if ( $this->options['cs']['parser_engine'] == 'new' ) {
506
+ $iubenda = new iubendaParser( mb_convert_encoding( $output, 'HTML-ENTITIES', 'UTF-8' ), array(
507
+ 'type' => 'faster',
508
+ 'amp' => $this->options['cs']['amp_support'],
509
+ 'scripts' => $scripts,
510
+ 'iframes' => $iframes
511
+ ) );
512
 
513
  // render output
514
  $output = $iubenda->parse();
515
 
516
  // append signature
517
  $output .= '<!-- Parsed with iubenda experimental class in ' . round( microtime( true ) - $startime, 4 ) . ' sec. -->';
518
+ // default class
519
  } else {
520
+ $iubenda = new iubendaParser( $output, array(
521
+ 'type' => 'page',
522
+ 'amp' => $this->options['cs']['amp_support'],
523
+ 'scripts' => $scripts,
524
+ 'iframes' => $iframes
525
+ ) );
526
 
527
  // render output
528
  $output = $iubenda->parse();
602
  return;
603
 
604
  // if ( is_feed() || is_robots() || is_trackback() || is_preview() || jetpack_is_dnt_enabled() )
 
605
  // bail if skripts blocking disabled
606
  if ( ! $this->options['cs']['parse'] )
607
  return;
614
  remove_action( 'wp_footer', 'stats_footer', 101 );
615
  }
616
 
617
+ /**
618
+ * Add AMP consent HTML to head.
619
+ *
620
+ * @return mixed
621
+ */
622
+ public function wp_head_amp() {
623
+ if ( $this->options['cs']['amp_support'] === false )
624
+ return;
625
+
626
+ if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() || ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) ) {
627
+ echo '
628
+ <script async custom-element="amp-consent" src="https://cdn.ampproject.org/v0/amp-consent-0.1.js"></script>
629
+ <script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-0.1.js"></script>';
630
+ // optional geo support
631
+ echo '
632
+ <script async custom-element="amp-geo" src="https://cdn.ampproject.org/v0/amp-geo-0.1.js"></script>';
633
+ // CSS style
634
+ echo '
635
+ <style amp-custom>
636
+ .popupOverlay {
637
+ position:fixed;
638
+ top: 0;
639
+ bottom: 0;
640
+ left: 0;
641
+ right: 0;
642
+ }
643
+ </style>';
644
+ }
645
+ }
646
+
647
+ /**
648
+ * Add AMP consent HTML to footer.
649
+ *
650
+ * @return mixed
651
+ */
652
+ public function wp_footer_amp() {
653
+ if ( $this->options['cs']['amp_support'] === false )
654
+ return;
655
+
656
+ if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() || ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) ) {
657
+
658
+ $site_data = $this->parse_site_data();
659
+
660
+ if ( empty( $site_data ) )
661
+ return;
662
+
663
+ // local file
664
+ if ( $this->options['cs']['amp_source'] === 'local' ) {
665
+ $template_url = $this->get_amp_template_url();
666
+ // remote file
667
+ } else {
668
+ $template_url = esc_url( $this->options['cs']['amp_template'] );
669
+ }
670
+
671
+ if ( empty( $template_url ) )
672
+ return;
673
+
674
+ echo '
675
+ <amp-consent id="myUserConsent" layout="nodisplay">
676
+ <script type="application/json">
677
+ {
678
+ "consentInstanceId": "consent' . $site_data['site_id'] . '",
679
+ "consentRequired": true,
680
+ "promptUI": "myConsentFlow"
681
+ }
682
+ </script>
683
+ <div id="myConsentFlow" class="popupOverlay">
684
+ <amp-iframe
685
+ layout="fill"
686
+ sandbox="allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox"
687
+ src="' . esc_url( $template_url ) . '">
688
+ <div placeholder>' . __( 'Loading', 'iubenda' ) . '</div>
689
+ </amp-iframe>
690
+ </div>
691
+ </amp-consent>';
692
+ }
693
+ }
694
+
695
+ /**
696
+ * Prepare HTML iframe template for the AMP.
697
+ *
698
+ * @return mixed
699
+ */
700
+ public function prepare_amp_template() {
701
+ $html = '';
702
+ $site_data = $this->parse_site_data();
703
+
704
+ if ( ! empty( $site_data ) ) {
705
+
706
+ $html .= '<!DOCTYPE html>
707
+ <html lang="' . $site_data['lang'] . '">
708
+ <head>
709
+ <meta charset="UTF-8">
710
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
711
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
712
+ <title>AMP Cookie Consent</title>
713
+ <script type="text/javascript">
714
+ var _iub = _iub || [];
715
+ _iub.csConfiguration = {
716
+ lang: \'' . $site_data['lang'] . '\',
717
+ siteId: ' . $site_data['site_id'] . ', // your own site ID
718
+ cookiePolicyId: ' . $site_data['policy_id'] . ', // your own cookie policy ID
719
+
720
+ enableCMP: true,
721
+ askConsentIfCMPNotFound: true,
722
+ isTCFConsentGlobal: true,
723
+ googleAdsPreferenceManagement: true,
724
+
725
+ banner: {
726
+ position: \'float-bottom-center\',
727
+ acceptButtonDisplay: true,
728
+ customizeButtonDisplay: true,
729
+ rejectButtonDisplay: true,
730
+ backgroundOverlay: true
731
+ },
732
+ callback: {
733
+ onPreferenceExpressed: function(preference) {
734
+ var consentAction = \'reject\';
735
+ if (preference && preference.consent) {
736
+ consentAction = \'accept\';
737
+ }
738
+ console.log(\'send consent-response\', consentAction);
739
+ window.parent.postMessage({
740
+ type: \'consent-response\',
741
+ action: consentAction
742
+ }, \'*\');
743
+ }
744
+ }
745
+ };
746
+ </script>
747
+ <script async src="https://cdn.iubenda.com/cs/beta/iubenda_cs.js"></script>
748
+ </head>
749
+ <body></body>
750
+ </html>';
751
+ }
752
+
753
+ return $html;
754
+ }
755
+
756
+ /**
757
+ * Get local file template url;
758
+ *
759
+ * @return string
760
+ */
761
+ public function get_amp_template_url() {
762
+ // get basic site host and template file data
763
+ $template_url = '';
764
+ $file_url = IUBENDA_PLUGIN_URL . '/templates/amp.html';
765
+ // $file_url = 'https://cdn.iubenda.com/cs/test/cs-for-amp.html'; // debug only
766
+ $parsed_site = parse_url( home_url() );
767
+ $parsed_file = parse_url( $file_url );
768
+ $site_host = $parsed_site['host'] !== 'localhost' ? $this->domain( $parsed_site['host'] ) : 'localhost';
769
+ $file_host = $parsed_file['host'] !== 'localhost' ? $this->domain( $parsed_file['host'] ) : 'localhost';
770
+ $is_localhost = (bool) $file_host == 'localhost';
771
+ $is_subdomain = ! $is_localhost ? (bool) ( $parsed_file['host'] !== $file_host ) : false;
772
+
773
+ // check if file host and server host match
774
+ // if not, we're good to go
775
+ if ( $site_host !== $file_host ) {
776
+ $template_url = $file_url;
777
+ // if are located on same host do additional tweaks
778
+ } else {
779
+ // all ok if we're on different subdomains
780
+ if ( $parsed_site['host'] !== $parsed_file['host'] )
781
+ $template_url = $file_url;
782
+ // same hosts, let's tweak the http/https
783
+ else {
784
+ $has_www = strpos( $parsed_file['host'], 'www.' ) === 0;
785
+
786
+ // add or remove www from url string to make iframe url pass AMP validation
787
+ $tweaked_host = ! $is_localhost && ! $is_subdomain ? ! $has_www ? 'www.' . $parsed_file['host'] : preg_replace( '/^www\./i', '', $parsed_file['host'] ) : $parsed_file['host'];
788
+
789
+ // generate new url
790
+ $tweaked_url = $parsed_file['scheme'] . '://' . $tweaked_host . ( isset( $parsed_file['port'] ) ? ':' . $parsed_file['port'] : '' ) . $parsed_file['path'] . ( ! empty( $parsed_file['query'] ) ? '?' . $parsed_file['query'] : '' );
791
+
792
+ // check if file url is valid
793
+ if ( $tweaked_url ) {
794
+ $template_url = $tweaked_url;
795
+ }
796
+ }
797
+ }
798
+
799
+ /*
800
+ print_r( $file_url );
801
+ print_r( $parsed_site );
802
+ print_r( $parsed_file );
803
+ print_r( $site_host );
804
+ print_r( $file_host );
805
+ print_r( $template_url );
806
+ exit;
807
+ */
808
+
809
+ return $template_url;
810
+ }
811
+
812
+ /**
813
+ * Generate HTML iframe template for the AMP.
814
+ *
815
+ * @return mixed
816
+ */
817
+ public function generate_amp_template() {
818
+ $template_file = IUBENDA_PLUGIN_PATH . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . 'amp.html';
819
+ $html = $this->prepare_amp_template();
820
+
821
+ // bail if the template was not created properly
822
+ if ( empty( $html ) )
823
+ return false;
824
+
825
+ // bail if the file is writable
826
+ if ( ! is_writable( $template_file ) )
827
+ return false;
828
+
829
+ // write the file
830
+ $fh = fopen( $template_file, 'w' );
831
+ fwrite( $fh, $html );
832
+ fclose( $fh );
833
+
834
+ return true;
835
+ }
836
+
837
+ /**
838
+ * Get site data parsed from iubenda code
839
+ *
840
+ * @return array
841
+ */
842
+ public function parse_site_data() {
843
+ $data = array();
844
+
845
+ // get iubenda code
846
+ $iubenda_code = '';
847
+
848
+ if ( $this->multilang === true && defined( 'ICL_LANGUAGE_CODE' ) && isset( $this->options['cs']['code_' . ICL_LANGUAGE_CODE] ) ) {
849
+ $iubenda_code .= $this->options['cs']['code_' . ICL_LANGUAGE_CODE];
850
+
851
+ // no code for current language, use default
852
+ if ( ! $iubenda_code )
853
+ $iubenda_code .= $this->options['cs']['code_default'];
854
+ } else {
855
+ $iubenda_code .= $this->options['cs']['code_default'];
856
+ }
857
+
858
+ // get site data
859
+ if ( ! empty( $iubenda_code ) ) {
860
+ $iubenda_code = $this->parse_code( $iubenda_code, true );
861
+
862
+ // get lang
863
+ $data['lang'] = $this->multilang === true && defined( 'ICL_LANGUAGE_CODE' ) && isset( $this->options['cs']['code_' . ICL_LANGUAGE_CODE] ) ? ICL_LANGUAGE_CODE : 'en';
864
+
865
+ // get site id from code
866
+ preg_match( '/(?:"|\')siteId(?:"|\') *\: *(\d+),/', $iubenda_code, $matches );
867
+
868
+ if ( ! empty( $matches ) )
869
+ $data['site_id'] = $matches[1];
870
+
871
+ // get policy id from code
872
+ preg_match( '/(?:"|\')cookiePolicyId(?:"|\') *\: *(\d+),/', $iubenda_code, $matches );
873
+
874
+ if ( ! empty( $matches ) )
875
+ $data['policy_id'] = $matches[1];
876
+ }
877
+
878
+ return $data;
879
+ }
880
+
881
+ /**
882
+ * Domain info helper function.
883
+ *
884
+ * @param type $domainb
885
+ * @return type
886
+ */
887
+ public function domain( $domainb ) {
888
+ $bits = explode( '/', $domainb );
889
+ if ( $bits[0] == 'http:' || $bits[0] == 'https:' ) {
890
+ $domainb = $bits[2];
891
+ } else {
892
+ $domainb = $bits[0];
893
+ }
894
+ unset( $bits );
895
+ $bits = explode( '.', $domainb );
896
+ $idz = 0;
897
+ while ( isset( $bits[$idz] ) ) {
898
+ $idz += 1;
899
+ }
900
+ $idz -= 3;
901
+ $idy = 0;
902
+ while ( $idy < $idz ) {
903
+ unset( $bits[$idy] );
904
+ $idy += 1;
905
+ }
906
+ $part = array();
907
+ foreach ( $bits AS $bit ) {
908
+ $part[] = $bit;
909
+ }
910
+ unset( $bit );
911
+ unset( $bits );
912
+ unset( $domainb );
913
+ $domainb = '';
914
+
915
+ if ( strlen( $part[1] ) > 3 ) {
916
+ unset( $part[0] );
917
+ }
918
+ foreach ( $part AS $bit ) {
919
+ $domainb .= $bit . '.';
920
+ }
921
+ unset( $bit );
922
+
923
+ return preg_replace( '/(.*)\./', '$1', $domainb );
924
+ }
925
+
926
+ /**
927
+ * Check if file exists helper function.
928
+ *
929
+ * @param type $file
930
+ */
931
+ public function file_exists( $file ) {
932
+ $file_headers = @get_headers( $file );
933
+
934
+ if ( ! $file_headers || $file_headers[0] == 'HTTP/1.1 404 Not Found' ) {
935
+ $exists = false;
936
+ } else {
937
+ $exists = true;
938
+ }
939
+ }
940
+
941
  /**
942
  * Get allowed iubenda script HTML.
943
  *
948
  remove_filter( 'pre_kses', array( 'Filter_Embedded_HTML_Objects', 'filter' ), 11 );
949
 
950
  $html = array_merge(
951
+ wp_kses_allowed_html( 'post' ), array(
952
+ 'script' => array(
953
+ 'type' => array(),
954
+ 'src' => array(),
955
+ 'charset' => array(),
956
+ 'async' => array()
957
+ ),
958
+ 'noscript' => array(),
959
+ 'style' => array(
960
+ 'type' => array()
961
+ ),
962
+ 'iframe' => array(
963
+ 'src' => array(),
964
+ 'height' => array(),
965
+ 'width' => array(),
966
+ 'frameborder' => array(),
967
+ 'allowfullscreen' => array()
 
 
968
  )
969
+ )
970
  );
971
 
972
+ return apply_filters( 'iub_code_allowed_html', $html );
973
  }
974
 
975
  }
js/admin.js CHANGED
@@ -4,7 +4,7 @@
4
  // parse args
5
  var args = $.parseJSON( iubAdminArgs );
6
 
7
- // read more option
8
  $( '#iub_parse' ).change( function () {
9
  if ( $( this ).is( ':checked' ) ) {
10
  $( '#iub_parser_engine_container' ).slideDown( 'fast' );
@@ -12,6 +12,30 @@
12
  $( '#iub_parser_engine_container' ).slideUp( 'fast' );
13
  }
14
  } );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
  // move notices
17
  var errors = $( '.settings-error' ).detach();
4
  // parse args
5
  var args = $.parseJSON( iubAdminArgs );
6
 
7
+ // parser options
8
  $( '#iub_parse' ).change( function () {
9
  if ( $( this ).is( ':checked' ) ) {
10
  $( '#iub_parser_engine_container' ).slideDown( 'fast' );
12
  $( '#iub_parser_engine_container' ).slideUp( 'fast' );
13
  }
14
  } );
15
+
16
+ // amp options
17
+ $( '#iub_amp_support' ).change( function () {
18
+ if ( $( this ).is( ':checked' ) ) {
19
+ $( '#iub_amp_options_container' ).slideDown( 'fast' );
20
+ } else {
21
+ $( '#iub_amp_options_container' ).slideUp( 'fast' );
22
+ }
23
+ } );
24
+
25
+ // amp options
26
+ $( 'input.iub_amp_source' ).change( function () {
27
+ var value = $( 'input.iub_amp_source:checked' ).val();
28
+
29
+ if ( value === 'remote' ) {
30
+ $( '#iub_amp_template-local' ).fadeOut( 'fast', function () {
31
+ $( '#iub_amp_template-remote' ).fadeIn( 'fast' );
32
+ } );
33
+ } else {
34
+ $( '#iub_amp_template-remote' ).fadeOut( 'fast', function () {
35
+ $( '#iub_amp_template-local' ).fadeIn( 'fast' );
36
+ } );
37
+ }
38
+ } );
39
 
40
  // move notices
41
  var errors = $( '.settings-error' ).detach();
js/frontend.js CHANGED
@@ -76,7 +76,7 @@
76
  // Contact Form 7
77
  case 'wpcf7' :
78
  // var regex = new RegExp( '^wpcf7-f([0-9]*)-' );
79
- var htmlFormContainer = $( 'div[id^="wpcf7-f' + id + '-' );
80
 
81
  // form exists, let's use it
82
  if ( htmlFormContainer.length > 0 ) {
@@ -103,7 +103,7 @@
103
 
104
  // WP Forms
105
  case 'wpforms' :
106
- var htmlFormContainer = $( 'div[id^="wpforms-' + id );
107
 
108
  // form exists, let's use it
109
  if ( htmlFormContainer.length > 0 ) {
76
  // Contact Form 7
77
  case 'wpcf7' :
78
  // var regex = new RegExp( '^wpcf7-f([0-9]*)-' );
79
+ var htmlFormContainer = $( 'div[id^="wpcf7-f' + id + '-"]' );
80
 
81
  // form exists, let's use it
82
  if ( htmlFormContainer.length > 0 ) {
103
 
104
  // WP Forms
105
  case 'wpforms' :
106
+ var htmlFormContainer = $( 'div[id^="wpforms-' + id + '"]' );
107
 
108
  // form exists, let's use it
109
  if ( htmlFormContainer.length > 0 ) {
languages/iubenda-cookie-law-solution-it_IT.mo CHANGED
Binary file
languages/iubenda-cookie-law-solution-it_IT.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Iubenda Cookie Solution\n"
4
- "POT-Creation-Date: 2019-12-23 15:48+0100\n"
5
- "PO-Revision-Date: 2019-12-23 15:48+0100\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: it\n"
@@ -62,7 +62,7 @@ msgstr "Tutte le fonti"
62
  msgid "No forms found."
63
  msgstr "Nessun form trovato."
64
 
65
- #: includes/forms.php:149 includes/settings.php:135
66
  msgid "Forms"
67
  msgstr "Form"
68
 
@@ -87,11 +87,11 @@ msgstr "Secondo nome"
87
  msgid "string"
88
  msgstr "stringa"
89
 
90
- #: includes/settings.php:57 includes/settings.php:180
91
  msgid "Cookie Solution"
92
  msgstr "Cookie Solution"
93
 
94
- #: includes/settings.php:63 includes/settings.php:181
95
  msgid "Consent Solution"
96
  msgstr "Consent Solution"
97
 
@@ -152,28 +152,32 @@ msgid "Menu position"
152
  msgstr "Posizione menu"
153
 
154
  #: includes/settings.php:130
 
 
 
 
155
  msgid "Deactivation"
156
  msgstr "Disattivazione"
157
 
158
- #: includes/settings.php:136
159
  #, fuzzy
160
  #| msgid "Public API Key"
161
  msgid "Public Api Key"
162
  msgstr "Chiave API pubblica"
163
 
164
- #: includes/settings.php:139 includes/settings.php:143
165
  msgid "Field Mapping"
166
  msgstr "Mapping dei campi"
167
 
168
- #: includes/settings.php:201
169
  msgid "Are you sure you want to delete this form?"
170
  msgstr "Sei sicuro di voler eliminare questo form?"
171
 
172
- #: includes/settings.php:349
173
  msgid "You don't have permission to access this page."
174
  msgstr "Non disponi dell'autorizzazione per accedere a questa pagina."
175
 
176
- #: includes/settings.php:375
177
  #, fuzzy
178
  #| msgid ""
179
  #| "This plugin is the easiest and most comprehensive way to adapt your "
@@ -200,13 +204,13 @@ msgstr ""
200
  "consenso tramite il semplice scroll (il metodo più efficace) e la "
201
  "riattivazione senza il refresh della pagina."
202
 
203
- #: includes/settings.php:378
204
  msgid ""
205
  "Does the Cookie Solution support IAB’s Transparency and Consent Framework?"
206
  msgstr ""
207
  "La Cookie Solution supporta il Transparency e Consent Framework di IAB?"
208
 
209
- #: includes/settings.php:379
210
  #, fuzzy, php-format
211
  #| msgid ""
212
  #| "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin "
@@ -218,13 +222,13 @@ msgstr ""
218
  "Sì. Visita <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">questa "
219
  "pagina</a> per maggiori dettagli."
220
 
221
- #: includes/settings.php:382
222
  #, fuzzy
223
  #| msgid "Would you like to know more about the Cookie Law?"
224
  msgid "Would you like to know more about the cookie law?"
225
  msgstr "Vuoi saperne di più sulla Cookie Law?"
226
 
227
- #: includes/settings.php:383
228
  #, fuzzy, php-format
229
  #| msgid ""
230
  #| "Read our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">complete "
@@ -236,11 +240,11 @@ msgstr ""
236
  "Leggi la nostra <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">guida "
237
  "completa alla Cookie Law</a>."
238
 
239
- #: includes/settings.php:386
240
  msgid "What is the full functionality of the plugin?"
241
  msgstr "Quali sono le funzionalità del plugin?"
242
 
243
- #: includes/settings.php:387
244
  #, fuzzy, php-format
245
  #| msgid ""
246
  #| "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin "
@@ -252,11 +256,11 @@ msgstr ""
252
  "Visita la <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">pagina "
253
  "dedicata</a> al plugin."
254
 
255
- #: includes/settings.php:390
256
  msgid "Enter the iubenda code for the Cookie Solution below."
257
  msgstr "Inserisci qui sotto il codice di iubenda per la Cookie Solution."
258
 
259
- #: includes/settings.php:391
260
  #, php-format
261
  msgid ""
262
  "In order to run the plugin, you need to enter the iubenda code that "
@@ -270,7 +274,7 @@ msgstr ""
270
  "contenute in <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">questa "
271
  "guida</a>."
272
 
273
- #: includes/settings.php:396
274
  #, fuzzy
275
  #| msgid ""
276
  #| "Maintaining comprehensive records of consent is a vital part of privacy "
@@ -298,7 +302,7 @@ msgstr ""
298
  "help/5424#registro-consensi\" target=\"_blank\">Trovi tutti i requisiti qui</"
299
  "a>."
300
 
301
- #: includes/settings.php:419
302
  #, php-format
303
  msgid ""
304
  "If you are using per-purpose script blocking please disable the \"Leave "
@@ -306,7 +310,7 @@ msgid ""
306
  "option. <a href=\"%s\" target=\"_self\">Disable now</a>"
307
  msgstr ""
308
 
309
- #: includes/settings.php:439
310
  #, php-format
311
  msgid ""
312
  "This plugin drastically reduces the need for direct interventions in the "
@@ -325,7 +329,7 @@ msgstr ""
325
  "automatico dei widget e dei cookie di terza parte più diffusi) in modo da "
326
  "permetterti di rispettare il GDPR e la Direttiva ePrivacy."
327
 
328
- #: includes/settings.php:441
329
  msgid ""
330
  "Maintaining valid records of consent is a vital part of privacy compliance "
331
  "in general, and it is specifically required under the GDPR. These records "
@@ -350,15 +354,15 @@ msgstr ""
350
  "memorizzare la prova del consenso anche per i consensi raccolti offline (ad "
351
  "esempio, le iscrizioni in-store) tramite l'upload dei media WP."
352
 
353
- #: includes/settings.php:459
354
  msgid "Reset to defaults"
355
  msgstr "Ripristina le impostazioni di default"
356
 
357
- #: includes/settings.php:471
358
  msgid "Need support for this plugin?"
359
  msgstr "Serve aiuto per questo plugin?"
360
 
361
- #: includes/settings.php:472
362
  #, php-format
363
  msgid ""
364
  "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">support "
@@ -367,16 +371,16 @@ msgstr ""
367
  "Visita il nostro <a href=\"%s\" class=\"iubenda-url\" target=\"_blank"
368
  "\">forum di supporto</a>"
369
 
370
- #: includes/settings.php:516
371
  #, php-format
372
  msgid "Enter the iubenda code for %s."
373
  msgstr "Inserisci il codice di iubenda per %s."
374
 
375
- #: includes/settings.php:527
376
  msgid "Enter the iubenda code."
377
  msgstr "Inserisci il codice di iubenda."
378
 
379
- #: includes/settings.php:554
380
  #, fuzzy
381
  #| msgid "Enter a list of custom scripts (one per line)."
382
  msgid ""
@@ -384,21 +388,21 @@ msgid ""
384
  "purpose."
385
  msgstr "Elenca gli script personalizzati (uno per riga)."
386
 
387
- #: includes/settings.php:556 includes/settings.php:563
388
  #, fuzzy
389
  #| msgid "Custom scripts"
390
  msgid "Enter custom script"
391
  msgstr "Script personalizzati"
392
 
393
- #: includes/settings.php:556 includes/settings.php:563
394
- #: includes/settings.php:574 includes/settings.php:581
395
- #: includes/settings.php:903 includes/settings.php:930
396
- #: includes/settings.php:971 includes/settings.php:999
397
- #: includes/settings.php:1050 includes/settings.php:1066
398
  msgid "Remove"
399
  msgstr "Elimina"
400
 
401
- #: includes/settings.php:572
402
  #, fuzzy
403
  #| msgid "Enter a list of custom iframes (one per line)."
404
  msgid ""
@@ -406,15 +410,15 @@ msgid ""
406
  "purpose. "
407
  msgstr "Elenca gli iframe personalizzati (uno per riga)."
408
 
409
- #: includes/settings.php:574 includes/settings.php:581
410
  msgid "Enter custom iframe"
411
  msgstr ""
412
 
413
- #: includes/settings.php:619
414
  msgid "Automatically block scripts detected by the plugin."
415
  msgstr "Blocca automaticamente gli script rilevati dal plugin."
416
 
417
- #: includes/settings.php:620
418
  #, php-format
419
  msgid ""
420
  "see <a href=\"%s\" target=\"_blank\">our documentation</a> for the list of "
@@ -423,38 +427,38 @@ msgstr ""
423
  "visita <a href=\"%s\" target=\"_blank\">la nostra documentazione</a> per la "
424
  "lista degli script rilevati automaticamente dal plugin."
425
 
426
- #: includes/settings.php:623
427
  msgid "Primary"
428
  msgstr "Primario"
429
 
430
- #: includes/settings.php:624
431
  msgid "Secondary"
432
  msgstr "Secondario"
433
 
434
- #: includes/settings.php:625
435
  msgid "Select parsing engine."
436
  msgstr "Seleziona il motore di parsing."
437
 
438
- #: includes/settings.php:628
439
  msgid ""
440
  "Leave scripts untouched on the page if the user has already given consent"
441
  msgstr ""
442
  "Lascia gli script intatti sulla pagina se l'utente ha già prestato il "
443
  "consenso"
444
 
445
- #: includes/settings.php:629
446
  #, fuzzy
447
  #| msgid ""
448
  #| "improves performance, highly recommended, to be deactivated only if your "
449
  #| "site uses a caching system"
450
  msgid ""
451
  "improves performance, highly recommended, to be deactivated only if your "
452
- "site uses a caching system or you have per-purpose script blokcing active."
453
  msgstr ""
454
  "migliora le prestazioni, altamente consigliato, da disattivare solo qualora "
455
  "il tuo sito utilizzi un sistema di cache"
456
 
457
- #: includes/settings.php:643
458
  msgid ""
459
  "Restrict the plugin to run only for requests that have \"Content-type: "
460
  "text / html\" (recommended)"
@@ -462,25 +466,25 @@ msgstr ""
462
  "Restringi l'esecuzione del plugin alle sole richieste che presentano "
463
  "\"Content-type: text/html\" (consigliato)"
464
 
465
- #: includes/settings.php:655
466
  msgid "Do not run the plugin inside the RSS feed (recommended)"
467
  msgstr "Non eseguire il plugin all'interno dei Feed RSS (consigliato)"
468
 
469
- #: includes/settings.php:667
470
  #, fuzzy
471
  #| msgid "Do not run the plugin inside the RSS feed (recommended)"
472
  msgid "Do not run the plugin on POST requests (recommended)"
473
  msgstr "Non eseguire il plugin per richieste POST (consigliato)"
474
 
475
- #: includes/settings.php:679
476
  msgid "Top menu"
477
  msgstr "Menu principale"
478
 
479
- #: includes/settings.php:680
480
  msgid "Submenu"
481
  msgstr "Sottomenu"
482
 
483
- #: includes/settings.php:681
484
  msgid ""
485
  "Select whether to display iubenda in a top admin menu or the Settings "
486
  "submenu."
@@ -488,17 +492,57 @@ msgstr ""
488
  "Scegli se visualizzare iubenda in una voce di menu principale del pannello "
489
  "admin o in un sottomenu della scheda Impostazioni."
490
 
491
- #: includes/settings.php:693
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
492
  msgid "Delete all plugin data upon deactivation?"
493
  msgstr ""
494
  "Vuoi eliminare tutti i dati del plugin al momento della disattivazione?"
495
 
496
- #: includes/settings.php:706
497
  msgid "Enter your iubenda Javascript library public API key."
498
  msgstr ""
499
  "Inserisci la chiave API pubblica per la libreria JavaScript di iubenda."
500
 
501
- #: includes/settings.php:722
502
  msgid ""
503
  "This section lists the forms available for field mapping. The plugin "
504
  "currently supports & detects: WordPress Comment, Contact Form 7, WooCommerce "
@@ -508,44 +552,44 @@ msgstr ""
508
  "supporta e rileva: Commenti WordPress, Contact Form 7, WooCommerce Checkout "
509
  "e WP Forms."
510
 
511
- #: includes/settings.php:783
512
  #, php-format
513
  msgid "%s form title."
514
  msgstr "%s nome del form."
515
 
516
- #: includes/settings.php:783
517
  msgid "Unknown"
518
  msgstr "Sconosciuto"
519
 
520
- #: includes/settings.php:785
521
  msgid "Available form fields:"
522
  msgstr "Campi disponibili:"
523
 
524
- #: includes/settings.php:791
525
  msgid "Publish"
526
  msgstr "Pubblica"
527
 
528
- #: includes/settings.php:796
529
  msgid "Status"
530
  msgstr "Stato"
531
 
532
- #: includes/settings.php:809
533
  msgid "Cancel"
534
  msgstr "Annulla"
535
 
536
- #: includes/settings.php:814
537
  msgid "Save"
538
  msgstr "Salva"
539
 
540
- #: includes/settings.php:827
541
  msgid "Map fields"
542
  msgstr "Mappa i campi"
543
 
544
- #: includes/settings.php:833
545
  msgid "Subject fields"
546
  msgstr "Utente"
547
 
548
- #: includes/settings.php:834
549
  #, fuzzy
550
  #| msgid ""
551
  #| "Subject fields allow you to store a series of identifying values about "
@@ -560,27 +604,27 @@ msgstr ""
560
  "dell'utente. Associa gli attributi dell'utente ai corrispondenti campi del "
561
  "form (quando applicabile)."
562
 
563
- #: includes/settings.php:839
564
  msgid "Subject field"
565
  msgstr "Attributo"
566
 
567
- #: includes/settings.php:840 includes/settings.php:884
568
  msgid "Form field"
569
  msgstr "Campo del form"
570
 
571
- #: includes/settings.php:846
572
  msgid "Autogenerated"
573
  msgstr "Generato automaticamente"
574
 
575
- #: includes/settings.php:846
576
  msgid "None"
577
  msgstr "Nessuno"
578
 
579
- #: includes/settings.php:877
580
  msgid "Preferences fields"
581
  msgstr "Preferenze"
582
 
583
- #: includes/settings.php:878
584
  msgid ""
585
  "Preferences fields allow you to store a record of the various opt-ins points "
586
  "at which the user has agreed or given consent, such as fields for agreeing "
@@ -591,25 +635,25 @@ msgstr ""
591
  "proprio consenso, come ad esempio i termini e condizioni, la newsletter la "
592
  "profilazione, ecc. *Si prega di creare almeno un campo."
593
 
594
- #: includes/settings.php:883
595
  msgid "Preferences field"
596
  msgstr "Campo delle preferenze"
597
 
598
- #: includes/settings.php:889 includes/settings.php:915
599
- #: includes/settings.php:1040 includes/settings.php:1050
600
- #: includes/settings.php:1066
601
  msgid "Enter field name"
602
  msgstr "Aggiungi il nome di un campo"
603
 
604
- #: includes/settings.php:939
605
  msgid "Add New Preference"
606
  msgstr "Aggiungi nuova preferenza"
607
 
608
- #: includes/settings.php:946
609
  msgid "Exclude fields"
610
  msgstr "Esclusioni"
611
 
612
- #: includes/settings.php:947
613
  msgid ""
614
  "Exclude fields allow you to create a list of fields that you would like to "
615
  "exclude from your Consent Solution recorded proofs (for e.g. password or "
@@ -619,23 +663,23 @@ msgstr ""
619
  "consenso memorizzate dalla Consent Solution (ad es. password o altri campi "
620
  "non correlati)."
621
 
622
- #: includes/settings.php:952
623
  msgid "Exclude field"
624
  msgstr "Campi esclusi"
625
 
626
- #: includes/settings.php:1009
627
  msgid "Add New Exclude"
628
  msgstr "Aggiungi una nuova esclusione"
629
 
630
- #: includes/settings.php:1019
631
  msgid "Legal Notices"
632
  msgstr "Note legali"
633
 
634
- #: includes/settings.php:1025
635
  msgid "Legal documents"
636
  msgstr "Documenti legali"
637
 
638
- #: includes/settings.php:1026
639
  msgid ""
640
  "In general, it’s important that you declare which legal documents are being "
641
  "agreed upon when each consent is collected. However, if you use iubenda for "
@@ -646,32 +690,32 @@ msgstr ""
646
  "accettati al momento del conferimento del consenso. Se usi iubenda per le "
647
  "tue informative, *devi* identificare tali documenti selezionandoli qui."
648
 
649
- #: includes/settings.php:1031
650
  msgid "Identifier"
651
  msgstr "Identificatore"
652
 
653
- #: includes/settings.php:1040
654
  msgid "Please select each legal document available on your site."
655
  msgstr "Seleziona tutti i documenti legali presenti sul tuo sito."
656
 
657
- #: includes/settings.php:1056
658
  msgid "Alternatively, you may add your own custom document identifiers."
659
  msgstr "In alternativa, puoi aggiungere degli identificatori personalizzati."
660
 
661
- #: includes/settings.php:1075
662
  msgid "Add New Document"
663
  msgstr "Aggiungi un nuovo documento"
664
 
665
- #: includes/settings.php:1163 includes/settings.php:1195
666
- #: includes/settings.php:1378
667
  msgid "Settings saved."
668
  msgstr "Impostazioni salvate."
669
 
670
- #: includes/settings.php:1175 includes/settings.php:1200
671
  msgid "Settings restored to defaults."
672
  msgstr "Impostazioni di default ripristinate."
673
 
674
- #: includes/settings.php:1233
675
  #, php-format
676
  msgid ""
677
  "Please enable comments cookies opt-in checkbox in the <a href=\"%s\" target="
@@ -681,42 +725,46 @@ msgstr ""
681
  "memorizzazione dei dati personali in un cookie. Per farlo, vai su <a href="
682
  "\"%s\" target=\"_blank\">Impostazioni discussione</a>."
683
 
684
- #: includes/settings.php:1253
685
  msgid "No forms or form changes detected."
686
  msgstr "Nessun form o modifica rilevati."
687
 
688
- #: includes/settings.php:1313
689
  msgid "Form saving failed. Please fill the Subject and Preferences fields."
690
  msgstr "Salvataggio del form fallito. Compila i campi Utente e Preferenze."
691
 
692
- #: includes/settings.php:1337
693
  #, fuzzy
694
  #| msgid "Settings applied successfully"
695
  msgid "Form saved successfully - form status changed to Mapped."
696
  msgstr "Form salvato con successo - Stato aggiornato a Mappato."
697
 
698
- #: includes/settings.php:1340
699
  msgid "Form updated successfully."
700
  msgstr "Form aggiornato con successo."
701
 
702
- #: includes/settings.php:1343
703
  msgid "Form saving failed."
704
  msgstr "Salvataggio del form fallito."
705
 
706
- #: includes/settings.php:1360
707
  #, fuzzy
708
  #| msgid "Settings applied successfully"
709
  msgid "Form deleted successfully."
710
  msgstr "Form eliminato con successo."
711
 
712
- #: includes/settings.php:1362
713
  msgid "Form delete failed."
714
  msgstr "Eliminazione del form fallita."
715
 
716
- #: includes/settings.php:1437
717
  msgid "Dismiss this notice."
718
  msgstr "Chiudi questo avviso."
719
 
 
 
 
 
720
  #, fuzzy
721
  #~| msgid "Settings applied successfully"
722
  #~ msgid "Forms detected successfully."
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Iubenda Cookie Solution\n"
4
+ "POT-Creation-Date: 2020-01-13 16:03+0100\n"
5
+ "PO-Revision-Date: 2020-01-13 16:03+0100\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: it\n"
62
  msgid "No forms found."
63
  msgstr "Nessun form trovato."
64
 
65
+ #: includes/forms.php:149 includes/settings.php:136
66
  msgid "Forms"
67
  msgstr "Form"
68
 
87
  msgid "string"
88
  msgstr "stringa"
89
 
90
+ #: includes/settings.php:57 includes/settings.php:181
91
  msgid "Cookie Solution"
92
  msgstr "Cookie Solution"
93
 
94
+ #: includes/settings.php:63 includes/settings.php:182
95
  msgid "Consent Solution"
96
  msgstr "Consent Solution"
97
 
152
  msgstr "Posizione menu"
153
 
154
  #: includes/settings.php:130
155
+ msgid "Google AMP"
156
+ msgstr ""
157
+
158
+ #: includes/settings.php:131
159
  msgid "Deactivation"
160
  msgstr "Disattivazione"
161
 
162
+ #: includes/settings.php:137
163
  #, fuzzy
164
  #| msgid "Public API Key"
165
  msgid "Public Api Key"
166
  msgstr "Chiave API pubblica"
167
 
168
+ #: includes/settings.php:140 includes/settings.php:144
169
  msgid "Field Mapping"
170
  msgstr "Mapping dei campi"
171
 
172
+ #: includes/settings.php:202
173
  msgid "Are you sure you want to delete this form?"
174
  msgstr "Sei sicuro di voler eliminare questo form?"
175
 
176
+ #: includes/settings.php:350
177
  msgid "You don't have permission to access this page."
178
  msgstr "Non disponi dell'autorizzazione per accedere a questa pagina."
179
 
180
+ #: includes/settings.php:376
181
  #, fuzzy
182
  #| msgid ""
183
  #| "This plugin is the easiest and most comprehensive way to adapt your "
204
  "consenso tramite il semplice scroll (il metodo più efficace) e la "
205
  "riattivazione senza il refresh della pagina."
206
 
207
+ #: includes/settings.php:379
208
  msgid ""
209
  "Does the Cookie Solution support IAB’s Transparency and Consent Framework?"
210
  msgstr ""
211
  "La Cookie Solution supporta il Transparency e Consent Framework di IAB?"
212
 
213
+ #: includes/settings.php:380
214
  #, fuzzy, php-format
215
  #| msgid ""
216
  #| "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin "
222
  "Sì. Visita <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">questa "
223
  "pagina</a> per maggiori dettagli."
224
 
225
+ #: includes/settings.php:383
226
  #, fuzzy
227
  #| msgid "Would you like to know more about the Cookie Law?"
228
  msgid "Would you like to know more about the cookie law?"
229
  msgstr "Vuoi saperne di più sulla Cookie Law?"
230
 
231
+ #: includes/settings.php:384
232
  #, fuzzy, php-format
233
  #| msgid ""
234
  #| "Read our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">complete "
240
  "Leggi la nostra <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">guida "
241
  "completa alla Cookie Law</a>."
242
 
243
+ #: includes/settings.php:387
244
  msgid "What is the full functionality of the plugin?"
245
  msgstr "Quali sono le funzionalità del plugin?"
246
 
247
+ #: includes/settings.php:388
248
  #, fuzzy, php-format
249
  #| msgid ""
250
  #| "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin "
256
  "Visita la <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">pagina "
257
  "dedicata</a> al plugin."
258
 
259
+ #: includes/settings.php:391
260
  msgid "Enter the iubenda code for the Cookie Solution below."
261
  msgstr "Inserisci qui sotto il codice di iubenda per la Cookie Solution."
262
 
263
+ #: includes/settings.php:392
264
  #, php-format
265
  msgid ""
266
  "In order to run the plugin, you need to enter the iubenda code that "
274
  "contenute in <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">questa "
275
  "guida</a>."
276
 
277
+ #: includes/settings.php:397
278
  #, fuzzy
279
  #| msgid ""
280
  #| "Maintaining comprehensive records of consent is a vital part of privacy "
302
  "help/5424#registro-consensi\" target=\"_blank\">Trovi tutti i requisiti qui</"
303
  "a>."
304
 
305
+ #: includes/settings.php:420
306
  #, php-format
307
  msgid ""
308
  "If you are using per-purpose script blocking please disable the \"Leave "
310
  "option. <a href=\"%s\" target=\"_self\">Disable now</a>"
311
  msgstr ""
312
 
313
+ #: includes/settings.php:440
314
  #, php-format
315
  msgid ""
316
  "This plugin drastically reduces the need for direct interventions in the "
329
  "automatico dei widget e dei cookie di terza parte più diffusi) in modo da "
330
  "permetterti di rispettare il GDPR e la Direttiva ePrivacy."
331
 
332
+ #: includes/settings.php:442
333
  msgid ""
334
  "Maintaining valid records of consent is a vital part of privacy compliance "
335
  "in general, and it is specifically required under the GDPR. These records "
354
  "memorizzare la prova del consenso anche per i consensi raccolti offline (ad "
355
  "esempio, le iscrizioni in-store) tramite l'upload dei media WP."
356
 
357
+ #: includes/settings.php:460
358
  msgid "Reset to defaults"
359
  msgstr "Ripristina le impostazioni di default"
360
 
361
+ #: includes/settings.php:472
362
  msgid "Need support for this plugin?"
363
  msgstr "Serve aiuto per questo plugin?"
364
 
365
+ #: includes/settings.php:473
366
  #, php-format
367
  msgid ""
368
  "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">support "
371
  "Visita il nostro <a href=\"%s\" class=\"iubenda-url\" target=\"_blank"
372
  "\">forum di supporto</a>"
373
 
374
+ #: includes/settings.php:517
375
  #, php-format
376
  msgid "Enter the iubenda code for %s."
377
  msgstr "Inserisci il codice di iubenda per %s."
378
 
379
+ #: includes/settings.php:528
380
  msgid "Enter the iubenda code."
381
  msgstr "Inserisci il codice di iubenda."
382
 
383
+ #: includes/settings.php:555
384
  #, fuzzy
385
  #| msgid "Enter a list of custom scripts (one per line)."
386
  msgid ""
388
  "purpose."
389
  msgstr "Elenca gli script personalizzati (uno per riga)."
390
 
391
+ #: includes/settings.php:557 includes/settings.php:564
392
  #, fuzzy
393
  #| msgid "Custom scripts"
394
  msgid "Enter custom script"
395
  msgstr "Script personalizzati"
396
 
397
+ #: includes/settings.php:557 includes/settings.php:564
398
+ #: includes/settings.php:575 includes/settings.php:582
399
+ #: includes/settings.php:939 includes/settings.php:966
400
+ #: includes/settings.php:1007 includes/settings.php:1035
401
+ #: includes/settings.php:1086 includes/settings.php:1102
402
  msgid "Remove"
403
  msgstr "Elimina"
404
 
405
+ #: includes/settings.php:573
406
  #, fuzzy
407
  #| msgid "Enter a list of custom iframes (one per line)."
408
  msgid ""
410
  "purpose. "
411
  msgstr "Elenca gli iframe personalizzati (uno per riga)."
412
 
413
+ #: includes/settings.php:575 includes/settings.php:582
414
  msgid "Enter custom iframe"
415
  msgstr ""
416
 
417
+ #: includes/settings.php:620
418
  msgid "Automatically block scripts detected by the plugin."
419
  msgstr "Blocca automaticamente gli script rilevati dal plugin."
420
 
421
+ #: includes/settings.php:621
422
  #, php-format
423
  msgid ""
424
  "see <a href=\"%s\" target=\"_blank\">our documentation</a> for the list of "
427
  "visita <a href=\"%s\" target=\"_blank\">la nostra documentazione</a> per la "
428
  "lista degli script rilevati automaticamente dal plugin."
429
 
430
+ #: includes/settings.php:624
431
  msgid "Primary"
432
  msgstr "Primario"
433
 
434
+ #: includes/settings.php:625
435
  msgid "Secondary"
436
  msgstr "Secondario"
437
 
438
+ #: includes/settings.php:626
439
  msgid "Select parsing engine."
440
  msgstr "Seleziona il motore di parsing."
441
 
442
+ #: includes/settings.php:629
443
  msgid ""
444
  "Leave scripts untouched on the page if the user has already given consent"
445
  msgstr ""
446
  "Lascia gli script intatti sulla pagina se l'utente ha già prestato il "
447
  "consenso"
448
 
449
+ #: includes/settings.php:630
450
  #, fuzzy
451
  #| msgid ""
452
  #| "improves performance, highly recommended, to be deactivated only if your "
453
  #| "site uses a caching system"
454
  msgid ""
455
  "improves performance, highly recommended, to be deactivated only if your "
456
+ "site uses a caching system or if you're collecting per-category consent."
457
  msgstr ""
458
  "migliora le prestazioni, altamente consigliato, da disattivare solo qualora "
459
  "il tuo sito utilizzi un sistema di cache"
460
 
461
+ #: includes/settings.php:644
462
  msgid ""
463
  "Restrict the plugin to run only for requests that have \"Content-type: "
464
  "text / html\" (recommended)"
466
  "Restringi l'esecuzione del plugin alle sole richieste che presentano "
467
  "\"Content-type: text/html\" (consigliato)"
468
 
469
+ #: includes/settings.php:656
470
  msgid "Do not run the plugin inside the RSS feed (recommended)"
471
  msgstr "Non eseguire il plugin all'interno dei Feed RSS (consigliato)"
472
 
473
+ #: includes/settings.php:668
474
  #, fuzzy
475
  #| msgid "Do not run the plugin inside the RSS feed (recommended)"
476
  msgid "Do not run the plugin on POST requests (recommended)"
477
  msgstr "Non eseguire il plugin per richieste POST (consigliato)"
478
 
479
+ #: includes/settings.php:680
480
  msgid "Top menu"
481
  msgstr "Menu principale"
482
 
483
+ #: includes/settings.php:681
484
  msgid "Submenu"
485
  msgstr "Sottomenu"
486
 
487
+ #: includes/settings.php:682
488
  msgid ""
489
  "Select whether to display iubenda in a top admin menu or the Settings "
490
  "submenu."
492
  "Scegli se visualizzare iubenda in una voce di menu principale del pannello "
493
  "admin o in un sottomenu della scheda Impostazioni."
494
 
495
+ #: includes/settings.php:694
496
+ msgid "Enable Google AMP caching compatibility."
497
+ msgstr ""
498
+
499
+ #: includes/settings.php:695
500
+ #, php-format
501
+ msgid ""
502
+ "This plugin provides compatibility with Google AMP through <a href=\"%s\" "
503
+ "target=\"_blank\">AMP</a> and <a href=\"%s\" target=\"_blank\">AMP for WP</"
504
+ "a> WordPress plugins."
505
+ msgstr ""
506
+
507
+ #: includes/settings.php:698
508
+ msgid "Local file"
509
+ msgstr ""
510
+
511
+ #: includes/settings.php:699
512
+ msgid "Remote file"
513
+ msgstr ""
514
+
515
+ #: includes/settings.php:700
516
+ msgid "Select the iubenda AMP configuration file location."
517
+ msgstr ""
518
+
519
+ #: includes/settings.php:705
520
+ msgid ""
521
+ "No file available. Save changes to generate iubenda AMP configuration file."
522
+ msgstr ""
523
+
524
+ #: includes/settings.php:709
525
+ msgid "Autogenerated iubenda AMP configuration file."
526
+ msgstr ""
527
+
528
+ #: includes/settings.php:715
529
+ msgid ""
530
+ "If you're experiencing issues with AMP setup download the generated iubenda "
531
+ "AMP configuration file, upload it to any SSL server and paste the file link "
532
+ "to the field above."
533
+ msgstr ""
534
+
535
+ #: includes/settings.php:729
536
  msgid "Delete all plugin data upon deactivation?"
537
  msgstr ""
538
  "Vuoi eliminare tutti i dati del plugin al momento della disattivazione?"
539
 
540
+ #: includes/settings.php:742
541
  msgid "Enter your iubenda Javascript library public API key."
542
  msgstr ""
543
  "Inserisci la chiave API pubblica per la libreria JavaScript di iubenda."
544
 
545
+ #: includes/settings.php:758
546
  msgid ""
547
  "This section lists the forms available for field mapping. The plugin "
548
  "currently supports & detects: WordPress Comment, Contact Form 7, WooCommerce "
552
  "supporta e rileva: Commenti WordPress, Contact Form 7, WooCommerce Checkout "
553
  "e WP Forms."
554
 
555
+ #: includes/settings.php:819
556
  #, php-format
557
  msgid "%s form title."
558
  msgstr "%s nome del form."
559
 
560
+ #: includes/settings.php:819
561
  msgid "Unknown"
562
  msgstr "Sconosciuto"
563
 
564
+ #: includes/settings.php:821
565
  msgid "Available form fields:"
566
  msgstr "Campi disponibili:"
567
 
568
+ #: includes/settings.php:827
569
  msgid "Publish"
570
  msgstr "Pubblica"
571
 
572
+ #: includes/settings.php:832
573
  msgid "Status"
574
  msgstr "Stato"
575
 
576
+ #: includes/settings.php:845
577
  msgid "Cancel"
578
  msgstr "Annulla"
579
 
580
+ #: includes/settings.php:850
581
  msgid "Save"
582
  msgstr "Salva"
583
 
584
+ #: includes/settings.php:863
585
  msgid "Map fields"
586
  msgstr "Mappa i campi"
587
 
588
+ #: includes/settings.php:869
589
  msgid "Subject fields"
590
  msgstr "Utente"
591
 
592
+ #: includes/settings.php:870
593
  #, fuzzy
594
  #| msgid ""
595
  #| "Subject fields allow you to store a series of identifying values about "
604
  "dell'utente. Associa gli attributi dell'utente ai corrispondenti campi del "
605
  "form (quando applicabile)."
606
 
607
+ #: includes/settings.php:875
608
  msgid "Subject field"
609
  msgstr "Attributo"
610
 
611
+ #: includes/settings.php:876 includes/settings.php:920
612
  msgid "Form field"
613
  msgstr "Campo del form"
614
 
615
+ #: includes/settings.php:882
616
  msgid "Autogenerated"
617
  msgstr "Generato automaticamente"
618
 
619
+ #: includes/settings.php:882
620
  msgid "None"
621
  msgstr "Nessuno"
622
 
623
+ #: includes/settings.php:913
624
  msgid "Preferences fields"
625
  msgstr "Preferenze"
626
 
627
+ #: includes/settings.php:914
628
  msgid ""
629
  "Preferences fields allow you to store a record of the various opt-ins points "
630
  "at which the user has agreed or given consent, such as fields for agreeing "
635
  "proprio consenso, come ad esempio i termini e condizioni, la newsletter la "
636
  "profilazione, ecc. *Si prega di creare almeno un campo."
637
 
638
+ #: includes/settings.php:919
639
  msgid "Preferences field"
640
  msgstr "Campo delle preferenze"
641
 
642
+ #: includes/settings.php:925 includes/settings.php:951
643
+ #: includes/settings.php:1076 includes/settings.php:1086
644
+ #: includes/settings.php:1102
645
  msgid "Enter field name"
646
  msgstr "Aggiungi il nome di un campo"
647
 
648
+ #: includes/settings.php:975
649
  msgid "Add New Preference"
650
  msgstr "Aggiungi nuova preferenza"
651
 
652
+ #: includes/settings.php:982
653
  msgid "Exclude fields"
654
  msgstr "Esclusioni"
655
 
656
+ #: includes/settings.php:983
657
  msgid ""
658
  "Exclude fields allow you to create a list of fields that you would like to "
659
  "exclude from your Consent Solution recorded proofs (for e.g. password or "
663
  "consenso memorizzate dalla Consent Solution (ad es. password o altri campi "
664
  "non correlati)."
665
 
666
+ #: includes/settings.php:988
667
  msgid "Exclude field"
668
  msgstr "Campi esclusi"
669
 
670
+ #: includes/settings.php:1045
671
  msgid "Add New Exclude"
672
  msgstr "Aggiungi una nuova esclusione"
673
 
674
+ #: includes/settings.php:1055
675
  msgid "Legal Notices"
676
  msgstr "Note legali"
677
 
678
+ #: includes/settings.php:1061
679
  msgid "Legal documents"
680
  msgstr "Documenti legali"
681
 
682
+ #: includes/settings.php:1062
683
  msgid ""
684
  "In general, it’s important that you declare which legal documents are being "
685
  "agreed upon when each consent is collected. However, if you use iubenda for "
690
  "accettati al momento del conferimento del consenso. Se usi iubenda per le "
691
  "tue informative, *devi* identificare tali documenti selezionandoli qui."
692
 
693
+ #: includes/settings.php:1067
694
  msgid "Identifier"
695
  msgstr "Identificatore"
696
 
697
+ #: includes/settings.php:1076
698
  msgid "Please select each legal document available on your site."
699
  msgstr "Seleziona tutti i documenti legali presenti sul tuo sito."
700
 
701
+ #: includes/settings.php:1092
702
  msgid "Alternatively, you may add your own custom document identifiers."
703
  msgstr "In alternativa, puoi aggiungere degli identificatori personalizzati."
704
 
705
+ #: includes/settings.php:1111
706
  msgid "Add New Document"
707
  msgstr "Aggiungi un nuovo documento"
708
 
709
+ #: includes/settings.php:1206 includes/settings.php:1238
710
+ #: includes/settings.php:1421
711
  msgid "Settings saved."
712
  msgstr "Impostazioni salvate."
713
 
714
+ #: includes/settings.php:1218 includes/settings.php:1243
715
  msgid "Settings restored to defaults."
716
  msgstr "Impostazioni di default ripristinate."
717
 
718
+ #: includes/settings.php:1276
719
  #, php-format
720
  msgid ""
721
  "Please enable comments cookies opt-in checkbox in the <a href=\"%s\" target="
725
  "memorizzazione dei dati personali in un cookie. Per farlo, vai su <a href="
726
  "\"%s\" target=\"_blank\">Impostazioni discussione</a>."
727
 
728
+ #: includes/settings.php:1296
729
  msgid "No forms or form changes detected."
730
  msgstr "Nessun form o modifica rilevati."
731
 
732
+ #: includes/settings.php:1356
733
  msgid "Form saving failed. Please fill the Subject and Preferences fields."
734
  msgstr "Salvataggio del form fallito. Compila i campi Utente e Preferenze."
735
 
736
+ #: includes/settings.php:1380
737
  #, fuzzy
738
  #| msgid "Settings applied successfully"
739
  msgid "Form saved successfully - form status changed to Mapped."
740
  msgstr "Form salvato con successo - Stato aggiornato a Mappato."
741
 
742
+ #: includes/settings.php:1383
743
  msgid "Form updated successfully."
744
  msgstr "Form aggiornato con successo."
745
 
746
+ #: includes/settings.php:1386
747
  msgid "Form saving failed."
748
  msgstr "Salvataggio del form fallito."
749
 
750
+ #: includes/settings.php:1403
751
  #, fuzzy
752
  #| msgid "Settings applied successfully"
753
  msgid "Form deleted successfully."
754
  msgstr "Form eliminato con successo."
755
 
756
+ #: includes/settings.php:1405
757
  msgid "Form delete failed."
758
  msgstr "Eliminazione del form fallita."
759
 
760
+ #: includes/settings.php:1480
761
  msgid "Dismiss this notice."
762
  msgstr "Chiudi questo avviso."
763
 
764
+ #: iubenda_cookie_solution.php:688
765
+ msgid "Loading"
766
+ msgstr ""
767
+
768
  #, fuzzy
769
  #~| msgid "Settings applied successfully"
770
  #~ msgid "Forms detected successfully."
languages/iubenda-cookie-law-solution.pot CHANGED
@@ -2,7 +2,7 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Iubenda Cookie Solution\n"
5
- "POT-Creation-Date: 2019-12-23 15:48+0100\n"
6
  "PO-Revision-Date: 2015-08-12 10:36+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
@@ -60,7 +60,7 @@ msgstr ""
60
  msgid "No forms found."
61
  msgstr ""
62
 
63
- #: includes/forms.php:149 includes/settings.php:135
64
  msgid "Forms"
65
  msgstr ""
66
 
@@ -85,11 +85,11 @@ msgstr ""
85
  msgid "string"
86
  msgstr ""
87
 
88
- #: includes/settings.php:57 includes/settings.php:180
89
  msgid "Cookie Solution"
90
  msgstr ""
91
 
92
- #: includes/settings.php:63 includes/settings.php:181
93
  msgid "Consent Solution"
94
  msgstr ""
95
 
@@ -146,26 +146,30 @@ msgid "Menu position"
146
  msgstr ""
147
 
148
  #: includes/settings.php:130
 
 
 
 
149
  msgid "Deactivation"
150
  msgstr ""
151
 
152
- #: includes/settings.php:136
153
  msgid "Public Api Key"
154
  msgstr ""
155
 
156
- #: includes/settings.php:139 includes/settings.php:143
157
  msgid "Field Mapping"
158
  msgstr ""
159
 
160
- #: includes/settings.php:201
161
  msgid "Are you sure you want to delete this form?"
162
  msgstr ""
163
 
164
- #: includes/settings.php:349
165
  msgid "You don't have permission to access this page."
166
  msgstr ""
167
 
168
- #: includes/settings.php:375
169
  msgid ""
170
  "This plugin is the easiest and most comprehensive way to adapt your "
171
  "WordPress site to the ePrivacy (EU Cookie Law). Upon your users’ first "
@@ -176,45 +180,45 @@ msgid ""
176
  "reactivation without refreshing the page (asynchronous script reactivation)."
177
  msgstr ""
178
 
179
- #: includes/settings.php:378
180
  msgid ""
181
  "Does the Cookie Solution support IAB’s Transparency and Consent Framework?"
182
  msgstr ""
183
 
184
- #: includes/settings.php:379
185
  #, php-format
186
  msgid ""
187
  "Yes it does. You can read more about it <a href=\"%s\" class=\"iubenda-url"
188
  "\" target=\"_blank\">here.</a>"
189
  msgstr ""
190
 
191
- #: includes/settings.php:382
192
  msgid "Would you like to know more about the cookie law?"
193
  msgstr ""
194
 
195
- #: includes/settings.php:383
196
  #, php-format
197
  msgid ""
198
  "Read our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">complete "
199
  "guide to the cookie law.</a>"
200
  msgstr ""
201
 
202
- #: includes/settings.php:386
203
  msgid "What is the full functionality of the plugin?"
204
  msgstr ""
205
 
206
- #: includes/settings.php:387
207
  #, php-format
208
  msgid ""
209
  "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">plugin "
210
  "page.</a>"
211
  msgstr ""
212
 
213
- #: includes/settings.php:390
214
  msgid "Enter the iubenda code for the Cookie Solution below."
215
  msgstr ""
216
 
217
- #: includes/settings.php:391
218
  #, php-format
219
  msgid ""
220
  "In order to run the plugin, you need to enter the iubenda code that "
@@ -223,7 +227,7 @@ msgid ""
223
  "class=\"iubenda-url\" target=\"_blank\">this guide.</a>"
224
  msgstr ""
225
 
226
- #: includes/settings.php:396
227
  msgid ""
228
  "Maintaining comprehensive records of consent is a vital part of privacy "
229
  "compliance in general but is specifically required under the GDPR. These "
@@ -234,7 +238,7 @@ msgid ""
234
  "consent\" target=\"_blank\">full requirements here</a>."
235
  msgstr ""
236
 
237
- #: includes/settings.php:419
238
  #, php-format
239
  msgid ""
240
  "If you are using per-purpose script blocking please disable the \"Leave "
@@ -242,7 +246,7 @@ msgid ""
242
  "option. <a href=\"%s\" target=\"_self\">Disable now</a>"
243
  msgstr ""
244
 
245
- #: includes/settings.php:439
246
  #, php-format
247
  msgid ""
248
  "This plugin drastically reduces the need for direct interventions in the "
@@ -254,7 +258,7 @@ msgid ""
254
  "– in order to comply with the GDPR and ePrivacy."
255
  msgstr ""
256
 
257
- #: includes/settings.php:441
258
  msgid ""
259
  "Maintaining valid records of consent is a vital part of privacy compliance "
260
  "in general, and it is specifically required under the GDPR. These records "
@@ -268,200 +272,240 @@ msgid ""
268
  "consents collected offline (e.g in-store sign-ups) via WP media upload."
269
  msgstr ""
270
 
271
- #: includes/settings.php:459
272
  msgid "Reset to defaults"
273
  msgstr ""
274
 
275
- #: includes/settings.php:471
276
  msgid "Need support for this plugin?"
277
  msgstr ""
278
 
279
- #: includes/settings.php:472
280
  #, php-format
281
  msgid ""
282
  "Visit our <a href=\"%s\" class=\"iubenda-url\" target=\"_blank\">support "
283
  "forum.</a>"
284
  msgstr ""
285
 
286
- #: includes/settings.php:516
287
  #, php-format
288
  msgid "Enter the iubenda code for %s."
289
  msgstr ""
290
 
291
- #: includes/settings.php:527
292
  msgid "Enter the iubenda code."
293
  msgstr ""
294
 
295
- #: includes/settings.php:554
296
  msgid ""
297
  "Provide a list of custom scripts you’d like to block and assign their "
298
  "purpose."
299
  msgstr ""
300
 
301
- #: includes/settings.php:556 includes/settings.php:563
302
  msgid "Enter custom script"
303
  msgstr ""
304
 
305
- #: includes/settings.php:556 includes/settings.php:563
306
- #: includes/settings.php:574 includes/settings.php:581
307
- #: includes/settings.php:903 includes/settings.php:930
308
- #: includes/settings.php:971 includes/settings.php:999
309
- #: includes/settings.php:1050 includes/settings.php:1066
310
  msgid "Remove"
311
  msgstr ""
312
 
313
- #: includes/settings.php:572
314
  msgid ""
315
  "Provide a list of custom iframes you’d like to block and assign their "
316
  "purpose. "
317
  msgstr ""
318
 
319
- #: includes/settings.php:574 includes/settings.php:581
320
  msgid "Enter custom iframe"
321
  msgstr ""
322
 
323
- #: includes/settings.php:619
324
  msgid "Automatically block scripts detected by the plugin."
325
  msgstr ""
326
 
327
- #: includes/settings.php:620
328
  #, php-format
329
  msgid ""
330
  "see <a href=\"%s\" target=\"_blank\">our documentation</a> for the list of "
331
  "detected scripts."
332
  msgstr ""
333
 
334
- #: includes/settings.php:623
335
  msgid "Primary"
336
  msgstr ""
337
 
338
- #: includes/settings.php:624
339
  msgid "Secondary"
340
  msgstr ""
341
 
342
- #: includes/settings.php:625
343
  msgid "Select parsing engine."
344
  msgstr ""
345
 
346
- #: includes/settings.php:628
347
  msgid ""
348
  "Leave scripts untouched on the page if the user has already given consent"
349
  msgstr ""
350
 
351
- #: includes/settings.php:629
352
  msgid ""
353
  "improves performance, highly recommended, to be deactivated only if your "
354
- "site uses a caching system or you have per-purpose script blokcing active."
355
  msgstr ""
356
 
357
- #: includes/settings.php:643
358
  msgid ""
359
  "Restrict the plugin to run only for requests that have \"Content-type: "
360
  "text / html\" (recommended)"
361
  msgstr ""
362
 
363
- #: includes/settings.php:655
364
  msgid "Do not run the plugin inside the RSS feed (recommended)"
365
  msgstr ""
366
 
367
- #: includes/settings.php:667
368
  msgid "Do not run the plugin on POST requests (recommended)"
369
  msgstr ""
370
 
371
- #: includes/settings.php:679
372
  msgid "Top menu"
373
  msgstr ""
374
 
375
- #: includes/settings.php:680
376
  msgid "Submenu"
377
  msgstr ""
378
 
379
- #: includes/settings.php:681
380
  msgid ""
381
  "Select whether to display iubenda in a top admin menu or the Settings "
382
  "submenu."
383
  msgstr ""
384
 
385
- #: includes/settings.php:693