iubenda Cookie Solution for GDPR - Version 3.2.2

Version Description

  • Add analytics to the plugin
Download this release

Release Info

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

Code changes from version 3.2.1 to 3.2.2

assets/js/admin.js CHANGED
@@ -152,6 +152,7 @@ document.addEventListener("DOMContentLoaded", function () {
152
  scrollTop: $(response.focus).offset().top
153
  }, 500);
154
  }
 
155
  $('#modal-no-website-found').addClass('shown')
156
  }
157
  },
@@ -203,6 +204,7 @@ document.addEventListener("DOMContentLoaded", function () {
203
  scrollTop: $(response.focus).offset().top
204
  }, 500);
205
  }
 
206
  $('#modal-no-website-found').addClass('shown')
207
  }
208
  },
@@ -319,6 +321,7 @@ document.addEventListener("DOMContentLoaded", function () {
319
  });
320
 
321
  }else{
 
322
  $('#modal-no-website-found').addClass('shown')
323
  }
324
  },
@@ -707,6 +710,7 @@ jQuery(document).ready(function($){
707
  url: iub_js_vars['site_url'] + "/wp-admin/admin-ajax.php",
708
  data : {action: "frontpage_main_box"},
709
  success: function(response) {
 
710
  $('#frontpage-main-box').html(response)
711
  document.querySelectorAll(".circularBar").forEach(function (el) {
712
  $(el).attr('data-perc', result.data.percentage);
152
  scrollTop: $(response.focus).offset().top
153
  }, 500);
154
  }
155
+ _paq.push(['trackEvent', 'Error', 'No website found with this embed code.']);
156
  $('#modal-no-website-found').addClass('shown')
157
  }
158
  },
204
  scrollTop: $(response.focus).offset().top
205
  }, 500);
206
  }
207
+ _paq.push(['trackEvent', 'Error', 'No website found with this embed code.']);
208
  $('#modal-no-website-found').addClass('shown')
209
  }
210
  },
321
  });
322
 
323
  }else{
324
+ _paq.push(['trackEvent', 'Error', 'No website found with this embed code.']);
325
  $('#modal-no-website-found').addClass('shown')
326
  }
327
  },
710
  url: iub_js_vars['site_url'] + "/wp-admin/admin-ajax.php",
711
  data : {action: "frontpage_main_box"},
