WP DSGVO Tools - Version 3.1.21

Version Description

  • added mautic
  • fixed bug with forcing cookie popup
  • translation updates
  • fixed path of roboto font
Download this release

Release Info

Developer legalweb
Plugin Icon 128x128 WP DSGVO Tools
Version 3.1.21
Comparing to
See all releases

Code changes from version 3.1.20 to 3.1.21

README.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: legalweb
3
  Donate link: https://legalweb.io
4
  Tags: gdpr, dsgvo, datenschutz, privacy, privacy policy, imprint, impressum, wordpress, compliance, privacy, woocommerce, law
5
  Requires at least: 3.0.1
6
- Tested up to: 5.7.0
7
- Stable tag: 3.1.20
8
  Requires PHP: 5.6.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -117,7 +117,7 @@ freely configurable provider
117
  * Matomo Tag Manager
118
 
119
  #### **Statistics / analysis**
120
- * WP Statistics, Matomo (On ​​Premise / Agentur / Cloud), Piwik (On Premise / Agentur / Cloud), E-Tracker, Google Analytics, Clicky, Hotjar
121
  * (from cloud version: freely configurable statstics)
122
 
123
  #### **Targeting / advertising**
@@ -203,6 +203,13 @@ Just install via wordpress plugin feature or upload zip and activate it.
203
 
204
 
205
  == Changelog ==
 
 
 
 
 
 
 
206
  = 3.1.20 =
207
  * translation updates
208
 
3
  Donate link: https://legalweb.io
4
  Tags: gdpr, dsgvo, datenschutz, privacy, privacy policy, imprint, impressum, wordpress, compliance, privacy, woocommerce, law
5
  Requires at least: 3.0.1
6
+ Tested up to: 5.8.2
7
+ Stable tag: 3.1.21
8
  Requires PHP: 5.6.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
117
  * Matomo Tag Manager
118
 
119
  #### **Statistics / analysis**
120
+ * WP Statistics, Matomo (On ​​Premise / Agentur / Cloud), Piwik (On Premise / Agentur / Cloud), E-Tracker, Google Analytics, Clicky, Hotjar, Mautic
121
  * (from cloud version: freely configurable statstics)
122
 
123
  #### **Targeting / advertising**
203
 
204
 
205
  == Changelog ==
206
+
207
+ = 3.1.21 =
208
+ * added mautic
209
+ * fixed bug with forcing cookie popup
210
+ * translation updates
211
+ * fixed path of roboto font
212
+
213
  = 3.1.20 =
214
  * translation updates
215
 
includes/class-sp-dsgvo-language-tools.php CHANGED
@@ -179,7 +179,13 @@ class SPDSGVOLanguageTools
179
  $xmlTextsJson = json_decode($resultCleaned, true);
180
 
181
  if ($xmlTextsJson != null) {
182
- $xmlTextsBase64 = base64_encode($xmlTextsJson['Texts']);
 
 
 
 
 
 
183
  $version = $xmlTextsJson['Version'];
184
  $lang = $xmlTextsJson['Language'];
185
  if ($version == null || $version == '') $version = time();
179
  $xmlTextsJson = json_decode($resultCleaned, true);
180
 
181
  if ($xmlTextsJson != null) {
182
+
183
+ $xmlTextsBase64 = $xmlTextsJson['Texts'];
184
+ if (strtoupper($lang) == 'CH') { // ch does not use an ß
185
+ $xmlTextsBase64 = str_replace("ß", "ss",$xmlTextsBase64);
186
+ $xmlTextsBase64 = str_replace("ß", "ss",$xmlTextsBase64);
187
+ }
188
+ $xmlTextsBase64 = base64_encode($xmlTextsBase64);
189
  $version = $xmlTextsJson['Version'];
190
  $lang = $xmlTextsJson['Language'];
191
  if ($version == null || $version == '') $version = time();
includes/class-sp-dsgvo.php CHANGED
@@ -207,6 +207,8 @@ class SPDSGVO
207
  SPDSGVO::pluginDir('includes/integrations/statistics/etracker/class-sp-dsgvo-etracker-integration.php'),
208
  SPDSGVO::pluginDir('includes/integrations/statistics/hotjar/class-sp-dsgvo-hotjar-api.php'),
209
  SPDSGVO::pluginDir('includes/integrations/statistics/hotjar/class-sp-dsgvo-hotjar-integration.php'),
 
 
210
 
211
  // targeting
212
  SPDSGVO::pluginDir('includes/integrations/targeting/fbpixel/class-sp-dsgvo-fb-pixel-api.php'),
207
  SPDSGVO::pluginDir('includes/integrations/statistics/etracker/class-sp-dsgvo-etracker-integration.php'),
208
  SPDSGVO::pluginDir('includes/integrations/statistics/hotjar/class-sp-dsgvo-hotjar-api.php'),
209
  SPDSGVO::pluginDir('includes/integrations/statistics/hotjar/class-sp-dsgvo-hotjar-integration.php'),
210
+ SPDSGVO::pluginDir('includes/integrations/statistics/mautic/class-sp-dsgvo-mautic-api.php'),
211
+ SPDSGVO::pluginDir('includes/integrations/statistics/mautic/class-sp-dsgvo-mautic-integration.php'),
212
 
213
  // targeting
214
  SPDSGVO::pluginDir('includes/integrations/targeting/fbpixel/class-sp-dsgvo-fb-pixel-api.php'),
includes/integrations/statistics/mautic/class-sp-dsgvo-mautic-api.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class SPDSGVOMauticApi extends SPDSGVOIntegrationApiBase
4
+ {
5
+
6
+ protected function __construct()
7
+ {
8
+ $this->name = "Mautic";
9
+ $this->company = "Acquia Inc";
10
+ $this->country = "USA";
11
+ $this->slug = 'mautic';
12
+ $this->storageId = 'mautic';
13
+ $this->cookieCategory = SPDSGVOConstants::CATEGORY_SLUG_STATISTICS;
14
+ $this->cookieNames = 'mautic_*;mtc_*'; // mehrer cookie pattern spezifizeiren
15
+ $this->insertLocation = 'body';
16
+ $this->optionTechMandatory = true;
17
+ $this->supportsMultipleImplementationModes = true;
18
+ $this->implementationModes = ['on-premises', 'by-agency'];
19
+ }
20
+
21
+ public function getDefaultJsCode($propertyId)
22
+ {
23
+
24
+ return "<!-- $this->name -->
25
+ <script type='text/javascript'>
26
+ (function(w,d,t,u,n,a,m){w['MauticTrackingObject']=n;
27
+ w[n]=w[n]||function(){(w[n].q=w[n].q||[]).push(arguments)},a=d.createElement(t),
28
+ m=d.getElementsByTagName(t)[0];a.async=1;a.src=u;m.parentNode.insertBefore(a,m)
29
+ })(window,document,'script','http(s)://yourmautic.com/mtc.js','mt');
30
+
31
+ mt('send', 'pageview');
32
+ </script>
33
+ <!-- End $this->name -->";
34
+ }
35
+
36
+
37
+ public function getIfOptInNeeded()
38
+ {
39
+ $settings = $this->getSettings();
40
+
41
+ if ($this->optionTechMandatory == true && $settings['showAsTechMandatory'] == 1) return false;
42
+ return $settings['implementationMode'] != 'on-premises';
43
+ }
44
+
45
+ public function getShowInPopup()
46
+ {
47
+ $settings = $this->getSettings();
48
+
49
+ if (SPDSGVOSettings::get('force_cookie_info') == '1') return true;
50
+ return $settings['implementationMode'] != 'on-premises';
51
+ }
52
+
53
+
54
+ public function getDefaultSettings($ownCodeEnabledByDefault = false)
55
+ {
56
+ $defaults = parent::getDefaultSettings($ownCodeEnabledByDefault);
57
+
58
+ $defaults['implementationMode'] = 'on-premises';
59
+
60
+ return $defaults;
61
+ }
62
+
63
+ public function getSettings()
64
+ {
65
+ $settings = parent::getSettings();
66
+ $settings['useOwnCode'] = '1';
67
+
68
+ if (array_key_exists('agency', $settings['meta']) == false)
69
+ {
70
+ $settings['meta']['agency'] = '';
71
+ }
72
+
73
+ // fallback for cloud mode
74
+ $hasImplementationModeKey = array_key_exists('implementationMode', $settings);
75
+ if (array_key_exists('cloudMode', $settings)
76
+ && $hasImplementationModeKey == false && !empty($settings['implementationMode']))
77
+ {
78
+ $settings['implementationMode'] = $settings['cloudMode'] == '1' ? 'cloud' : 'on-premises';
79
+ }
80
+
81
+ return $settings;
82
+ }
83
+ }
84
+
85
+ SPDSGVOMauticApi::getInstance()->register();
86
+
87
+ add_filter('sp_dsgvo_integrations_head', [SPDSGVOMauticApi::getInstance(),'processHeadAction']);
88
+ add_filter('sp_dsgvo_integrations_body_end',[SPDSGVOMauticApi::getInstance(), 'processBodyEndAction']);
includes/integrations/statistics/mautic/class-sp-dsgvo-mautic-integration.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class SPDSGVOMauticIntegration extends SPDSGVOIntegration{
4
+
5
+ public function __construct()
6
+ {
7
+ $this->boot();
8
+ }
9
+
10
+ public function boot(){
11
+ $this->isHidden = FALSE;
12
+ $this->integrationCategory = SPDSGVOMauticApi::getInstance()->getCategory();
13
+ $this->slug = SPDSGVOMauticApi::getInstance()->getSlug();
14
+ $this->title = SPDSGVOMauticApi::getInstance()->getName();
15
+ $this->isPremium = SPDSGVOMauticApi::getInstance()->getIsPremium();
16
+ $this->apiInstance = SPDSGVOMauticApi::getInstance();
17
+ }
18
+
19
+ public function view(){
20
+ if (file_exists(dirname(__FILE__) .'/page.php')) {
21
+ include dirname(__FILE__) . '/page.php';
22
+ }
23
+ }
24
+
25
+ public function viewSubmit(){
26
+
27
+ $settings = SPDSGVOMauticApi::getInstance()->getSettings();
28
+
29
+ $settings['enabled'] = $this->get( $this->slug.'_enable', '0');
30
+ $settings['propertyId'] = $this->get($this->slug.'_tag_number', '');
31
+ $settings['implementationMode'] = $this->get( $this->slug.'_implementationMode', '');
32
+ $settings['meta']['agency'] = $this->get( $this->slug.'_meta_agency', '');
33
+ $settings['showAsTechMandatory'] = $this->get( $this->slug.'_showAsTechMandatory', '0');
34
+ $settings['useOwnCode'] = '1';//$this->get($this->slug.'_own_code', '1');
35
+ //$settings['usedTagmanager'] = $this->get( $this->slug.'_usedTagmanager', '');
36
+ if ($settings['useOwnCode'] == '1')
37
+ {
38
+ $settings['jsCode'] = $this->get($this->slug.'_code', SPDSGVOMauticApi::getInstance()->getDefaultJsCode($settings['propertyId']));
39
+ } else
40
+ {
41
+ $settings['jsCode'] = $this->get(SPDSGVOMauticApi::getInstance()->getDefaultJsCode($settings['propertyId']));
42
+ }
43
+
44
+ SPDSGVOMauticApi::getInstance()->setSettings($settings);
45
+
46
+ $this->redirectBack();
47
+ }
48
+
49
+ }
50
+
51
+ SPDSGVOMauticIntegration::register();
includes/integrations/statistics/mautic/page.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php
3
+ $isPremium = isValidPremiumEdition();
4
+ $isBlog = isValidBlogEdition();
5
+ $hasValidLicense = isValidPremiumEdition() || isValidBlogEdition();
6
+ $settings = SPDSGVOMauticApi::getInstance()->getSettings();
7
+ $apiInstance = SPDSGVOMauticApi::getInstance();
8
+ ?>
9
+
10
+ <div class="card">
11
+ <div class="card-header">
12
+ <h4 class="card-title"><?= $apiInstance->getName(); ?></h4>
13
+ </div>
14
+ <div class="card-body integration-container">
15
+
16
+
17
+ <form method="post" action="<?= SPDSGVOMauticIntegration::formURL() ?>">
18
+ <input type="hidden" name="action" value="<?= SPDSGVOMauticIntegration::action() ?>">
19
+ <?php wp_nonce_field(SPDSGVOMauticIntegration::action() . '-nonce'); ?>
20
+
21
+ <?php
22
+ spDsgvoWriteInput('switch', '', $apiInstance->getSlug().'_enable', $settings['enabled'],
23
+ sprintf(__('Use %s', 'shapepress-dsgvo'), $apiInstance->getName()),
24
+ '',
25
+ sprintf(__("Enabling inserts the js code of %s.",'shapepress-dsgvo'), $apiInstance->getName()));
26
+ ?>
27
+
28
+
29
+ <?php
30
+
31
+ if ($apiInstance->getSupportsMultipleImplementationModes())
32
+ {
33
+ spDsgvoWriteSelect($apiInstance->getImplementationModes(), '', $apiInstance->getSlug() . '_implementationMode', $settings['implementationMode'],
34
+ __('Way of integration', 'shapepress-dsgvo'),
35
+ '',
36
+ sprintf(__('Defines the way how you integrate %s or rather host %s .', 'shapepress-dsgvo'), $apiInstance->getName(), $apiInstance->getName()),
37
+ true, 'implementation-mode');
38
+
39
+
40
+ spDsgvoWriteInput('text', '', $apiInstance->getSlug() .'_meta_agency', $settings['meta']['agency'],
41
+ __('Agency address', 'shapepress-dsgvo'),
42
+ __('Company, Address, Zip, Location, Country', 'shapepress-dsgvo'),
43
+ __('Because you set the way of integration to "agency", you need to specifiy the full address of this agency in the text field above. This information is needed in the privacy policy.','shapepress-dsgvo'),
44
+ true, 'meta-agency ' , '1', true, ($settings['implementationMode'] == 'by-agency'));
45
+ }
46
+ ?>
47
+
48
+ <?php
49
+
50
+ if ($apiInstance->getIsTechMandatoryOptionEnabled())
51
+ {
52
+ spDsgvoWriteInput('switch', '', $apiInstance->getSlug().'_showAsTechMandatory', $settings['showAsTechMandatory'],
53
+ __('Show in category "technically necessary" in popup', 'shapepress-dsgvo'),
54
+ '',
55
+ sprintf(__("Enable if you have configured %s not to collect private data (according to it's documentation). If yes you does not need an opt-in by your visitors and %s will be enabled by default.",'shapepress-dsgvo'), $apiInstance->getName(), $apiInstance->getName()));
56
+ }
57
+
58
+ ?>
59
+
60
+ <?php
61
+ /* if ($apiInstance->getIsTagManagerCompatible()) {
62
+
63
+ spDsgvoWriteSelect($apiInstance->getCompatibleTagManager(), '', $apiInstance->getSlug() . '_usedTagmanager', $settings['usedTagmanager'],
64
+ sprintf(__('Use Tagmanager', 'shapepress-dsgvo'), $apiInstance->getName()),
65
+ __('No', 'shapepress-dsgvo'),
66
+ __('If enabled, enable own tracking code and insert the custom event code there. In this code you should fire a custom trigger event surrounded by script tags. The event will be fired after a visitor opts in. For more information visit the documentation of your used tag manager.', 'shapepress-dsgvo'));
67
+ }
68
+ */ ?>
69
+
70
+ <?php
71
+ /*
72
+ spDsgvoWriteInput('text', '', $apiInstance->getSlug().'_tag_number', $settings['propertyId'],
73
+ __('GTAG number', 'shapepress-dsgvo'),
74
+ 'XX-XXXXXX-X',
75
+ '');
76
+ */
77
+ ?>
78
+
79
+
80
+ <?php
81
+ /*
82
+ spDsgvoWriteInput('switch', '', $apiInstance->getSlug().'_own_code', $settings['useOwnCode'],
83
+ __('Use own tracking code', 'shapepress-dsgvo'),
84
+ '',
85
+ __('You can customize the tracking code by yourself. Wrong codes results in invalid or no functionality.','shapepress-dsgvo'), true,'own-code-toggle');
86
+ */
87
+ ?>
88
+
89
+
90
+ <?php
91
+
92
+ $jsCode = $settings['jsCode'];
93
+ if ($jsCode == '') {
94
+ $jsCode = $apiInstance->getDefaultJsCode($settings['propertyId']);
95
+ }
96
+
97
+ spDsgvoWriteInput('textarea', '', $apiInstance->getSlug().'_code',
98
+ $jsCode,
99
+ $apiInstance->getName() .' '.__('code', 'shapepress-dsgvo'),
100
+ '',
101
+ __('If left blank, the standard script will be used.', 'shapepress-dsgvo'), true, 'own-code-text', '1', $settings['useOwnCode'] == '1');
102
+ ?>
103
+
104
+
105
+ <div class="form-group">
106
+ <input type="submit" class="btn btn-primary btn-block" value="<?= _e('Save changes', 'shapepress-dsgvo');?>">
107
+ </div>
108
+ </form>
109
+ </div>
110
+ </div>
languages/shapepress-dsgvo-de_DE.mo CHANGED
Binary file
languages/shapepress-dsgvo-de_DE.po CHANGED
@@ -2,14 +2,14 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: \n"
4
  "POT-Creation-Date: 2021-03-11 11:04+0100\n"
5
- "PO-Revision-Date: 2021-03-12 07:29+0100\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: de_DE\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.3\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-KeywordsList: __;_e\n"
@@ -1585,7 +1585,7 @@ msgstr "USt. Id:"
1585
 
1586
  #: admin/tabs/v3/operator/page.php:266 public/shortcodes/imprint.php:125
1587
  msgid "Responsible for content"
1588
- msgstr "Verantwortlich für Inhalt"
1589
 
1590
  #: admin/tabs/v3/operator/page.php:268
1591
  msgid "The person who is responsible for the content of this website."
2
  msgstr ""
3
  "Project-Id-Version: \n"
4
  "POT-Creation-Date: 2021-03-11 11:04+0100\n"
5
+ "PO-Revision-Date: 2021-06-23 14:09+0200\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
8
  "Language: de_DE\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 3.0\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-KeywordsList: __;_e\n"
1585
 
1586
  #: admin/tabs/v3/operator/page.php:266 public/shortcodes/imprint.php:125
1587
  msgid "Responsible for content"
1588
+ msgstr "Verantwortlich für den Inhalt"
1589
 
1590
  #: admin/tabs/v3/operator/page.php:268
1591
  msgid "The person who is responsible for the content of this website."
public/actions/legal-web-text-action.php CHANGED
@@ -30,8 +30,8 @@ Class SPDSGVOLegalWebTextAction extends SPDSGVOAjaxAction{
30
  die;
31
  }
32
 
33
- //special case for matomo and piwik. only in cloud mode they are in popup, so attach -cloud to get correct popup text
34
- $specialIntegrations = array('matomo', 'piwik');
35
  $webAgencyText = "";
36
  if (in_array($slug, $specialIntegrations)) {
37
 
@@ -43,6 +43,9 @@ Class SPDSGVOLegalWebTextAction extends SPDSGVOAjaxAction{
43
  case SPDSGVOPiwikApi::getInstance()->getSlug():
44
  $settings = SPDSGVOPiwikApi::getInstance()->getSettings();
45
  break;
 
 
 
46
  }
47
 
48
  $slug .= '-';
30
  die;
31
  }
32
 
33
+ //special case for matomo, piwik, mautic. only in cloud mode they are in popup, so attach -cloud to get correct popup text
34
+ $specialIntegrations = array('matomo', 'piwik', 'mautic');
35
  $webAgencyText = "";
36
  if (in_array($slug, $specialIntegrations)) {
37
 
43
  case SPDSGVOPiwikApi::getInstance()->getSlug():
44
  $settings = SPDSGVOPiwikApi::getInstance()->getSettings();
45
  break;
46
+ case SPDSGVOMauticApi::getInstance()->getSlug():
47
+ $settings = SPDSGVOMauticApi::getInstance()->getSettings();
48
+ break;
49
  }
50
 
51
  $slug .= '-';
public/class-sp-dsgvo-public.php CHANGED
@@ -923,7 +923,7 @@ class SPDSGVOPublic
923
  font-weight: 300;
924
  src: local('Roboto Light Italic'),
925
  local('Roboto-LightItalic'),
926
- url(fonts/roboto/Roboto-LightItalic-webfont.woff) format('woff');
927
  font-display: swap;
928
 
929
  }
@@ -935,7 +935,7 @@ class SPDSGVOPublic
935
  font-weight: 400;
936
  src: local('Roboto Italic'),
937
  local('Roboto-Italic'),
938
- url(fonts/roboto/Roboto-Italic-webfont.woff) format('woff');
939
  font-display: swap;
940
  }