712
  success: function(response) {
713
+ _paq.push(['trackEvent', 'Event', 'End of scan and report rating']);
714
  $('#frontpage-main-box').html(response)
715
  document.querySelectorAll(".circularBar").forEach(function (el) {
716
  $(el).attr('data-perc', result.data.percentage);
assets/js/matomo.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var _paq = window._paq = window._paq || [];
2
+
3
+ _paq.push(['disableAlwaysUseSendBeacon']);
4
+ /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
5
+ _paq.push(['setCustomDimension' , 1 , iub_js_vars['site_locale'] ]);
6
+ _paq.push(['trackPageView']);
7
+ _paq.push(['enableLinkTracking']);
8
+ (function() {
9
+ var u="//athena.iubenda.com/";
10
+ _paq.push(['setTrackerUrl', u+'matomo.php']);
11
+ _paq.push(['setSiteId', '11']);
12
+ var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
13
+ g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
14
+ })();
includes/settings.php CHANGED
@@ -461,6 +461,9 @@ class iubenda_Settings {
461
  wp_enqueue_style('iubenda-admin', IUBENDA_PLUGIN_URL . '/assets/css/style.css');
462
  wp_enqueue_script('iubenda-admin', IUBENDA_PLUGIN_URL . '/assets/js/admin.js','','',true);
463
 
 
 
 
464
  // Get radar api status
465
  $iubendaRadarApiConfiguration = get_option('iubenda_radar_api_configuration', []) ?: [];
466
 
@@ -468,6 +471,8 @@ class iubenda_Settings {
468
  $iub_js_vars = [
469
  'site_url' => get_site_url(),
470
  'plugin_url' => IUBENDA_PLUGIN_URL,
 
 
471
  'radar_status' => iub_array_get($iubendaRadarApiConfiguration, 'status'),
472
  'form_id' => iub_array_get($_GET,'form_id', 0),
473
  'iub_dismiss_notification_alert_nonce' => wp_create_nonce( 'iub_dismiss_notification_alert_nonce' ),
461
  wp_enqueue_style('iubenda-admin', IUBENDA_PLUGIN_URL . '/assets/css/style.css');
462
  wp_enqueue_script('iubenda-admin', IUBENDA_PLUGIN_URL . '/assets/js/admin.js','','',true);
463
 
464
+ // Add analytics script to the plugin
465
+ wp_enqueue_script('iubenda-admin-matomo', IUBENDA_PLUGIN_URL . '/assets/js/matomo.js','','',true);
466
+
467
  // Get radar api status
468
  $iubendaRadarApiConfiguration = get_option('iubenda_radar_api_configuration', []) ?: [];
469
 
471
  $iub_js_vars = [
472
  'site_url' => get_site_url(),
473
  'plugin_url' => IUBENDA_PLUGIN_URL,
474
+ 'site_language' => iubenda()->lang_current,
475
+ 'site_locale' => get_locale(),
476
  'radar_status' => iub_array_get($iubendaRadarApiConfiguration, 'status'),
477
  'form_id' => iub_array_get($_GET,'form_id', 0),
478
  'iub_dismiss_notification_alert_nonce' => wp_create_nonce( 'iub_dismiss_notification_alert_nonce' ),
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.1.10
102
  * Move www.googletagmanager.com/gtag/js under analytics #4
103
 
98
 
99
  ## Changelog
100
 
101
+ ##### 4.1.11
102
+ * Support PHP 8
103
+
104
  ##### 4.1.10
105
  * Move www.googletagmanager.com/gtag/js under analytics #4
106
 
iubenda-cookie-class/iubenda.class.page.php CHANGED
@@ -266,10 +266,10 @@ if('callback' in _iub.csConfiguration) {
266
  $html = preg_replace( "#google_ad_width =(.*?);#i", "", $html, 1 );
267
  $html = preg_replace( "#google_ad_height =(.*?);#i", "", $html, 1 );
268
 
269
- $ad_client = trim( $ad_client[1] );
270
- $ad_slot = trim( $ad_slot[1] );
271
- $ad_width = trim( $ad_width[1] );
272
- $ad_height = trim( $ad_height[1] );
273
 
274
  $ad_class = 'class="_iub_cs_activate_google_ads"';
275
  $ad_style = 'style="width:' . $ad_width . 'px; height:' . $ad_height . 'px;"';
266
  $html = preg_replace( "#google_ad_width =(.*?);#i", "", $html, 1 );
267
  $html = preg_replace( "#google_ad_height =(.*?);#i", "", $html, 1 );
268
 
269
+ $ad_client = trim( $ad_client[1] ?: '' );
270
+ $ad_slot = trim( $ad_slot[1] ?: '' );
271
+ $ad_width = trim( $ad_width[1] ?: '' );
272
+ $ad_height = trim( $ad_height[1] ?: '' );
273
 
274
  $ad_class = 'class="_iub_cs_activate_google_ads"';
275
  $ad_style = 'style="width:' . $ad_width . 'px; height:' . $ad_height . 'px;"';
iubenda-cookie-class/iubenda.class.php CHANGED
@@ -5,7 +5,7 @@
5
  * @author iubenda s.r.l
6
  * @copyright 2018-2020, iubenda s.r.l
7
  * @license GNU/GPL
8
- * @version 4.1.10
9
  * @deprecated
10
  *
11
  * This program is free software: you can redistribute it and/or modify
@@ -441,7 +441,7 @@ class iubendaParser {
441
  switch ( $element->tag ) {
442
  case 'script':
443
  case 'iframe':
444
- $class = trim( $element->class );
445
  $element->class = ( $class !== '' ? $class . ' ' : '' ) . $this->iub_class_skip;
446
  $js .= $element->outertext;
447
  break;
@@ -481,7 +481,7 @@ class iubendaParser {
481
  // loop through scripts
482
  for ( $j = 0; $j < $count; $j ++ ) {
483
  $s = $scripts[$j];
484
- $script_class = trim( $s->class );
485
 
486
  if ( $script_class !== '' ) {
487
  $classes = explode( ' ', $script_class );
@@ -565,10 +565,10 @@ class iubendaParser {
565
  $html = preg_replace( "#google_ad_width =(.*?);#i", "", $html, 1 );
566
  $html = preg_replace( "#google_ad_height =(.*?);#i", "", $html, 1 );
567
 
568
- $ad_client = trim( $ad_client[1] );
569
- $ad_slot = trim( $ad_slot[1] );
570
- $ad_width = trim( $ad_width[1] );
571
- $ad_height = trim( $ad_height[1] );
572
 
573
  $ad_class = 'class="' . $this->iub_class . '_google_ads"';
574
  $ad_style = 'style="width:' . $ad_width . 'px; height:' . $ad_height . 'px;"';
@@ -658,7 +658,7 @@ class iubendaParser {
658
  if ( ! empty( $scripts ) && is_object( $scripts ) ) {
659
  foreach ( $scripts as $script ) {
660
  $src = $script->getAttribute( 'src' );
661
- $script_class = trim( $script->getAttribute( 'class' ) );
662
 
663
  if ( $script_class !== '' ) {
664
  $classes = explode( ' ', $script_class );
@@ -754,7 +754,7 @@ class iubendaParser {
754
 
755
  for ( $j = 0; $j < $count; $j ++ ) {
756
  $i = $iframes[$j];
757
- $iframe_class = trim( $i->class );
758
 
759
  if ( $iframe_class !== '' ) {
760
  $classes = explode( ' ', $iframe_class );
@@ -820,7 +820,7 @@ class iubendaParser {
820
  if ( ! empty( $iframes ) && is_object( $iframes ) ) {
821
  foreach ( $iframes as $iframe ) {
822
  $src = $iframe->getAttribute( 'src' );
823
- $iframe_class = trim( $iframe->getAttribute( 'class' ) );
824
 
825
  if ( $iframe_class !== '' ) {
826
  $classes = explode( ' ', $iframe_class );
5
  * @author iubenda s.r.l
6
  * @copyright 2018-2020, iubenda s.r.l
7
  * @license GNU/GPL
8
+ * @version 4.1.11
9
  * @deprecated
10
  *
11
  * This program is free software: you can redistribute it and/or modify
441
  switch ( $element->tag ) {
442
  case 'script':
443
  case 'iframe':
444
+ $class = trim( $element->class ?: '' );
445
  $element->class = ( $class !== '' ? $class . ' ' : '' ) . $this->iub_class_skip;
446
  $js .= $element->outertext;
447
  break;
481
  // loop through scripts
482
  for ( $j = 0; $j < $count; $j ++ ) {
483
  $s = $scripts[$j];
484
+ $script_class = trim( $s->class ?: '' );
485
 
486
  if ( $script_class !== '' ) {
487
  $classes = explode( ' ', $script_class );
565
  $html = preg_replace( "#google_ad_width =(.*?);#i", "", $html, 1 );
566
  $html = preg_replace( "#google_ad_height =(.*?);#i", "", $html, 1 );
567
 
568
+ $ad_client = trim( $ad_client[1] ?: '' );
569
+ $ad_slot = trim( $ad_slot[1] ?: '' );
570
+ $ad_width = trim( $ad_width[1] ?: '' );
571
+ $ad_height = trim( $ad_height[1] ?: '' );
572
 
573
  $ad_class = 'class="' . $this->iub_class . '_google_ads"';
574
  $ad_style = 'style="width:' . $ad_width . 'px; height:' . $ad_height . 'px;"';
658
  if ( ! empty( $scripts ) && is_object( $scripts ) ) {
659
  foreach ( $scripts as $script ) {
660
  $src = $script->getAttribute( 'src' );
661
+ $script_class = trim( $script->getAttribute( 'class' ) ?: '' );
662
 
663
  if ( $script_class !== '' ) {
664
  $classes = explode( ' ', $script_class );
754
 
755
  for ( $j = 0; $j < $count; $j ++ ) {
756
  $i = $iframes[$j];
757
+ $iframe_class = trim( $i->class ?: '' );
758
 
759
  if ( $iframe_class !== '' ) {
760
  $classes = explode( ' ', $iframe_class );
820
  if ( ! empty( $iframes ) && is_object( $iframes ) ) {
821
  foreach ( $iframes as $iframe ) {
822
  $src = $iframe->getAttribute( 'src' );
823
+ $iframe_class = trim( $iframe->getAttribute( 'class' ) ?: '' );
824
 
825
  if ( $iframe_class !== '' ) {
826
  $classes = explode( ' ', $iframe_class );
iubenda-cookie-class/listeners/GoogleTagManagerListener.php CHANGED
@@ -43,7 +43,7 @@ class GoogleTagManagerListener {
43
  }
44
 
45
  # Avoid non inline-scripts
46
- if ( ! trim( $str ) ) {
47
  continue;
48
  }
49
 
43
  }
44
 
45
  # Avoid non inline-scripts
46
+ if ( ! trim( $str ?: '' ) ) {
47
  continue;
48
  }
49
 
iubenda-cookie-class/simple_html_dom.php CHANGED
@@ -444,7 +444,7 @@ class simple_html_dom_node
444
  foreach ($this->nodes as $n) {
445
  // Start paragraph after a blank line
446
  if ($n->tag === 'p') {
447
- $ret = trim($ret) . "\n\n";
448
  }
449
 
450
  $ret .= $this->convert_text($n->text());
@@ -632,7 +632,7 @@ class simple_html_dom_node
632
  // Check if ID matches
633
  if ($pass && $id !== '' && isset($node->attr['id'])) {
634
  // Note: Only consider the first ID (as browsers do)
635
- $node_id = explode(' ', trim($node->attr['id']))[0];
636
 
637
  if($id !== $node_id) { $pass = false; }
638
  }
@@ -818,7 +818,7 @@ class simple_html_dom_node
818
  * anything (since the words are separated by spaces). Also if
819
  * "val" is the empty string, it will never represent anything.
820
  */
821
- return in_array($pattern, explode(' ', trim($value)), true);
822
  }
823
  return false;
824
  }
@@ -876,7 +876,7 @@ class simple_html_dom_node
876
 
877
  preg_match_all(
878
  $pattern,
879
- trim($selector_string) . ' ', // Add final ' ' as pseudo separator
880
  $matches,
881
  PREG_SET_ORDER
882
  );
@@ -889,7 +889,7 @@ class simple_html_dom_node
889
  $result = array();
890
 
891
  foreach ($matches as $m) {
892
- $m[0] = trim($m[0]);
893
 
894
  // Skip NoOps
895
  if ($m[0] === '' || $m[0] === '/' || $m[0] === '//') { continue; }
@@ -915,7 +915,7 @@ class simple_html_dom_node
915
  if($m[4] !== '') {
916
  preg_match_all(
917
  "/\[@?(!?[\w:-]+)(?:([!*^$|~]?=)[\"']?(.*?)[\"']?)?(?:\s+?([iIsS])?)?\]/is",
918
- trim($m[4]),
919
  $attributes,
920
  PREG_SET_ORDER
921
  );
@@ -925,7 +925,7 @@ class simple_html_dom_node
925
 
926
  foreach($attributes as $att) {
927
  // Skip empty matches
928
- if(trim($att[0]) === '') { continue; }
929
 
930
  $inverted = (isset($att[1][0]) && $att[1][0] === '!');
931
  $m[4][] = array(
@@ -939,10 +939,10 @@ class simple_html_dom_node
939
  }
940
 
941
  // Sanitize Separator
942
- if ($m[5] !== '' && trim($m[5]) === '') { // Descendant Separator
943
  $m[5] = ' ';
944
  } else { // Other Separator
945
- $m[5] = trim($m[5]);
946
  }
947
 
948
  // Clear Separator if it's a Selector List
@@ -1625,7 +1625,7 @@ class simple_html_dom
1625
  {
1626
  $this->clear();
1627
 
1628
- $this->doc = trim($str);
1629
  $this->size = strlen($this->doc);
1630
  $this->original_size = $this->size; // original size of the html
1631
  $this->pos = 0;
@@ -2115,7 +2115,7 @@ class simple_html_dom
2115
  // PaperG: If this is a "class" selector, lets get rid of the preceeding
2116
  // and trailing space since some people leave it in the multi class case.
2117
  if ($name === 'class') {
2118
- $value = trim($value);
2119
  }
2120
 
2121
  if (!$is_duplicate) {
444
  foreach ($this->nodes as $n) {
445
  // Start paragraph after a blank line
446
  if ($n->tag === 'p') {
447
+ $ret = trim($ret ?: '') . "\n\n";
448
  }
449
 
450
  $ret .= $this->convert_text($n->text());
632
  // Check if ID matches
633
  if ($pass && $id !== '' && isset($node->attr['id'])) {
634
  // Note: Only consider the first ID (as browsers do)
635
+ $node_id = explode(' ', trim($node->attr['id'] ?: ''))[0];
636
 
637
  if($id !== $node_id) { $pass = false; }
638
  }
818
  * anything (since the words are separated by spaces). Also if
819
  * "val" is the empty string, it will never represent anything.
820
  */
821
+ return in_array($pattern, explode(' ', trim($value ?: '')), true);
822
  }
823
  return false;
824
  }
876
 
877
  preg_match_all(
878
  $pattern,
879
+ trim($selector_string ?: '') . ' ', // Add final ' ' as pseudo separator
880
  $matches,
881
  PREG_SET_ORDER
882
  );
889
  $result = array();
890
 
891
  foreach ($matches as $m) {
892
+ $m[0] = trim($m[0] ?: '');
893
 
894
  // Skip NoOps
895
  if ($m[0] === '' || $m[0] === '/' || $m[0] === '//') { continue; }
915
  if($m[4] !== '') {
916
  preg_match_all(
917
  "/\[@?(!?[\w:-]+)(?:([!*^$|~]?=)[\"']?(.*?)[\"']?)?(?:\s+?([iIsS])?)?\]/is",
918
+ trim($m[4] ?: ''),
919
  $attributes,
920
  PREG_SET_ORDER
921
  );
925
 
926
  foreach($attributes as $att) {
927
  // Skip empty matches
928
+ if(trim($att[0] ?: '') === '') { continue; }
929
 
930
  $inverted = (isset($att[1][0]) && $att[1][0] === '!');
931
  $m[4][] = array(
939
  }
940
 
941
  // Sanitize Separator
942
+ if ($m[5] !== '' && trim($m[5] ?: '') === '') { // Descendant Separator
943
  $m[5] = ' ';
944
  } else { // Other Separator
945
+ $m[5] = trim($m[5] ?: '');
946
  }
947
 
948
  // Clear Separator if it's a Selector List
1625
  {
1626
  $this->clear();
1627
 
1628
+ $this->doc = trim($str ?: '');
1629
  $this->size = strlen($this->doc);
1630
  $this->original_size = $this->size; // original size of the html
1631
  $this->pos = 0;
2115
  // PaperG: If this is a "class" selector, lets get rid of the preceeding
2116
  // and trailing space since some people leave it in the multi class case.
2117
  if ($name === 'class') {
2118
+ $value = trim($value ?: '');
2119
  }
2120
 
2121
  if (!$is_duplicate) {
iubenda_cookie_solution.php CHANGED
@@ -3,7 +3,7 @@
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: 3.2.1
7
  Author: iubenda
8
  Author URI: https://www.iubenda.com
9
  License: MIT License
@@ -36,7 +36,7 @@ define( 'IUB_DEBUG', false );
36
  * @property IubendaLegalBlock $block
37
  *
38
  * @class iubenda
39
- * @version 3.2.1
40
  */
41
  class iubenda {
42
 
@@ -94,7 +94,7 @@ class iubenda {
94
  )
95
  );
96
  public $base_url;
97
- public $version = '3.2.1';
98
  public $activation = array(
99
  'update_version' => 0,
100
  'update_notice' => true,
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: 3.2.2
7
  Author: iubenda
8
  Author URI: https://www.iubenda.com
9
  License: MIT License
36
  * @property IubendaLegalBlock $block
37
  *
38
  * @class iubenda
39
+ * @version 3.2.2
40
  */
41
  class iubenda {
42
 
94
  )
95
  );
96
  public $base_url;
97
+ public $version = '3.2.2';
98
  public $activation = array(
99
  'update_version' => 0,
100
  'update_notice' => true,
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: cookie banner, cookie law, eprivacy, gdpr, ukgdpr, ccpa, caloppa, lgpd, ds
5
  Requires at least: 5.0
6
  Requires PHP: 7.0.0
7
  Tested up to: 6.0
8
- Stable tag: 3.2.1
9
  License: MIT License
10
  License URI: http://opensource.org/licenses/MIT
11
 
@@ -254,6 +254,9 @@ The Brazilian General Data Protection Law, the ***Lei Geral de Proteção de Dad
254
 
255
  == Changelog ==
256
 
 
 
 
257
  = 3.2.1 =
258
  * Bugfix: Show Iubenda legal block in WP Block Editor
259
 
@@ -713,5 +716,5 @@ The Brazilian General Data Protection Law, the ***Lei Geral de Proteção de Dad
713
 
714
  == Upgrade Notice ==
715
 
716
- = 3.2.1 =
717
- * Bugfix: Show Iubenda legal block in WP Block Editor
5
  Requires at least: 5.0
6
  Requires PHP: 7.0.0
7
  Tested up to: 6.0
8
+ Stable tag: 3.2.2
9
  License: MIT License
10
  License URI: http://opensource.org/licenses/MIT
11
 
254
 
255
  == Changelog ==
256
 
257
+ = 3.2.2 =
258
+ * Add analytics to the plugin
259
+
260
  = 3.2.1 =
261
  * Bugfix: Show Iubenda legal block in WP Block Editor
262
 
716
 
717
  == Upgrade Notice ==
718
 
719
+ = 3.2.2 =
720
+ * Add analytics to the plugin
views/frontpage.php CHANGED
@@ -6,7 +6,7 @@
6
  <hr>
7
  <div class="welcome-screen-footer p-5">
8
  <h3 class="text-md text-normal m-0 mb-3"><?php _e("Let's configure your website for compliance.", 'iubenda') ?></h3>
9
- <a class="btn btn-green-primary btn-lg show-modal" data-modal-name="#modal-setup-screen" href="javascript:void(0)"><?php _e('Help me get compliant!', 'iubenda') ?></a>
10
  </div>
11
  </div>
12
 
6
  <hr>
7
  <div class="welcome-screen-footer p-5">
8
  <h3 class="text-md text-normal m-0 mb-3"><?php _e("Let's configure your website for compliance.", 'iubenda') ?></h3>
9
+ <a class="btn btn-green-primary btn-lg show-modal" data-modal-name="#modal-setup-screen" href="javascript:void(0)" onclick="_paq.push(['trackEvent', 'Click', 'Help me get compliant!']);"><?php _e('Help me get compliant!', 'iubenda') ?></a>
10
  </div>
11
  </div>
12
 
views/partials/modals/modal_almost_there.php CHANGED
@@ -71,7 +71,7 @@
71
  <?php endforeach; ?>
72
 
73
  <div class="text-center">
74
- <button type="submit" class="btn btn-green-primary btn-sm mt-5 hidden" id="submit-btn">
75
  <span class="button__text"><?php _e('Synchronize products', 'iubenda') ?></span>
76
  </button>
77
  </div>
71
  <?php endforeach; ?>
72
 
73
  <div class="text-center">
74
+ <button type="submit" class="btn btn-green-primary btn-sm mt-5 hidden" id="submit-btn" onclick="_paq.push(['trackEvent', 'Click', 'Synchronize products']);">
75
  <span class="button__text"><?php _e('Synchronize products', 'iubenda') ?></span>
76
  </button>
77
  </div>
views/partials/modals/modal_no_website_found.php CHANGED
@@ -7,8 +7,8 @@
7
  </h1>
8
  <p class="mb-4"><?php _e('It seems that it is not possible to access your data with the code you pasted, do you want to try again or do you prefer to start configuring your website from scratch?', 'iubenda') ?></p>
9
 
10
- <button class="btn btn-gray-lighter btn-block btn-sm mb-3 hide-modal" data-modal-name="#modal-no-website-found" href="javascript:void(0)"><?php _e('Try again', 'iubenda') ?></button>
11
- <div class="btn btn-gray-lighter btn-block btn-sm show-modal" data-modal-name="#modal-setup-screen"> <?php _e('I want to start from scratch', 'iubenda') ?></div>
12
  </div>
13
  </div>
14
  </div>
7
  </h1>
8
  <p class="mb-4"><?php _e('It seems that it is not possible to access your data with the code you pasted, do you want to try again or do you prefer to start configuring your website from scratch?', 'iubenda') ?></p>
9
 
10
+ <button class="btn btn-gray-lighter btn-block btn-sm mb-3 hide-modal" data-modal-name="#modal-no-website-found" href="javascript:void(0)" onclick="_paq.push(['trackEvent', 'Click', 'Try again']);"><?php _e('Try again', 'iubenda') ?></button>
11
+ <div class="btn btn-gray-lighter btn-block btn-sm show-modal" data-modal-name="#modal-setup-screen" onclick="_paq.push(['trackEvent', 'Click', 'I want to start from scratch']);"> <?php _e('I want to start from scratch', 'iubenda') ?></div>
12
  </div>
13
  </div>
14
  </div>
views/partials/modals/modal_select_language.php CHANGED
@@ -65,6 +65,7 @@
65
  };
66
 
67
  function iubendaQuickGeneratorCallback(payload) {
 
68
  jQuery.ajax({
69
  type: "POST",
70
  dataType: "json",
65
  };
66
 
67
  function iubendaQuickGeneratorCallback(payload) {
68
+ _paq.push(['trackEvent', 'Event', 'Quick generator api done']);
69
  jQuery.ajax({
70
  type: "POST",
71
  dataType: "json",
views/partials/modals/modal_sync.php CHANGED
@@ -3,7 +3,7 @@
3
  <h1 class="text-lg mb-4">
4
  <?php _e('First of all, tell us if you already use our products for this website or if you want to start from scratch', 'iubenda') ?>
5
  </h1>
6
- <button class="btn btn-gray-lighter btn-block btn-sm mb-3 show-modal" data-modal-name="#modal-have-existing-products"><?php _e('I’ve already made the set up on iubenda.com', 'iubenda') ?></button>
7
  <div class="mb-3"><?php _e('or', 'iubenda') ?></div>
8
- <button class="btn btn-gray-lighter btn-block btn-sm mb-3 show-modal" data-modal-name="#modal-select-language"><?php _e('I want to start from scratch', 'iubenda') ?></button>
9
  </div>
3
  <h1 class="text-lg mb-4">
4
  <?php _e('First of all, tell us if you already use our products for this website or if you want to start from scratch', 'iubenda') ?>
5
  </h1>
6
+ <button class="btn btn-gray-lighter btn-block btn-sm mb-3 show-modal" data-modal-name="#modal-have-existing-products" onclick="_paq.push(['trackEvent', 'Click', 'I’ve already made the set up on iubenda.com']);"><?php _e('I’ve already made the set up on iubenda.com', 'iubenda') ?></button>
7
  <div class="mb-3"><?php _e('or', 'iubenda') ?></div>
8
+ <button class="btn btn-gray-lighter btn-block btn-sm mb-3 show-modal" data-modal-name="#modal-select-language" onclick="_paq.push(['trackEvent', 'Click', 'I want to start from scratch']);"><?php _e('I want to start from scratch', 'iubenda') ?></button>
9
  </div>
views/partials/product-card.php CHANGED
@@ -45,7 +45,7 @@
45
  <label for="toggle-<?php echo $serviceKey; ?>"></label>
46
  <p class="notification text-xs text-bold text-gray-lighter ml-2" id="<?php echo "iubenda-{$serviceKey}-status-label" ?>" data-status-label-off="<?php _e('Service off', 'iubenda') ?>"><?php $serviceOptions['status']=='true' ? _e('Service on', 'iubenda') : _e('Service off', 'iubenda') ?></p>
47
  </div>
48
- <a class="btn btn-gray-lighter btn-xs" href="<?php echo add_query_arg(array('view' => "$serviceKey-configuration"), iubenda()->base_url ); ?>"><?php _e('Configure', 'iubenda') ?></a>
49
  </div>
50
 
51
  </div>
45
  <label for="toggle-<?php echo $serviceKey; ?>"></label>
46
  <p class="notification text-xs text-bold text-gray-lighter ml-2" id="<?php echo "iubenda-{$serviceKey}-status-label" ?>" data-status-label-off="<?php _e('Service off', 'iubenda') ?>"><?php $serviceOptions['status']=='true' ? _e('Service on', 'iubenda') : _e('Service off', 'iubenda') ?></p>
47
  </div>
48
+ <a class="btn btn-gray-lighter btn-xs" href="<?php echo add_query_arg(array('view' => "$serviceKey-configuration"), iubenda()->base_url ); ?>" onclick="_paq.push(['trackEvent', 'Click', '<?php echo $serviceOptions['label']. " configuration" ?>']);"><?php _e('Configure', 'iubenda') ?></a>
49
  </div>
50
 
51
  </div>
views/partials/siteInfo.php CHANGED
@@ -20,7 +20,7 @@
20
  <p class="m-0 text-bold text-md"><?php _e('Your rating', 'iubenda') ?></p>
21
  <span class="btn-reset link-underline-dashed text-gray show-modal show-rating-modal"><?php _e('How is it calculated?', 'iubenda') ?></span>
22
  </div>
23
- <div class="circularBar sm show-modal show-rating-modal" id="iubendaRadarCircularBar" data-perc="<?php echo iubenda()->serviceRating->services_percentage() ?>"></div>
24
  </div>
25
  </div>
26
  <hr>
20
  <p class="m-0 text-bold text-md"><?php _e('Your rating', 'iubenda') ?></p>
21
  <span class="btn-reset link-underline-dashed text-gray show-modal show-rating-modal"><?php _e('How is it calculated?', 'iubenda') ?></span>
22
  </div>
23
+ <div class="circularBar sm show-modal show-rating-modal" id="iubendaRadarCircularBar" data-perc="<?php echo iubenda()->serviceRating->services_percentage() ?>" onclick="_paq.push(['trackEvent', 'Click', 'How is it calculated?']);"></div>
24
  </div>
25
  </div>
26
  <hr>