941
 
@@ -946,7 +946,7 @@ class SPDSGVOPublic
946
  font-weight: 700;
947
  src: local('Roboto Bold Italic'),
948
  local('Roboto-BoldItalic'),
949
- url(fonts/roboto/Roboto-BoldItalic-webfont.woff) format('woff');
950
  font-display: swap;
951
  }
952
 
@@ -957,7 +957,7 @@ class SPDSGVOPublic
957
  font-weight: 900;
958
  src: local('Roboto Black Italic'),
959
  local('Roboto-BlackItalic'),
960
- url(fonts/roboto/Roboto-BlackItalic-webfont.woff) format('woff');
961
  font-display: swap;
962
  }
963
 
@@ -968,7 +968,7 @@ class SPDSGVOPublic
968
  font-weight: 300;
969
  src: local('Roboto Light'),
970
  local('Roboto-Light'),
971
- url(fonts/roboto/Roboto-Light-webfont.woff) format('woff');
972
  font-display: swap;
973
  }
974
 
@@ -979,7 +979,7 @@ class SPDSGVOPublic
979
  font-weight: 400;
980
  src: local('Roboto Regular'),
981
  local('Roboto-Regular'),
982
- url(fonts/roboto/Roboto-Regular-webfont.woff) format('woff');
983
  font-display: swap;
984
  }
985
 
@@ -990,7 +990,7 @@ class SPDSGVOPublic
990
  font-weight: 700;
991
  src: local('Roboto Bold'),
992
  local('Roboto-Bold'),
993
- url(fonts/roboto/Roboto-Bold-webfont.woff) format('woff');
994
  font-display: swap;
995
  }
996
 
@@ -1001,7 +1001,7 @@ class SPDSGVOPublic
1001
  font-weight: 900;
1002
  src: local('Roboto Black'),
1003
  local('Roboto-Black'),
1004
- url(fonts/roboto/Roboto-Black-webfont.woff) format('woff');
1005
  font-display: swap;
1006
  }
1007
  </style>
@@ -1127,8 +1127,8 @@ class SPDSGVOPublic
1127
  return "invalid textId";
1128
  }
1129
 
1130
- //special case for matomo and piwik. only in cloud mode they are in popup, so attach -cloud to get correct popup text
1131
- $specialIntegrations = array('matomo', 'piwik');
1132
  $webAgencyText = "";
1133
  if (in_array($slug, $specialIntegrations)) {
1134
 
@@ -1140,6 +1140,9 @@ class SPDSGVOPublic
1140
  case SPDSGVOPiwikApi::getInstance()->getSlug():
1141
  $settings = SPDSGVOPiwikApi::getInstance()->getSettings();
1142
  break;
 
 
 
1143
  }
1144
 
1145
  $slug .= '-';
923
  font-weight: 300;
924
  src: local('Roboto Light Italic'),
925
  local('Roboto-LightItalic'),
926
+ url(/wp-content/plugins/shapepress-dsgvo/public/css/fonts/roboto/Roboto-LightItalic-webfont.woff) format('woff');
927
  font-display: swap;
928
 
929
  }
935
  font-weight: 400;
936
  src: local('Roboto Italic'),
937
  local('Roboto-Italic'),
938
+ url(/wp-content/plugins/shapepress-dsgvo/public/css/fonts/roboto/Roboto-Italic-webfont.woff) format('woff');
939
  font-display: swap;
940
  }
941
 
946
  font-weight: 700;
947
  src: local('Roboto Bold Italic'),
948
  local('Roboto-BoldItalic'),
949
+ url(/wp-content/plugins/shapepress-dsgvo/public/css/fonts/roboto/Roboto-BoldItalic-webfont.woff) format('woff');
950
  font-display: swap;
951
  }
952
 
957
  font-weight: 900;
958
  src: local('Roboto Black Italic'),
959
  local('Roboto-BlackItalic'),
960
+ url(/wp-content/plugins/shapepress-dsgvo/public/css/fonts/roboto/Roboto-BlackItalic-webfont.woff) format('woff');
961
  font-display: swap;
962
  }
963
 
968
  font-weight: 300;
969
  src: local('Roboto Light'),
970
  local('Roboto-Light'),
971
+ url(/wp-content/plugins/shapepress-dsgvo/public/css/fonts/roboto/Roboto-Light-webfont.woff) format('woff');
972
  font-display: swap;
973
  }
974
 
979
  font-weight: 400;
980
  src: local('Roboto Regular'),
981
  local('Roboto-Regular'),
982
+ url(/wp-content/plugins/shapepress-dsgvo/public/css/fonts/roboto/Roboto-Regular-webfont.woff) format('woff');
983
  font-display: swap;
984
  }
985
 
990
  font-weight: 700;
991
  src: local('Roboto Bold'),
992
  local('Roboto-Bold'),
993
+ url(/wp-content/plugins/shapepress-dsgvo/public/css/fonts/roboto/Roboto-Bold-webfont.woff) format('woff');
994
  font-display: swap;
995
  }
996
 
1001
  font-weight: 900;
1002
  src: local('Roboto Black'),
1003
  local('Roboto-Black'),
1004
+ url(/wp-content/plugins/shapepress-dsgvo/public/css/fonts/roboto/Roboto-Black-webfont.woff) format('woff');
1005
  font-display: swap;
1006
  }
1007
  </style>
1127
  return "invalid textId";
1128
  }
1129
 
1130
+ //special case for matomo, piwik and mautic. only in cloud mode they are in popup, so attach -cloud to get correct popup text
1131
+ $specialIntegrations = array('matomo', 'piwik', 'mautic');
1132
  $webAgencyText = "";
1133
  if (in_array($slug, $specialIntegrations)) {
1134
 
1140
  case SPDSGVOPiwikApi::getInstance()->getSlug():
1141
  $settings = SPDSGVOPiwikApi::getInstance()->getSettings();
1142
  break;
1143
+ case SPDSGVOMauticApi::getInstance()->getSlug():
1144
+ $settings = SPDSGVOMauticApi::getInstance()->getSettings();
1145
+ break;
1146
  }
1147
 
1148
  $slug .= '-';
public/js/sp-dsgvo-public.js CHANGED
@@ -361,7 +361,7 @@ const CATEGORY_SLUG_MANDATORY = 'necessary';
361
  {
362
  if (spDsgvoIntegrationConfig == null) return;
363
 
364
- if (spDsgvoIntegrationConfig.length == 0 && spDsgvoGeneralConfig.forceCookieInfo == 0) return;
365
 
366
  if (spDsgvoGeneralConfig.currentPageId == spDsgvoGeneralConfig.privacyPolicyPageId ||
367
  spDsgvoGeneralConfig.currentPageId == spDsgvoGeneralConfig.imprintPageId)
@@ -1032,6 +1032,20 @@ const CATEGORY_SLUG_MANDATORY = 'necessary';
1032
  return integrationObject;
1033
  }
1034
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1035
  function isIntegrationAllowedByCookieSettings(slug)
1036
  {
1037
  var found = false;
361
  {
362
  if (spDsgvoIntegrationConfig == null) return;
363
 
364
+ if (getNonMandatoryIntegrations(spDsgvoIntegrationConfig).length == 0 && spDsgvoGeneralConfig.forceCookieInfo == 0) return;
365
 
366
  if (spDsgvoGeneralConfig.currentPageId == spDsgvoGeneralConfig.privacyPolicyPageId ||
367
  spDsgvoGeneralConfig.currentPageId == spDsgvoGeneralConfig.imprintPageId)
1032
  return integrationObject;
1033
  }
1034
 
1035
+ function getNonMandatoryIntegrations(integrationsArray)
1036
+ {
1037
+ var result = [];
1038
+ integrationsArray.forEach(function(integration) {
1039
+
1040
+ if (integration.category != CATEGORY_SLUG_MANDATORY)
1041
+ {
1042
+ result.push(integration);
1043
+ }
1044
+ });
1045
+
1046
+ return result;
1047
+ }
1048
+
1049
  function isIntegrationAllowedByCookieSettings(slug)
1050
  {
1051
  var found = false;
public/shortcodes/privacy-policy.php CHANGED
@@ -370,10 +370,11 @@ function SPDSGVOPrivacyPolicyShortcode($atts){
370
  // <editor-fold desc="Analyse">
371
  $integrations = SPDSGVOIntegrationApiBase::getAllIntegrationApis(SPDSGVOConstants::CATEGORY_SLUG_STATISTICS, FALSE);
372
 
373
- // add techn. required too (wp stats, matomo, piwik) because the have another catin the filter
374
  if (SPDSGVOMatomoApi::getInstance()->getIsEnabled()) $integrations[SPDSGVOMatomoApi::getInstance()->getSlug()] =SPDSGVOMatomoApi::getInstance();
375
  if (SPDSGVOWpStatisticsApi::getInstance()->getIsEnabled()) $integrations[SPDSGVOWpStatisticsApi::getInstance()->getSlug()] = SPDSGVOWpStatisticsApi::getInstance();
376
  if (SPDSGVOPiwikApi::getInstance()->getIsEnabled()) $integrations[SPDSGVOPiwikApi::getInstance()->getSlug()] = SPDSGVOPiwikApi::getInstance();
 
377
 
378
  $enabledIntegrationCount = 0;
379
  $integrationTexts = null;
370
  // <editor-fold desc="Analyse">
371
  $integrations = SPDSGVOIntegrationApiBase::getAllIntegrationApis(SPDSGVOConstants::CATEGORY_SLUG_STATISTICS, FALSE);
372
 
373
+ // add techn. required too (wp stats, matomo, piwik, mautic) because the have another catin the filter
374
  if (SPDSGVOMatomoApi::getInstance()->getIsEnabled()) $integrations[SPDSGVOMatomoApi::getInstance()->getSlug()] =SPDSGVOMatomoApi::getInstance();
375
  if (SPDSGVOWpStatisticsApi::getInstance()->getIsEnabled()) $integrations[SPDSGVOWpStatisticsApi::getInstance()->getSlug()] = SPDSGVOWpStatisticsApi::getInstance();
376
  if (SPDSGVOPiwikApi::getInstance()->getIsEnabled()) $integrations[SPDSGVOPiwikApi::getInstance()->getSlug()] = SPDSGVOPiwikApi::getInstance();
377
+ if (SPDSGVOMauticApi::getInstance()->getIsEnabled()) $integrations[SPDSGVOMauticApi::getInstance()->getSlug()] = SPDSGVOMauticApi::getInstance();
378
 
379
  $enabledIntegrationCount = 0;
380
  $integrationTexts = null;
sp-dsgvo.php CHANGED
@@ -16,7 +16,7 @@
16
  * Plugin Name: WP DSGVO Tools (GDPR)
17
  * Plugin URI: https://legalweb.io
18
  * Description: WP DSGVO Tools (GDPR) help you to fulfill the GDPR (DGSVO) compliance guidance (<a target="_blank" href="https://ico.org.uk/for-organisations/data-protection-reform/overview-of-the-gdpr/">GDPR</a>)
19
- * Version: 3.1.20
20
  * Author: legalweb
21
  * Author URI: https://www.legalweb.io
22
  * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
@@ -28,7 +28,7 @@ if (! defined('WPINC')) {
28
  die();
29
  }
30
 
31
- define('sp_dsgvo_VERSION', '3.1.20');
32
  define('sp_dsgvo_NAME', 'sp-dsgvo');
33
  define('sp_dsgvo_PLUGIN_NAME', 'shapepress-dsgvo');
34
  define('sp_dsgvo_LEGAL_TEXTS_MIN_VERSION', '1579021814');
16
  * Plugin Name: WP DSGVO Tools (GDPR)
17
  * Plugin URI: https://legalweb.io
18
  * Description: WP DSGVO Tools (GDPR) help you to fulfill the GDPR (DGSVO) compliance guidance (<a target="_blank" href="https://ico.org.uk/for-organisations/data-protection-reform/overview-of-the-gdpr/">GDPR</a>)
19
+ * Version: 3.1.21
20
  * Author: legalweb
21
  * Author URI: https://www.legalweb.io
22
  * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
28
  die();
29
  }
30
 
31
+ define('sp_dsgvo_VERSION', '3.1.21');
32
  define('sp_dsgvo_NAME', 'sp-dsgvo');
33
  define('sp_dsgvo_PLUGIN_NAME', 'shapepress-dsgvo');
34
  define('sp_dsgvo_LEGAL_TEXTS_MIN_VERSION', '1579021814');