WP GDPR Compliance - Version 1.5.4

Version Description

Release date: June 9th, 2020 * Improved Web Content Accessibility Guidelines (WCAG) * Improved keyboard navigation * Added a setting to change the accept button text * Added a setting to change the more information button text * Javascript and css assets are now minified * Bugfix: The accept button in the consent modal now also works when all consents are mandatory

Download this release

Release Info

Developer Van Ons
Plugin Icon 128x128 WP GDPR Compliance
Version 1.5.4
Comparing to
See all releases

Code changes from version 1.5.3 to 1.5.4

Includes/Action.php CHANGED
@@ -138,7 +138,7 @@ class Action {
138
  }
139
 
140
  public function addConsentBar() {
141
- $consentRequiredStatus = $this->checkAllConsentsRequired();
142
  $consentBarColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_color');
143
  $consentBarTextColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_text_color');
144
  $consentBarButtonColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_button_color_primary');
@@ -154,7 +154,6 @@ class Action {
154
  $consentBarTextStyling[] = 'color: ' . $consentBarTextColor . ';';
155
  }
156
 
157
- $text = ($consentRequiredStatus) ? esc_attr__('More information', WP_GDPR_C_SLUG) : esc_attr__('My settings', WP_GDPR_C_SLUG);
158
  $output = '<div class="wpgdprc wpgdprc-consent-bar" style="' . implode('', $consentBarStyling) . '">';
159
  $output .= '<div class="wpgdprc-consent-bar__container">';
160
  $output .= '<div class="wpgdprc-consent-bar__content" ' . (!empty($consentBarTextColor) ? 'style="' . implode('', $consentBarTextStyling) . '"' : '') . '>';
@@ -165,21 +164,22 @@ class Action {
165
  $output .= '</div>';
166
  $output .= '<div class="wpgdprc-consent-bar__column">';
167
  $output .= sprintf(
168
- '<a class="wpgdprc-consent-bar__settings" href="javascript:void(0);" data-micromodal-trigger="wpgdprc-consent-modal">%s</a>',
169
- $text
170
  );
171
  $output .= '</div>';
172
  $output .= '<div class="wpgdprc-consent-bar__column">';
173
  $buttonStyling = array();
174
  if (!empty($consentBarButtonColor)) {
175
  $buttonStyling[] = 'background: ' . $consentBarButtonColor . ';';
 
176
  }
177
  if (!empty($consentBarButtonTextColor)) {
178
  $buttonStyling[] = 'color: ' . $consentBarButtonTextColor . ';';
179
  }
180
  $output .= sprintf(
181
  '<button class="wpgdprc-button wpgdprc-consent-bar__button" ' . (!empty($buttonStyling) ? 'style="' . implode('', $buttonStyling) . '"' : '') .'>%s</button>',
182
- __('Accept', WP_GDPR_C_SLUG)
183
  );
184
  $output .= '</div>';
185
  $output .= '</div>';
@@ -192,7 +192,7 @@ class Action {
192
  * Checks if all the consents are required.
193
  * @return bool
194
  */
195
- public function checkAllConsentsRequired() {
196
  $totalRequiredConsents = Consent::getInstance()->getList(array(
197
  'active' => array('value' => 1),
198
  'required' => array('value' => 1)
@@ -204,14 +204,14 @@ class Action {
204
  }
205
 
206
  public function addConsentModal() {
207
- $consentRequiredStatus = $this->checkAllConsentsRequired();
208
- $consentModalButtonColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_button_color_secondary');
209
- $consentModalButtonTextColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_button_color_primary');
210
  $consentIds = (array)Helper::getConsentIdsByCookie();
211
  $consents = Consent::getInstance()->getList(array(
212
  'active' => array('value' => 1)
213
  ));
214
- $text = ($consentRequiredStatus) ? __('Accept', WP_GDPR_C_SLUG) : __('Save my settings', WP_GDPR_C_SLUG);
215
  $output = '<div class="wpgdprc wpgdprc-consent-modal" id="wpgdprc-consent-modal" aria-hidden="true">';
216
  $output .= '<div class="wpgdprc-consent-modal__overlay" tabindex="-1" data-micromodal-close>';
217
  $output .= '<div class="wpgdprc-consent-modal__container" role="dialog" aria-modal="true">';
@@ -234,7 +234,7 @@ class Action {
234
  $output .= '<div class="wpgdprc-consent-modal__information">';
235
  $output .= '<div class="wpgdprc-consent-modal__description" data-target="description">';
236
  $output .= sprintf(
237
- '<h3 class="wpgdprc-consent-modal__title">%s</h3>',
238
  Consent::getModalTitle()
239
  );
240
  $output .= apply_filters('wpgdprc_the_content', Consent::getModalExplanationText());
@@ -250,13 +250,13 @@ class Action {
250
  '<div class="wpgdprc-consent-modal__description" style="display: none;" data-target="%d">',
251
  $consent->getId()
252
  );
253
- $output .= sprintf('<h3 class="wpgdprc-consent-modal__title">%s</h3>', $consent->getTitle());
254
  $output .= apply_filters('wpgdprc_the_content', $consent->getDescription());
255
  if (!$consent->getRequired()) {
256
  $output .= '<div class="wpgdprc-checkbox">';
257
  $output .= '<label>';
258
  $output .= sprintf(
259
- '<input type="checkbox" value="%d" tabindex="1" %s />',
260
  $consent->getId(),
261
  checked(true, in_array($consent->getId(), $consentIds), false)
262
  );
@@ -276,6 +276,7 @@ class Action {
276
  $buttonStyling = array();
277
  if (!empty($consentModalButtonColor)) {
278
  $buttonStyling[] = 'background: ' . $consentModalButtonColor . ';';
 
279
  }
280
  if (!empty($consentModalButtonTextColor)) {
281
  $buttonStyling[] = 'color: ' . $consentModalButtonTextColor . ';';
@@ -341,4 +342,4 @@ class Action {
341
  }
342
  return self::$instance;
343
  }
344
- }
138
  }
139
 
140
  public function addConsentBar() {
141
+ $consentRequiredStatus = Action::checkAllConsentsRequired();
142
  $consentBarColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_color');
143
  $consentBarTextColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_text_color');
144
  $consentBarButtonColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_button_color_primary');
154
  $consentBarTextStyling[] = 'color: ' . $consentBarTextColor . ';';
155
  }
156
 
 
157
  $output = '<div class="wpgdprc wpgdprc-consent-bar" style="' . implode('', $consentBarStyling) . '">';
158
  $output .= '<div class="wpgdprc-consent-bar__container">';
159
  $output .= '<div class="wpgdprc-consent-bar__content" ' . (!empty($consentBarTextColor) ? 'style="' . implode('', $consentBarTextStyling) . '"' : '') . '>';
164
  $output .= '</div>';
165
  $output .= '<div class="wpgdprc-consent-bar__column">';
166
  $output .= sprintf(
167
+ '<a class="wpgdprc-consent-bar__settings" href="javascript:void(0);" data-micromodal-trigger="wpgdprc-consent-modal" aria-expanded="false" aria-haspopup="true">%s</a>',
168
+ Consent::getBarMoreInformationText()
169
  );
170
  $output .= '</div>';
171
  $output .= '<div class="wpgdprc-consent-bar__column">';
172
  $buttonStyling = array();
173
  if (!empty($consentBarButtonColor)) {
174
  $buttonStyling[] = 'background: ' . $consentBarButtonColor . ';';
175
+ $buttonStyling[] = 'border-color: ' . $consentBarButtonColor . ';';
176
  }
177
  if (!empty($consentBarButtonTextColor)) {
178
  $buttonStyling[] = 'color: ' . $consentBarButtonTextColor . ';';
179
  }
180
  $output .= sprintf(
181
  '<button class="wpgdprc-button wpgdprc-consent-bar__button" ' . (!empty($buttonStyling) ? 'style="' . implode('', $buttonStyling) . '"' : '') .'>%s</button>',
182
+ Consent::getBarButtonText()
183
  );
184
  $output .= '</div>';
185
  $output .= '</div>';
192
  * Checks if all the consents are required.
193
  * @return bool
194
  */
195
+ public static function checkAllConsentsRequired() {
196
  $totalRequiredConsents = Consent::getInstance()->getList(array(
197
  'active' => array('value' => 1),
198
  'required' => array('value' => 1)
204
  }
205
 
206
  public function addConsentModal() {
207
+ $consentRequiredStatus = Action::checkAllConsentsRequired();
208
+ $consentModalButtonColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_button_color_primary');
209
+ $consentModalButtonTextColor = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_button_color_secondary');
210
  $consentIds = (array)Helper::getConsentIdsByCookie();
211
  $consents = Consent::getInstance()->getList(array(
212
  'active' => array('value' => 1)
213
  ));
214
+ $text = ($consentRequiredStatus) ? Consent::getBarButtonText() : __('Save my settings', WP_GDPR_C_SLUG);
215
  $output = '<div class="wpgdprc wpgdprc-consent-modal" id="wpgdprc-consent-modal" aria-hidden="true">';
216
  $output .= '<div class="wpgdprc-consent-modal__overlay" tabindex="-1" data-micromodal-close>';
217
  $output .= '<div class="wpgdprc-consent-modal__container" role="dialog" aria-modal="true">';
234
  $output .= '<div class="wpgdprc-consent-modal__information">';
235
  $output .= '<div class="wpgdprc-consent-modal__description" data-target="description">';
236
  $output .= sprintf(
237
+ '<p class="wpgdprc-consent-modal__title">%s</p>',
238
  Consent::getModalTitle()
239
  );
240
  $output .= apply_filters('wpgdprc_the_content', Consent::getModalExplanationText());
250
  '<div class="wpgdprc-consent-modal__description" style="display: none;" data-target="%d">',
251
  $consent->getId()
252
  );
253
+ $output .= sprintf('<p class="wpgdprc-consent-modal__title">%s</p>', $consent->getTitle());
254
  $output .= apply_filters('wpgdprc_the_content', $consent->getDescription());
255
  if (!$consent->getRequired()) {
256
  $output .= '<div class="wpgdprc-checkbox">';
257
  $output .= '<label>';
258
  $output .= sprintf(
259
+ '<input type="checkbox" value="%d" %s />',
260
  $consent->getId(),
261
  checked(true, in_array($consent->getId(), $consentIds), false)
262
  );
276
  $buttonStyling = array();
277
  if (!empty($consentModalButtonColor)) {
278
  $buttonStyling[] = 'background: ' . $consentModalButtonColor . ';';
279
+ $buttonStyling[] = 'border-color: ' . $consentModalButtonColor . ';';
280
  }
281
  if (!empty($consentModalButtonTextColor)) {
282
  $buttonStyling[] = 'color: ' . $consentModalButtonTextColor . ';';
342
  }
343
  return self::$instance;
344
  }
345
+ }
Includes/Consent.php CHANGED
@@ -84,6 +84,29 @@ class Consent {
84
  return apply_filters('wpgdprc_consents_bar_explanation_text', wp_kses($output, Helper::getAllowedHTMLTags()));
85
  }
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  /**
88
  * @return array
89
  */
@@ -503,4 +526,4 @@ class Consent {
503
  global $wpdb;
504
  return $wpdb->base_prefix . 'wpgdprc_consents';
505
  }
506
- }
84
  return apply_filters('wpgdprc_consents_bar_explanation_text', wp_kses($output, Helper::getAllowedHTMLTags()));
85
  }
86
 
87
+ /**
88
+ * @return string
89
+ */
90
+ public static function getBarMoreInformationText() {
91
+ $consentRequiredStatus = Action::checkAllConsentsRequired();
92
+ $output = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_more_information_text');
93
+ if (empty($output)) {
94
+ $output = ($consentRequiredStatus) ? esc_attr__('More information', WP_GDPR_C_SLUG) : esc_attr__('My settings', WP_GDPR_C_SLUG);
95
+ }
96
+ return apply_filters('wpgdprc_consents_bar_more_information_text', wp_kses($output, Helper::getAllowedHTMLTags()));
97
+ }
98
+
99
+ /**
100
+ * @return string
101
+ */
102
+ public static function getBarButtonText() {
103
+ $output = get_option(WP_GDPR_C_PREFIX . '_settings_consents_bar_button_text');
104
+ if (empty($output)) {
105
+ $output = __('Accept', WP_GDPR_C_SLUG);
106
+ }
107
+ return apply_filters('wpgdprc_consents_bar_more_information_text', wp_kses($output, Helper::getAllowedHTMLTags()));
108
+ }
109
+
110
  /**
111
  * @return array
112
  */
526
  global $wpdb;
527
  return $wpdb->base_prefix . 'wpgdprc_consents';
528
  }
529
+ }
Includes/Extensions/WP.php CHANGED
@@ -21,7 +21,7 @@ class WP {
21
  public function addField($submitField = '') {
22
  $field = apply_filters(
23
  'wpgdprc_wordpress_field',
24
- '<p class="wpgdprc-checkbox"><label><input type="checkbox" name="wpgdprc" id="wpgdprc" value="1" /> ' . Integration::getCheckboxText(self::ID) . ' <abbr class="wpgdprc-required" title="' . Integration::getRequiredMessage(self::ID) . '">*</abbr></label></p>',
25
  $submitField
26
  );
27
  return $field . $submitField;
@@ -31,7 +31,7 @@ class WP {
31
  $field = apply_filters(
32
  'wpgdprc_wordpress_field',
33
  '<label style="font-size: 14px;"><i>' . __('This checkbox is checked because you are an admin', WP_GDPR_C_SLUG) . '</i></label>' .
34
- '<p class="wpgdprc-checkbox"><label><input type="checkbox" name="wpgdprc" id="wpgdprc" value="1" checked="checked" /> ' . Integration::getCheckboxText(self::ID) . ' <abbr class="required" title="' . esc_attr__('required', WP_GDPR_C_SLUG) . '">*</abbr></label></p>',
35
  $submitField
36
  );
37
  return $field . $submitField;
21
  public function addField($submitField = '') {
22
  $field = apply_filters(
23
  'wpgdprc_wordpress_field',
24
+ '<p class="wpgdprc-checkbox"><input type="checkbox" name="wpgdprc" id="wpgdprc" value="1" /><label for="wpgdprc">' . Integration::getCheckboxText(self::ID) . ' <abbr class="wpgdprc-required" title="' . Integration::getRequiredMessage(self::ID) . '">*</abbr></label></p>',
25
  $submitField
26
  );
27
  return $field . $submitField;
31
  $field = apply_filters(
32
  'wpgdprc_wordpress_field',
33
  '<label style="font-size: 14px;"><i>' . __('This checkbox is checked because you are an admin', WP_GDPR_C_SLUG) . '</i></label>' .
34
+ '<p class="wpgdprc-checkbox"><input type="checkbox" name="wpgdprc" id="wpgdprc" value="1" checked="checked" /><label for="wpgdprc">' . Integration::getCheckboxText(self::ID) . ' <abbr class="required" title="' . esc_attr__('required', WP_GDPR_C_SLUG) . '">*</abbr></label></p>',
35
  $submitField
36
  );
37
  return $field . $submitField;
Includes/Page.php CHANGED
@@ -31,6 +31,8 @@ class Page {
31
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_modal_title');
32
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_modal_explanation_text');
33
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_explanation_text');
 
 
34
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_color', array('default' => '#000000'));
35
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_text_color', array('default' => '#FFFFFF'));
36
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_button_color_primary', array('default' => '#FFFFFF'));
@@ -165,6 +167,17 @@ class Page {
165
  sprintf('<a target="_blank" href="//wordpress.org/support/plugin/wp-gdpr-compliance#new-post" rel="noopener noreferrer">%s</a>', __('Support forum', WP_GDPR_C_SLUG))
166
  ); ?></p>
167
  </div>
 
 
 
 
 
 
 
 
 
 
 
168
  </div>
169
 
170
  <div class="wpgdprc-background"><?php include(WP_GDPR_C_DIR_SVG . '/inline-waves.svg.php'); ?></div>
@@ -315,6 +328,8 @@ class Page {
315
  $optionNameAccessRequestFormCheckboxText = WP_GDPR_C_PREFIX . '_settings_access_request_form_checkbox_text';
316
  $optionNameDeleteRequestFormExplanationText = WP_GDPR_C_PREFIX . '_settings_delete_request_form_explanation_text';
317
  $optionNameConsentsBarExplanationText = WP_GDPR_C_PREFIX . '_settings_consents_bar_explanation_text';
 
 
318
  $optionNameConsentsModalTitle = WP_GDPR_C_PREFIX . '_settings_consents_modal_title';
319
  $optionNameConsentsModalExplanationText = WP_GDPR_C_PREFIX . '_settings_consents_modal_explanation_text';
320
  $optionNameBarColor = WP_GDPR_C_PREFIX . '_settings_consents_bar_color';
@@ -334,6 +349,8 @@ class Page {
334
  $accessRequestFormCheckboxText = Integration::getAccessRequestFormCheckboxText(false);
335
  $deleteRequestFormExplanationText = Integration::getDeleteRequestFormExplanationText(false);
336
  $consentsBarExplanationText = Consent::getBarExplanationText();
 
 
337
  $consentsModalTitle = Consent::getModalTitle();
338
  $consentsModalExplanationText = Consent::getModalExplanationText();
339
  ?>
@@ -505,6 +522,24 @@ class Page {
505
  placeholder="<?php echo htmlspecialchars($consentsBarExplanationText); ?>"><?php echo htmlspecialchars($consentsBarExplanationText); ?></textarea>
506
  </div>
507
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
508
  <div class="wpgdprc-setting">
509
  <label for="<?php echo $optionNameBarColor; ?>"><?php _e('Bar Color', WP_GDPR_C_SLUG); ?></label>
510
  <div class="wpgdprc-options">
@@ -520,7 +555,7 @@ class Page {
520
  </div>
521
  </div>
522
  <div class="wpgdprc-setting">
523
- <label for="<?php echo $optionNameBarButtonColorPrimary; ?>"><?php _e('Button Color Primary', WP_GDPR_C_SLUG); ?></label>
524
  <div class="wpgdprc-options">
525
  <input type="color" name="<?php echo $optionNameBarButtonColorPrimary; ?>"
526
  id="<?php echo $optionNameBarButtonColorPrimary; ?>"
@@ -528,7 +563,7 @@ class Page {
528
  </div>
529
  </div>
530
  <div class="wpgdprc-setting">
531
- <label for="<?php echo $optionNameBarButtonColorSecondary; ?>"><?php _e('Button Color Secondary', WP_GDPR_C_SLUG); ?></label>
532
  <div class="wpgdprc-options">
533
  <input type="color" name="<?php echo $optionNameBarButtonColorSecondary; ?>"
534
  id="<?php echo $optionNameBarButtonColorSecondary; ?>"
@@ -1027,4 +1062,4 @@ class Page {
1027
  }
1028
  return self::$instance;
1029
  }
1030
- }
31
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_modal_title');
32
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_modal_explanation_text');
33
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_explanation_text');
34
+ register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_more_information_text');
35
+ register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_button_text');
36
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_color', array('default' => '#000000'));
37
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_text_color', array('default' => '#FFFFFF'));
38
  register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_consents_bar_button_color_primary', array('default' => '#FFFFFF'));
167
  sprintf('<a target="_blank" href="//wordpress.org/support/plugin/wp-gdpr-compliance#new-post" rel="noopener noreferrer">%s</a>', __('Support forum', WP_GDPR_C_SLUG))
168
  ); ?></p>
169
  </div>
170
+
171
+ <div class="wpgdprc-sidebar-block">
172
+ <h3><?php _e('WordProof Timestamp', WP_GDPR_C_SLUG); ?></h3>
173
+ <p><?php echo __('Protect your copyright, improve trust and enjoy future SEO benefits by timestamping your content.', WP_GDPR_C_SLUG) ?></p>
174
+ <p><?php echo sprintf(
175
+ __('%s or read the %s', WP_GDPR_C_SLUG),
176
+ sprintf('<a target="_blank" href="https://wordproof.io/" rel="noopener noreferrer">%s</a>', __('Install WordProof Timestamp', WP_GDPR_C_SLUG)),
177
+ sprintf('<a target="_blank" href="https://wplift.com/" rel="noopener noreferrer">%s</a>', __('review by WPLift.com', WP_GDPR_C_SLUG))
178
+ ); ?></p>
179
+ <div class="wpgdprc-sidebar-block-ribbon"><?php echo __('New', WP_GDPR_C_SLUG) ?></div>
180
+ </div>
181
  </div>
182
 
183
  <div class="wpgdprc-background"><?php include(WP_GDPR_C_DIR_SVG . '/inline-waves.svg.php'); ?></div>
328
  $optionNameAccessRequestFormCheckboxText = WP_GDPR_C_PREFIX . '_settings_access_request_form_checkbox_text';
329
  $optionNameDeleteRequestFormExplanationText = WP_GDPR_C_PREFIX . '_settings_delete_request_form_explanation_text';
330
  $optionNameConsentsBarExplanationText = WP_GDPR_C_PREFIX . '_settings_consents_bar_explanation_text';
331
+ $optionNameConsentsBarMoreInformationText = WP_GDPR_C_PREFIX . '_settings_consents_bar_more_information_text';
332
+ $optionNameConsentsBarButtonText = WP_GDPR_C_PREFIX . '_settings_consents_bar_button_text';
333
  $optionNameConsentsModalTitle = WP_GDPR_C_PREFIX . '_settings_consents_modal_title';
334
  $optionNameConsentsModalExplanationText = WP_GDPR_C_PREFIX . '_settings_consents_modal_explanation_text';
335
  $optionNameBarColor = WP_GDPR_C_PREFIX . '_settings_consents_bar_color';
349
  $accessRequestFormCheckboxText = Integration::getAccessRequestFormCheckboxText(false);
350
  $deleteRequestFormExplanationText = Integration::getDeleteRequestFormExplanationText(false);
351
  $consentsBarExplanationText = Consent::getBarExplanationText();
352
+ $consentsBarMoreInformationText = Consent::getBarMoreInformationText();
353
+ $consentsBarButtonText = Consent::getBarButtonText();
354
  $consentsModalTitle = Consent::getModalTitle();
355
  $consentsModalExplanationText = Consent::getModalExplanationText();
356
  ?>
522
  placeholder="<?php echo htmlspecialchars($consentsBarExplanationText); ?>"><?php echo htmlspecialchars($consentsBarExplanationText); ?></textarea>
523
  </div>
524
  </div>
525
+ <div class="wpgdprc-setting">
526
+ <label for="<?php echo htmlspecialchars($optionNameConsentsBarMoreInformationText); ?>"><?php _e('Bar: More Information Text', WP_GDPR_C_SLUG); ?></label>
527
+ <div class="wpgdprc-options">
528
+ <input type="text" name="<?php echo htmlspecialchars($optionNameConsentsBarMoreInformationText); ?>"
529
+ class="regular-text" id="<?php echo htmlspecialchars($optionNameConsentsBarMoreInformationText); ?>"
530
+ placeholder="<?php echo htmlspecialchars($consentsBarMoreInformationText); ?>"
531
+ value="<?php echo htmlspecialchars($consentsBarMoreInformationText); ?>"/>
532
+ </div>
533
+ </div>
534
+ <div class="wpgdprc-setting">
535
+ <label for="<?php echo htmlspecialchars($optionNameConsentsBarButtonText); ?>"><?php _e('Bar: Accept Button Text', WP_GDPR_C_SLUG); ?></label>
536
+ <div class="wpgdprc-options">
537
+ <input type="text" name="<?php echo htmlspecialchars($optionNameConsentsBarButtonText); ?>"
538
+ class="regular-text" id="<?php echo htmlspecialchars($optionNameConsentsBarButtonText); ?>"
539
+ placeholder="<?php echo htmlspecialchars($consentsBarButtonText); ?>"
540
+ value="<?php echo htmlspecialchars($consentsBarButtonText); ?>"/>
541
+ </div>
542
+ </div>
543
  <div class="wpgdprc-setting">
544
  <label for="<?php echo $optionNameBarColor; ?>"><?php _e('Bar Color', WP_GDPR_C_SLUG); ?></label>
545
  <div class="wpgdprc-options">
555
  </div>
556
  </div>
557
  <div class="wpgdprc-setting">
558
+ <label for="<?php echo $optionNameBarButtonColorPrimary; ?>"><?php _e('Button Background Color', WP_GDPR_C_SLUG); ?></label>
559
  <div class="wpgdprc-options">
560
  <input type="color" name="<?php echo $optionNameBarButtonColorPrimary; ?>"
561
  id="<?php echo $optionNameBarButtonColorPrimary; ?>"
563
  </div>
564
  </div>
565
  <div class="wpgdprc-setting">
566
+ <label for="<?php echo $optionNameBarButtonColorSecondary; ?>"><?php _e('Button Text Color', WP_GDPR_C_SLUG); ?></label>
567
  <div class="wpgdprc-options">
568
  <input type="color" name="<?php echo $optionNameBarButtonColorSecondary; ?>"
569
  id="<?php echo $optionNameBarButtonColorSecondary; ?>"
1062
  }
1063
  return self::$instance;
1064
  }
1065
+ }
assets/css/admin.css CHANGED
@@ -266,6 +266,7 @@ table.wpgdprc-table tr.wpgdprc-table__row--expired {
266
  }
267
 
268
  .wpgdprc-sidebar-block {
 
269
  margin-bottom: 20px;
270
  padding: 20px;
271
  background: #F3F3F3;
@@ -284,6 +285,22 @@ table.wpgdprc-table tr.wpgdprc-table__row--expired {
284
  border: 0;
285
  }
286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  .wpgdprc-sidebar-donate {
288
  margin: 5px 0 0 10px;
289
  display: inline-block;
@@ -695,4 +712,4 @@ span.wpgdprc-instructions {
695
  .wpgdprc .button.button-primary {
696
  height: auto;
697
  }
698
- }
266
  }
267
 
268
  .wpgdprc-sidebar-block {
269
+ position: relative;
270
  margin-bottom: 20px;
271
  padding: 20px;
272
  background: #F3F3F3;
285
  border: 0;
286
  }
287
 
288
+ .wpgdprc-sidebar-block-ribbon {
289
+ position: absolute;
290
+ top: -10px;
291
+ right: -10px;
292
+ width: 40px;
293
+ height: 40px;
294
+ line-height: 40px;
295
+ font-size: 10px;
296
+ border-radius: 50%;
297
+ background-color: #4AA94F;
298
+ color: #fff;
299
+ font-weight: bold;
300
+ text-transform: uppercase;
301
+ text-align: center;
302
+ }
303
+
304
  .wpgdprc-sidebar-donate {
305
  margin: 5px 0 0 10px;
306
  display: inline-block;
712
  .wpgdprc .button.button-primary {
713
  height: auto;
714
  }
715
+ }
assets/css/admin.min.css ADDED
@@ -0,0 +1 @@
 
1
+ @keyframes wpgdprc-stars{1%{background-position:0}2%{background-position:30px}3%{background-position:60px}4%{background-position:90px}5%{background-position:120px}6%{background-position:150px}7%{background-position:180px}8%{background-position:210px}9%{background-position:240px}100%{background-position:240px}}.wpgdprc-clearfix:after,.wpgdprc-clearfix:before{content:" ";display:table}.wpgdprc-clearfix:after{clear:both}.tools_page_wp_gdpr_compliance{background:#fff}.tools_page_wp_gdpr_compliance #wpfooter{display:none!important}.wpgdprc *,.wpgdprc :after,.wpgdprc :before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}.wpgdprc{display:flex;padding:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;font-size:14px;line-height:1.4;color:#0a0a0a;flex-direction:row}.wpgdprc h1,.wpgdprc h2,.wpgdprc p{color:inherit}.wpgdprc p{font-size:inherit;line-height:inherit}.wpgdprc a{color:#4aa94f}.wpgdprc pre,.wpgdprc span.wpgdprc-pre{display:inline;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;font-family:monospace;font-style:normal}.wpgdprc .wpgdprc-status--processing,.wpgdprc .wpgdprc-status--removed{pointer-events:none}.wpgdprc .wpgdprc-status--processing{opacity:.5}.wpgdprc .wpgdprc-status--removed{opacity:.2;text-decoration:line-through}.wpgdprc .wpgdprc-status--error{background-color:#f7e4e1;border-color:#cc4b37;color:#cc4b37}div.wpgdprc-information{font-size:12px;color:#8a8a8a}div.wpgdprc-message{padding:10px;border:1px solid transparent}div.wpgdprc-message p:first-child{margin-top:0}div.wpgdprc-message p:last-child{margin-bottom:0}div.wpgdprc-message--notice{background:#fff3d9;border-color:#e7d996}div.wpgdprc-message--error{background:#f7e4e1;border-color:#cc4b37;color:#cc4b37}div.wpgdprc-message--success{background:#e1faea;border-color:#5b9c73;color:#5b9c73}div.wpgdprc-message+form.wpgdprc-form{margin-top:20px}.wpgdprc p.submit{padding-top:0;padding-bottom:0}.wpgdprc .button{vertical-align:top;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none;font-size:inherit;font-weight:700}.wpgdprc .button.button-primary{background:#4aa94f;border-top-color:#459d49;border-right-color:#419546;border-bottom-color:#419546;border-left-color:#419546}h1.wpgdprc-title{margin-bottom:20px;font-weight:700;font-size:36px}h1.wpgdprc-title span{font-weight:400;font-size:18px;color:#8a8a8a}div.wpgdprc-description{margin-top:20px;padding:20px;background:#f3f3f3;border-bottom:2px solid #dfdfdf;border-radius:5px}div.wpgdprc-description p{margin-bottom:0}div.wpgdprc-description p:first-child{margin-top:0}p.wpgdprc-disclaimer{font-size:small;color:#8a8a8a}div.wpgdprc-message+table.wpgdprc-table{margin-top:20px}table.wpgdprc-table{width:100%;border:1px solid #dbd6d6;table-layout:fixed}table.wpgdprc-table td,table.wpgdprc-table th{padding:5px;word-break:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}table.wpgdprc-table th{background-color:#dbd6d6;text-align:start}table.wpgdprc-table tr:nth-child(even){background-color:#f1f1f1}table.wpgdprc-table tr.wpgdprc-table__row--expired{opacity:.5}.wpgdprc-background{position:fixed;right:0;bottom:-10px;left:0;z-index:-1}.wpgdprc-background g{fill:#4aa94f}.wpgdprc-contents{flex:11}.wpgdprc-sidebar{padding:0 20px;flex:3;align-items:flex-start;align-content:flex-start}.wpgdprc-sidebar-block{position:relative;margin-bottom:20px;padding:20px;background:#f3f3f3;border-bottom:2px solid #dfdfdf;border-radius:5px}.wpgdprc-sidebar-block h3{display:inline-block;margin:0}.wpgdprc-sidebar-block--no-background{padding:0;background:0 0;border:0}.wpgdprc-sidebar-block-ribbon{position:absolute;top:-10px;right:-10px;width:40px;height:40px;line-height:40px;font-size:10px;border-radius:50%;background-color:#4aa94f;color:#fff;font-weight:700;text-transform:uppercase;text-align:center}.wpgdprc-sidebar-donate{margin:5px 0 0 10px;display:inline-block;float:right}.wpgdprc-navigation{border-bottom:1px solid #dbd6d6}.wpgdprc-navigation>a{position:relative;display:block;float:left;margin-bottom:-1px;padding:12px 16px;background-color:#e9e9e9;border:1px solid transparent;border-left-color:#f1f1f1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-decoration:none;font-weight:500;line-height:1;color:inherit}.wpgdprc-navigation>a.wpgdprc-active{background-color:#fff;color:#4aa94f;border-top-color:#dbd6d6;border-right-color:#dbd6d6;border-left-color:#dbd6d6}.wpgdprc-navigation span.wpgdprc-badge{position:absolute;top:-5px;right:-5px;display:block;width:20px;height:20px;background-color:#4aa94f;border-radius:50%;text-align:center;line-height:20px;font-size:11px;color:#fff;z-index:1}.wpgdprc-content{display:block;background-color:#fff;border:1px solid #dbd6d6;border-top:none;padding:20px}.wpgdprc-content>p:first-child{margin-top:0}.wpgdprc-list{margin:-20px 0;list-style:none}.wpgdprc-list li{margin-bottom:0}.wpgdprc-list>li{padding:20px 0;border-top:2px solid #ededed}.wpgdprc-list>li:first-child{border-top:none}.wpgdprc-checkbox{position:relative}.wpgdprc-checkbox input[type=checkbox]{display:none}.wpgdprc-checkbox input[type=checkbox]:checked:not(.processing)~.wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-inner{margin-left:0}.wpgdprc-checkbox input[type=checkbox]:checked:not(.processing)~.wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-switch{right:1px}.wpgdprc-checkbox input[type=checkbox].processing~label{pointer-events:none}.wpgdprc-checkbox input[type=checkbox].processing~.wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-inner{margin-left:-50%}.wpgdprc-checkbox input[type=checkbox].processing~.wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-switch{right:50%;-webkit-transform:translateX(50%);-moz-transform:translateX(50%);-ms-transform:translateX(50%);-o-transform:translateX(50%);transform:translateX(50%)}.wpgdprc-checkbox label{display:block;position:relative;user-select:none;z-index:1;font-weight:700}span.wpgdprc-instructions{position:absolute;top:50%;right:80px;transform:translateY(-50%);font-size:12px}.wpgdprc-switch{position:absolute;top:50%;right:0;transform:translateY(-50%);width:65px;font-size:12px}.wpgdprc-switch .wpgdprc-switch-label{display:block;margin:0;-webkit-border-radius:30px;-moz-border-radius:30px;border-radius:30px;overflow:hidden;cursor:pointer}.wpgdprc-switch .wpgdprc-switch-inner{margin-left:-100%;width:200%;transition:all .15s ease-in-out}.wpgdprc-switch .wpgdprc-switch-inner:after,.wpgdprc-switch .wpgdprc-switch-inner:before{float:left;width:50%;text-transform:uppercase;line-height:30px;color:#fff;content:''}.wpgdprc-switch .wpgdprc-switch-inner:before{padding-left:10px;background-color:#4aa94f}.wpgdprc-switch .wpgdprc-switch-inner:after{padding-right:10px;background-color:#0a0a0a;text-align:right}.wpgdprc-switch--reverse .wpgdprc-switch-inner:before{background-color:#ffae00}.wpgdprc-switch .wpgdprc-switch-switch{position:absolute;top:1px;right:36px;bottom:0;margin:0;width:28px;height:28px;background:#fff;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-webkit-box-shadow:0 0 3px rgba(0,0,0,.3);-moz-box-shadow:0 0 3px rgba(0,0,0,.3);box-shadow:0 0 3px rgba(0,0,0,.3);transition:all .15s ease-in-out}.wpgdprc-checkbox-data{margin-top:10px}.wpgdprc-checkbox-data p:first-child{margin-top:0}.wpgdprc-checklist-description{color:#8a8a8a}.wpgdprc-checklist-description+.wpgdprc-message{margin-top:10px}.wpgdprc-checklist-options{margin-top:10px}.wpgdprc-checklist-options .wpgdprc-checkbox input[type=checkbox]{display:block;position:absolute;top:50%;right:0;margin:0;transform:translateY(-50%)}.wpgdprc-checklist-options span.wpgdprc-instructions{right:30px}.wpgdprc-checklist-options li{margin-top:10px;padding:20px;background-color:#fafafa;border:1px solid #f0f0f0}.wpgdprc-checklist-options li:first-child{margin-top:0}.wpgdprc-setting{margin:1em 0}.wpgdprc-setting:after,.wpgdprc-setting:before{display:table;content:" "}.wpgdprc-setting:after{clear:both}.wpgdprc-setting:first-child{margin-top:0}.wpgdprc-setting:last-child{margin-bottom:0}.wpgdprc-setting label{display:inline-block;vertical-align:top}.wpgdprc-setting label input[type=checkbox]{margin-top:0!important}.wpgdprc-setting input[type=text],.wpgdprc-setting select,.wpgdprc-setting textarea{display:block;margin:0;width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;font-size:inherit}.wpgdprc-setting input[type=text],.wpgdprc-setting textarea{background-color:#fff}.wpgdprc-setting select{background-color:#fafafa}.wpgdprc-setting .wpgdprc-information{margin-top:.5em}.wpgdprc-setting .wpgdprc-information p{margin-top:0;margin-bottom:.5em}.wpgdprc-setting .wpgdprc-information p:last-child{margin-bottom:0}.wpgdprc-pagination{margin-top:20px;line-height:28px}.wpgdprc-pagination .page-numbers{display:inline-block;vertical-align:top;width:30px;background-color:#fff;border:1px solid #dbd6d6;text-align:center;text-decoration:none}.wpgdprc-pagination .page-numbers+.wpgdprc-pagination__results{margin-left:10px}.wpgdprc-stars{margin:15px auto;width:150px;height:30px;background:url(../svg/stars.svg);animation:wpgdprc-stars 4.5s steps(1,end) infinite;-webkit-animation:wpgdprc-stars 4.5s steps(1,end) infinite;-moz-animation:wpgdprc-stars 4.5s steps(1,end) infinite;-o-animation:wpgdprc-stars 4.5s steps(1,end) infinite}.CodeMirror{border:1px solid #ddd}@media screen and (max-width:639px){.wpgdprc-instructions{display:none}}@media screen and (max-width:782px){.wpgdprc-checklist-options span.wpgdprc-instructions{right:40px}}@media screen and (min-width:768px){.wpgdprc-setting label{width:100%;max-width:30%}.wpgdprc-options{float:right;width:100%;max-width:70%}}@media screen and (min-width:783px){.wpgdprc .button{height:34px;line-height:32px}}@media screen and (max-width:1400px){.wpgdprc{display:block}.wpgdprc-contents,.wpgdprc-sidebar{display:block;max-width:100%;width:100%}.wpgdprc-sidebar{display:flex;margin-top:30px;padding-right:0;padding-left:0}.wpgdprc-sidebar-block{margin-right:15px;margin-left:15px;width:33.33333%}}@media screen and (min-width:320px) and (max-width:840px){.wpgdprc-sidebar{display:block}.wpgdprc-sidebar-block{max-width:400px;width:100%;margin-right:auto;margin-left:auto}.wpgdprc .button.button-primary{height:auto}}
assets/css/front.css CHANGED
@@ -47,25 +47,34 @@ div.wpgdprc .wpgdprc-button {
47
  font-weight: bold;
48
  }
49
 
50
- div.wpgdprc .wpgdprc-button,
51
- div.wpgdprc .wpgdprc-button:hover,
52
- div.wpgdprc .wpgdprc-button:focus {
53
  background: #FFFFFF;
 
54
  text-decoration: none;
55
  color: #000000;
56
  }
57
 
58
- div.wpgdprc .wpgdprc-button.wpgdprc-button--active,
 
 
 
 
 
 
 
 
 
 
59
  div.wpgdprc .wpgdprc-button.wpgdprc-button--active:hover,
60
  div.wpgdprc .wpgdprc-button.wpgdprc-button--active:focus {
61
- background: #F3F3F3;
62
  }
63
 
64
  div.wpgdprc .wpgdprc-button--secondary,
65
  div.wpgdprc .wpgdprc-button--secondary:hover,
66
  div.wpgdprc .wpgdprc-button--secondary:focus {
67
  background: #000000;
68
- border-color: transparent;
69
  color: #FFFFFF;
70
  }
71
 
@@ -124,7 +133,8 @@ div.wpgdprc .wpgdprc-checkbox {
124
  }
125
 
126
  div.wpgdprc .wpgdprc-checkbox input[type="checkbox"] {
127
- display: none;
 
128
  }
129
 
130
  div.wpgdprc .wpgdprc-checkbox input[type="checkbox"]:checked ~ .wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-inner {
@@ -132,7 +142,7 @@ div.wpgdprc .wpgdprc-checkbox input[type="checkbox"]:checked ~ .wpgdprc-switch .
132
  }
133
 
134
  div.wpgdprc .wpgdprc-checkbox input[type="checkbox"]:checked ~ .wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-switch {
135
- right: 1px;
136
  margin-right: 0;
137
  }
138
 
@@ -163,6 +173,11 @@ div.wpgdprc .wpgdprc-switch .wpgdprc-switch-label {
163
  border-radius: 30px;
164
  overflow: hidden;
165
  cursor: pointer;
 
 
 
 
 
166
  }
167
 
168
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner {
@@ -200,10 +215,10 @@ div.wpgdprc .wpgdprc-switch--reverse .wpgdprc-switch-inner:before {
200
 
201
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-switch {
202
  position: absolute;
203
- top: 1px;
204
  right: 100%;
205
  bottom: 0;
206
- margin: 0 -29px 0 0;
207
  width: 28px;
208
  height: 28px;
209
  background: #FFFFFF;
@@ -269,7 +284,6 @@ div.wpgdprc-consent-bar div.wpgdprc-consent-bar__notice {
269
 
270
  div.wpgdprc-consent-bar .wpgdprc-consent-bar__button {
271
  padding: 5px 10px;
272
- border: none;
273
  }
274
 
275
  /**
@@ -293,7 +307,7 @@ div.wpgdprc-consent-modal[aria-hidden="true"] div.wpgdprc-consent-modal__overlay
293
  animation: wpgdprcFadeOut .3s cubic-bezier(0.0, 0.0, 0.2, 1);
294
  }
295
 
296
- div.wpgdprc-consent-modal h3.wpgdprc-consent-modal__title {
297
  margin-top: 0;
298
  margin-bottom: 1em;
299
  font-size: 16px;
@@ -348,14 +362,18 @@ div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close {
348
  line-height: 40px;
349
  }
350
 
351
- div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close,
352
- div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close:hover,
353
- div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close:focus {
354
  background: #FFFFFF;
355
  border: none;
356
  color: inherit;
357
  }
358
 
 
 
 
 
 
 
359
  div.wpgdprc-consent-modal nav.wpgdprc-consent-modal__navigation,
360
  div.wpgdprc-consent-modal div.wpgdprc-consent-modal__information {
361
  position: relative;
@@ -393,6 +411,7 @@ div.wpgdprc-consent-modal footer.wpgdprc-consent-modal__footer {
393
  padding: 0 30px;
394
  height: 80px;
395
  border-top: 1px solid #DBD6D6;
 
396
  }
397
 
398
  @media only screen and (min-width: 768px) {
@@ -433,4 +452,4 @@ abbr.wpgdprc-required + abbr.required {
433
  to {
434
  opacity: 0;
435
  }
436
- }
47
  font-weight: bold;
48
  }
49
 
50
+ div.wpgdprc .wpgdprc-button {
 
 
51
  background: #FFFFFF;
52
+ border-color: #FFFFFF;
53
  text-decoration: none;
54
  color: #000000;
55
  }
56
 
57
+ div.wpgdprc .wpgdprc-button:hover,
58
+ div.wpgdprc .wpgdprc-button:focus {
59
+ background: #000000 !important;
60
+ border-color: #FFFFFF !important;
61
+ color: #FFFFFF !important;
62
+ }
63
+
64
+ div.wpgdprc .wpgdprc-button.wpgdprc-button--active {
65
+ background: #DBD6D6;
66
+ }
67
+
68
  div.wpgdprc .wpgdprc-button.wpgdprc-button--active:hover,
69
  div.wpgdprc .wpgdprc-button.wpgdprc-button--active:focus {
70
+ color: #000000;
71
  }
72
 
73
  div.wpgdprc .wpgdprc-button--secondary,
74
  div.wpgdprc .wpgdprc-button--secondary:hover,
75
  div.wpgdprc .wpgdprc-button--secondary:focus {
76
  background: #000000;
77
+ border-color: #000000;
78
  color: #FFFFFF;
79
  }
80
 
133
  }
134
 
135
  div.wpgdprc .wpgdprc-checkbox input[type="checkbox"] {
136
+ opacity: 0;
137
+ position: absolute;
138
  }
139
 
140
  div.wpgdprc .wpgdprc-checkbox input[type="checkbox"]:checked ~ .wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-inner {
142
  }
143
 
144
  div.wpgdprc .wpgdprc-checkbox input[type="checkbox"]:checked ~ .wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-switch {
145
+ right: 4px;
146
  margin-right: 0;
147
  }
148
 
173
  border-radius: 30px;
174
  overflow: hidden;
175
  cursor: pointer;
176
+ border: #000 solid 3px;
177
+ }
178
+
179
+ div.wpgdprc .wpgdprc-checkbox input[type="checkbox"]:focus ~ .wpgdprc-switch .wpgdprc-switch-label {
180
+ border-color: #DBD6D6;
181
  }
182
 
183
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner {
215
 
216
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-switch {
217
  position: absolute;
218
+ top: 4px;
219
  right: 100%;
220
  bottom: 0;
221
+ margin: 0 -32px 0 0;
222
  width: 28px;
223
  height: 28px;
224
  background: #FFFFFF;
284
 
285
  div.wpgdprc-consent-bar .wpgdprc-consent-bar__button {
286
  padding: 5px 10px;
 
287
  }
288
 
289
  /**
307
  animation: wpgdprcFadeOut .3s cubic-bezier(0.0, 0.0, 0.2, 1);
308
  }
309
 
310
+ div.wpgdprc-consent-modal .wpgdprc-consent-modal__title {
311
  margin-top: 0;
312
  margin-bottom: 1em;
313
  font-size: 16px;
362
  line-height: 40px;
363
  }
364
 
365
+ div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close {
 
 
366
  background: #FFFFFF;
367
  border: none;
368
  color: inherit;
369
  }
370
 
371
+ div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close:hover,
372
+ div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close:focus {
373
+ background-color: #000000;
374
+ color: #FFFFFF;
375
+ }
376
+
377
  div.wpgdprc-consent-modal nav.wpgdprc-consent-modal__navigation,
378
  div.wpgdprc-consent-modal div.wpgdprc-consent-modal__information {
379
  position: relative;
411
  padding: 0 30px;
412
  height: 80px;
413
  border-top: 1px solid #DBD6D6;
414
+ background-color: #DBD6D6;
415
  }
416
 
417
  @media only screen and (min-width: 768px) {
452
  to {
453
  opacity: 0;
454
  }
455
+ }
assets/css/front.min.css ADDED
@@ -0,0 +1 @@
 
1
+ html.lity-active{overflow:hidden}div.wpgdprc{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-family:Verdana,Geneva,sans-serif;font-style:normal;font-variant:normal;font-weight:400;font-size:14px}div.wpgdprc *,div.wpgdprc :after,div.wpgdprc :before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}div.wpgdprc a,div.wpgdprc a:focus,div.wpgdprc a:hover{text-decoration:underline;color:inherit}div.wpgdprc p{font:inherit;color:inherit}div.wpgdprc button{cursor:pointer}div.wpgdprc .wpgdprc-button{display:inline-block;padding:10px;border:1px solid #dbd6d6;font-weight:700}div.wpgdprc .wpgdprc-button{background:#fff;border-color:#fff;text-decoration:none;color:#000}div.wpgdprc .wpgdprc-button:focus,div.wpgdprc .wpgdprc-button:hover{background:#000!important;border-color:#fff!important;color:#fff!important}div.wpgdprc .wpgdprc-button.wpgdprc-button--active{background:#dbd6d6}div.wpgdprc .wpgdprc-button.wpgdprc-button--active:focus,div.wpgdprc .wpgdprc-button.wpgdprc-button--active:hover{color:#000}div.wpgdprc .wpgdprc-button--secondary,div.wpgdprc .wpgdprc-button--secondary:focus,div.wpgdprc .wpgdprc-button--secondary:hover{background:#000;border-color:#000;color:#fff}div.wpgdprc div.wpgdprc-message{padding:10px;border:1px solid transparent}div.wpgdprc div.wpgdprc-message p:first-child{margin-top:0}div.wpgdprc div.wpgdprc-message p:last-child{margin-bottom:0}div.wpgdprc div.wpgdprc-message--notice{background:#fff3d9;border-color:#e7d996}div.wpgdprc div.wpgdprc-message--error{background:#f7e4e1;border-color:#cc4b37;color:#cc4b37}div.wpgdprc div.wpgdprc-message--success{background:#e1faea;border-color:#5b9c73;color:#5b9c73}div.wpgdprc .wpgdprc-status--processing,div.wpgdprc .wpgdprc-status--removed{pointer-events:none}div.wpgdprc .wpgdprc-status--processing{opacity:.5}div.wpgdprc .wpgdprc-status--removed{opacity:.2;text-decoration:line-through}div.wpgdprc .wpgdprc-status--error{background-color:#f7e4e1;border-color:#cc4b37;color:#cc4b37}div.wpgdprc .wpgdprc-checkbox{position:relative}div.wpgdprc .wpgdprc-checkbox input[type=checkbox]{opacity:0;position:absolute}div.wpgdprc .wpgdprc-checkbox input[type=checkbox]:checked~.wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-inner{margin-left:0}div.wpgdprc .wpgdprc-checkbox input[type=checkbox]:checked~.wpgdprc-switch .wpgdprc-switch-label .wpgdprc-switch-switch{right:4px;margin-right:0}div.wpgdprc .wpgdprc-checkbox label{display:inline-block;vertical-align:middle;position:relative;user-select:none;z-index:1;font-weight:700;cursor:pointer;color:#000}div.wpgdprc .wpgdprc-switch{display:inline-block;vertical-align:middle;position:relative;margin-right:10px;min-width:65px}div.wpgdprc .wpgdprc-switch .wpgdprc-switch-label{display:block;margin:0;-webkit-border-radius:30px;-moz-border-radius:30px;border-radius:30px;overflow:hidden;cursor:pointer;border:#000 solid 3px}div.wpgdprc .wpgdprc-checkbox input[type=checkbox]:focus~.wpgdprc-switch .wpgdprc-switch-label{border-color:#dbd6d6}div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner{display:block;margin-left:-100%;width:200%;transition:all .15s ease-in-out}div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:after,div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:before{float:left;width:50%;text-transform:uppercase;line-height:30px;font-size:12px;color:#fff;content:''}div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:before{padding:0 10px;background-color:#4aa94f}div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:after{padding-right:10px;background-color:#0a0a0a;text-align:right}div.wpgdprc .wpgdprc-switch--reverse .wpgdprc-switch-inner:before{background-color:#ffae00}div.wpgdprc .wpgdprc-switch .wpgdprc-switch-switch{position:absolute;top:4px;right:100%;bottom:0;margin:0 -32px 0 0;width:28px;height:28px;background:#fff;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-webkit-box-shadow:0 0 3px rgba(0,0,0,.3);-moz-box-shadow:0 0 3px rgba(0,0,0,.3);box-shadow:0 0 3px rgba(0,0,0,.3);transition:all .15s ease-in-out}div.wpgdprc-consent-bar{position:fixed;bottom:0;right:0;left:0;padding:10px 0;background:#000;text-align:center;z-index:999;animation:wpgdprcFadeIn .3s cubic-bezier(0,0,.2,1)}div.wpgdprc-consent-bar *,div.wpgdprc-consent-bar :after,div.wpgdprc-consent-bar :before{margin:0;font:inherit;color:inherit}div.wpgdprc-consent-bar div.wpgdprc-consent-bar__container{display:inline-block;vertical-align:top;position:relative}div.wpgdprc-consent-bar div.wpgdprc-consent-bar__column{padding:0 10px}div.wpgdprc-consent-bar div.wpgdprc-consent-bar__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;text-align:left;color:#fff}div.wpgdprc-consent-bar div.wpgdprc-consent-bar__notice{max-width:600px}div.wpgdprc-consent-bar .wpgdprc-consent-bar__button{padding:5px 10px}div.wpgdprc-consent-modal{display:none}div.wpgdprc-consent-modal.is-open{display:block!important}div.wpgdprc-consent-modal[aria-hidden=false] div.wpgdprc-consent-modal__overlay{animation:wpgdprcFadeIn .3s cubic-bezier(0,0,.2,1)}div.wpgdprc-consent-modal[aria-hidden=true] div.wpgdprc-consent-modal__overlay{animation:wpgdprcFadeOut .3s cubic-bezier(0,0,.2,1)}div.wpgdprc-consent-modal .wpgdprc-consent-modal__title{margin-top:0;margin-bottom:1em;font-size:16px;font-weight:700;color:#000}div.wpgdprc-consent-modal div.wpgdprc-consent-modal__description{color:#8a8a8a}div.wpgdprc-consent-modal div.wpgdprc-consent-modal__overlay{will-change:transform;display:-webkit-box;display:-ms-flexbox;display:flex;position:fixed;top:0;right:0;bottom:0;left:0;background:#000;background:rgba(0,0,0,.6);justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;z-index:999999}div.wpgdprc-consent-modal div.wpgdprc-consent-modal__container{position:relative;width:80%;width:80vw;height:80%;height:80vh;max-width:800px;background:#fff;border-top:10px solid #dbd6d6;overflow-y:auto}div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close{position:absolute;top:0;right:0;margin:0;padding:0;width:40px;height:40px;font-size:21px;line-height:40px}div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close{background:#fff;border:none;color:inherit}div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close:focus,div.wpgdprc-consent-modal button.wpgdprc-consent-modal__close:hover{background-color:#000;color:#fff}div.wpgdprc-consent-modal div.wpgdprc-consent-modal__information,div.wpgdprc-consent-modal nav.wpgdprc-consent-modal__navigation{position:relative;padding:30px}div.wpgdprc-consent-modal nav.wpgdprc-consent-modal__navigation{border-bottom:1px solid #dbd6d6}div.wpgdprc-consent-modal nav.wpgdprc-consent-modal__navigation>a{display:block;margin-top:10px}div.wpgdprc-consent-modal nav.wpgdprc-consent-modal__navigation>a:first-child{margin-top:0}div.wpgdprc-consent-modal div.wpgdprc-consent-modal__information{padding-bottom:110px}div.wpgdprc-consent-modal footer.wpgdprc-consent-modal__footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;right:0;bottom:0;left:0;padding:0 30px;height:80px;border-top:1px solid #dbd6d6;background-color:#dbd6d6}@media only screen and (min-width:768px){div.wpgdprc-consent-modal div.wpgdprc-consent-modal__information,div.wpgdprc-consent-modal nav.wpgdprc-consent-modal__navigation{float:left;min-height:100%}div.wpgdprc-consent-modal nav.wpgdprc-consent-modal__navigation{width:40%;border-right:1px solid #dbd6d6;border-bottom:none}div.wpgdprc-consent-modal div.wpgdprc-consent-modal__information{width:60%}}abbr.wpgdprc-required+abbr.required{display:none!important}@keyframes wpgdprcFadeIn{from{opacity:0}to{opacity:1}}@keyframes wpgdprcFadeOut{from{opacity:1}to{opacity:0}}
assets/js/admin.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e,t,s,c){"use strict";var r,a=wpgdprcData.ajaxURL,n=wpgdprcData.ajaxSecurity,o=(r=0,function(e,t){clearTimeout(r),r=setTimeout(e,t)}),p=e(".wpgdprc"),i=e('input[type="checkbox"]',e(".wpgdprc-checkbox, .wpgdprc-setting",p)),d=e(".wpgdprc-select-all",p),l=e(".wpgdprc-form--process-delete-requests"),u=function(e){var t=e.data();return t.option||(t.option=e.attr("name")),e.is("input")&&(t.value=e.val(),e.is('input[type="checkbox"]')&&(t.enabled=e.is(":checked"))),t},g=function(t,s,c){var r=t.slice(0,1);if(r.length>0){var o=e(".wpgdprc-message",s),p=e('tr[data-id="'+r[0]+'"]',s);p.removeClass("wpgdprc-status--error"),p.addClass("wpgdprc-status--processing"),o.attr("style","display: none;"),o.removeClass("wpgdprc-message--error"),o.empty(),setTimeout(function(){e.ajax({url:a,type:"POST",dataType:"JSON",data:{action:"wpgdprc_process_delete_request",security:n,data:{id:r[0]}},success:function(c){c&&(p.removeClass("wpgdprc-status--processing"),c.error?(p.addClass("wpgdprc-status--error"),o.html(c.error),o.addClass("wpgdprc-message--error"),o.removeAttr("style")):(t.splice(0,1),e('input[type="checkbox"]',p).remove(),p.addClass("wpgdprc-status--removed"),e(".dashicons-no",p).removeClass("dashicons-no").addClass("dashicons-yes"),g(t,s,500)))}})},c||0)}},h=function(){i.length&&i.on("change",function(t){e(this).data("option")&&(t.preventDefault(),function(t){t.addClass("processing");var c=t.closest(".wpgdprc-checkbox"),r=!!c.length&&c.next(".wpgdprc-checkbox-data");e.ajax({url:a,type:"POST",dataType:"JSON",data:{action:"wpgdprc_process_settings",security:n,data:u(t)},success:function(e){e&&(e.error?(t.is(":checked")&&t.prop("checked",!1),t.addClass("alert")):(r.length&&(t.is(":checked")?r.stop(!0,!0).slideDown("fast"):r.stop(!0,!0).slideUp("fast")),e.redirect&&(s.location.href=currentPage)))},complete:function(){t.removeClass("processing"),o(function(){t.removeClass("alert")},2e3)}})}(e(this)))})},f=function(){l.length&&l.on("submit",function(t){t.preventDefault();var s=e(this),c=e(".wpgdprc-checkbox",s);d.prop("checked",!1),g(function(t){var s=[];return t.length&&t.each(function(){var t=e(this),c=t.val();t.is(":checked")&&c>0&&s.push(c)}),s}(c),s)})};e(function(){if(p.length){h(),d.length&&d.on("change",function(){var t=e(this),s=t.is(":checked");e('tbody input[type="checkbox"]',t.closest("table")).prop("checked",s)}),f();var t=s.getElementById("wpgdprc_snippet");if(null!==t)CodeMirror.fromTextArea(t,{mode:"text/html",lineNumbers:!0,matchBrackets:!0,indentUnit:4})}})}(jQuery,window,document);
assets/js/front.js CHANGED
@@ -119,6 +119,33 @@
119
  }, (delay || 0));
120
  }
121
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  initConsentBar = function () {
123
  if (consentCookie !== null) {
124
  return;
@@ -128,6 +155,11 @@
128
  return;
129
  }
130
 
 
 
 
 
 
131
  $consentBar.style.display = 'block';
132
 
133
  var $button = $consentBar.querySelector('.wpgdprc-consent-bar__button');
@@ -147,10 +179,17 @@
147
  if (typeof MicroModal === 'undefined') {
148
  return;
149
  }
 
 
150
 
151
  MicroModal.init({
152
  disableScroll: true,
153
  disableFocus: true,
 
 
 
 
 
154
  onClose: function ($consentModal) {
155
  var $descriptions = $consentModal.querySelectorAll('.wpgdprc-consent-modal__description'),
156
  $buttons = $consentModal.querySelectorAll('.wpgdprc-consent-modal__navigation > a'),
@@ -171,6 +210,9 @@
171
  $checkboxes[i].checked = false;
172
  }
173
  }
 
 
 
174
  }
175
  });
176
 
@@ -223,6 +265,9 @@
223
  } else {
224
  _saveCookie(consentCookieName, 'decline');
225
  }
 
 
 
226
  }
227
 
228
  window.location.reload(true);
@@ -386,4 +431,4 @@
386
  initFormAccessRequest();
387
  initFormDeleteRequest();
388
  });
389
- })(window, document);
119
  }, (delay || 0));
120
  }
121
  },
122
+ trapFocus = function(element) {
123
+ var focusableEls = element.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])'),
124
+ firstFocusableEl = focusableEls[0],
125
+ lastFocusableEl = focusableEls[focusableEls.length - 1],
126
+ KEYCODE_TAB = 9;
127
+
128
+ element.addEventListener('keydown', function(e) {
129
+ var isTabPressed = (e.key === 'Tab' || e.keyCode === KEYCODE_TAB);
130
+
131
+ if (!isTabPressed) {
132
+ return;
133
+ }
134
+
135
+ if ( e.shiftKey ) /* shift + tab */ {
136
+ if (document.activeElement === firstFocusableEl) {
137
+ lastFocusableEl.focus();
138
+ e.preventDefault();
139
+ }
140
+ } else /* tab */ {
141
+ if (document.activeElement === lastFocusableEl) {
142
+ firstFocusableEl.focus();
143
+ e.preventDefault();
144
+ }
145
+ }
146
+
147
+ });
148
+ },
149
  initConsentBar = function () {
150
  if (consentCookie !== null) {
151
  return;
155
  return;
156
  }
157
 
158
+ // Move consent bar to the be the first element in the <body>
159
+ var $body = document.querySelector('body');
160
+ $body.prepend($consentBar);
161
+
162
+ // Show bar
163
  $consentBar.style.display = 'block';
164
 
165
  var $button = $consentBar.querySelector('.wpgdprc-consent-bar__button');
179
  if (typeof MicroModal === 'undefined') {
180
  return;
181
  }
182
+ var $modalTrigger = document.querySelector('[data-micromodal-trigger=wpgdprc-consent-modal]');
183
+ trapFocus($consentModal);
184
 
185
  MicroModal.init({
186
  disableScroll: true,
187
  disableFocus: true,
188
+ onShow: function() {
189
+ if ($modalTrigger) {
190
+ $modalTrigger.setAttribute('aria-expanded', 'true');
191
+ }
192
+ },
193
  onClose: function ($consentModal) {
194
  var $descriptions = $consentModal.querySelectorAll('.wpgdprc-consent-modal__description'),
195
  $buttons = $consentModal.querySelectorAll('.wpgdprc-consent-modal__navigation > a'),
210
  $checkboxes[i].checked = false;
211
  }
212
  }
213
+ if ($modalTrigger) {
214
+ $modalTrigger.setAttribute('aria-expanded', 'false');
215
+ }
216
  }
217
  });
218
 
265
  } else {
266
  _saveCookie(consentCookieName, 'decline');
267
  }
268
+ } else {
269
+ // Accept all
270
+ _saveCookie(consentCookieName, 'accept');
271
  }
272
 
273
  window.location.reload(true);
431
  initFormAccessRequest();
432
  initFormDeleteRequest();
433
  });
434
+ })(window, document);
assets/js/front.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e,t,r){"use strict";if("undefined"!=typeof wpgdprcData){var n,c,o=function(e,r,n){var c=new Date;r=r||"",n=n||365,c.setTime(c.getTime()+24*n*60*60*1e3),t.cookie=e+"="+encodeURIComponent(r)+"; expires="+c.toGMTString()+"; path="+u},a=function(e){return Object.keys(e).map(function(t){var r=e[t];return"object"==typeof r&&(r=JSON.stringify(r)),t+"="+r}).join("&")},s=!1,i=wpgdprcData.ajaxURL,l=wpgdprcData.ajaxSecurity,d=wpgdprcData.isMultisite,p=wpgdprcData.blogId,u=wpgdprcData.path,g=void 0!==wpgdprcData.consents?wpgdprcData.consents:[],f=function(e,t,r,n){var c=r.querySelector(".wpgdprc-message"),o=t.slice(0,1);if(o.length>0){var s=r.querySelector('tr[data-id="'+o[0]+'"]');s.classList.remove("wpgdprc-status--error"),s.classList.add("wpgdprc-status--processing"),c.setAttribute("style","display: none;"),c.classList.remove("wpgdprc-message--error"),c.innerHTML="",setTimeout(function(){var n=new XMLHttpRequest;e.data.value=o[0],n.open("POST",i),n.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8"),n.send(a(e)),n.addEventListener("load",function(){if(n.response){var o=JSON.parse(n.response);s.classList.remove("wpgdprc-status--processing"),o.error?(s.classList.add("wpgdprc-status--error"),c.innerHTML=o.error,c.classList.add("wpgdprc-message--error"),c.removeAttribute("style")):(t.splice(0,1),s.querySelector('input[type="checkbox"]').remove(),s.classList.add("wpgdprc-status--removed"),f(e,t,r,500))}})},n||0)}},v=function(){var r=t.querySelector("#wpgdprc-consent-modal");if(null!==r&&"undefined"!=typeof MicroModal){var c,a,s,i,l=t.querySelector("[data-micromodal-trigger=wpgdprc-consent-modal]");a=(c=r).querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])'),s=a[0],i=a[a.length-1],c.addEventListener("keydown",function(e){("Tab"===e.key||9===e.keyCode)&&(e.shiftKey?t.activeElement===s&&(i.focus(),e.preventDefault()):t.activeElement===i&&(s.focus(),e.preventDefault()))}),MicroModal.init({disableScroll:!0,disableFocus:!0,onShow:function(){l&&l.setAttribute("aria-expanded","true")},onClose:function(e){var t=e.querySelectorAll(".wpgdprc-consent-modal__description"),r=e.querySelectorAll(".wpgdprc-consent-modal__navigation > a"),n=e.querySelectorAll('input[type="checkbox"]');if(t.length>0)for(var c=0;c<t.length;c++)t[c].style.display=0===c?"block":"none";if(r.length>0)for(c=0;c<r.length;c++)r[c].classList.remove("wpgdprc-button--active");if(n.length>0)for(c=0;c<n.length;c++)n[c].checked=!1;l&&l.setAttribute("aria-expanded","false")}});var d=t.querySelector(".wpgdprc-consents-settings-link");null!==d&&d.addEventListener("click",function(e){e.preventDefault(),MicroModal.show("wpgdprc-consent-modal")});var p=r.querySelectorAll(".wpgdprc-consent-modal__navigation > a");if(p.length>0)for(var u=r.querySelectorAll(".wpgdprc-consent-modal__description"),g=0;g<p.length;g++)p[g].addEventListener("click",function(e){e.preventDefault();var t=r.querySelector('.wpgdprc-consent-modal__description[data-target="'+this.dataset.target+'"]');if(null!==t){for(var n=0;n<p.length;n++)p[n].classList.remove("wpgdprc-button--active");this.classList.add("wpgdprc-button--active");for(n=0;n<u.length;n++)u[n].style.display="none";t.style.display="block"}});var f=r.querySelector(".wpgdprc-button--secondary");null!==f&&f.addEventListener("click",function(t){t.preventDefault();var c=r.querySelectorAll('input[type="checkbox"]'),a=[];if(c.length>0){for(var s=0;s<c.length;s++){var i=c[s],l=i.value;!0!==i.checked||isNaN(l)||a.push(parseInt(l))}a.length>0?o(n,a):o(n,"decline")}else o(n,"accept");e.location.reload(!0)})}},y=function(){if("undefined"!=typeof postscribe)for(var e=function(e){var r=function(e){var r;switch(e){case"head":r=t.head;break;case"body":if(null===(r=t.querySelector("#wpgdprc-consent-body"))){var n=t.createElement("div");n.id="wpgdprc-consent-body",t.body.prepend(n),r="#"+n.id}break;case"footer":r=t.body}return r}(e.placement);null!==r&&postscribe(r,e.content)},r=null!==c&&"accept"!==c?c.split(","):[],n=0;n<g.length;n++)if(g.hasOwnProperty(n)){var o=g[n];(r.indexOf(o.id)>=0||o.required||"accept"===c)&&e(o)}},w=function(){var e=t.querySelectorAll(".wpgdprc-form--delete-request");e.length<1||e.forEach(function(e){var t=e.querySelector(".wpgdprc-select-all");e.addEventListener("submit",function(e){e.preventDefault();var r=e.target,n=r.querySelectorAll(".wpgdprc-checkbox"),c={action:"wpgdprc_process_action",security:l,data:{type:"delete_request",token:wpgdprcData.token,settings:JSON.parse(r.dataset.wpgdprc)}};t.checked=!1,f(c,function(e){var t=[];return e.length&&e.forEach(function(e){var r=parseInt(e.value);e.checked&&r>0&&t.push(r)}),t}(n),r)}),null!==t&&t.addEventListener("change",function(t){var r=t.target.checked;e.querySelectorAll(".wpgdprc-checkbox").forEach(function(e){e.checked=r})})})};t.addEventListener("DOMContentLoaded",function(){"object"==typeof g&&g.length>0&&(n=(d?p+"-wpgdprc-consent-":"wpgdprc-consent-")+wpgdprcData.consentVersion,c=function(e){if(e)for(var r=encodeURIComponent(e)+"=",n=t.cookie.split(";"),c=0;c<n.length;c++){for(var o=n[c];" "===o.charAt(0);)o=o.substring(1,o.length);if(0===o.indexOf(r))return decodeURIComponent(o.substring(r.length,o.length))}return null}(n),function(){if(null===c){var r=t.querySelector(".wpgdprc-consent-bar");if(null!==r){t.querySelector("body").prepend(r),r.style.display="block";var a=r.querySelector(".wpgdprc-consent-bar__button");null!==a&&a.addEventListener("click",function(t){t.preventDefault(),o(n,"accept"),e.location.reload(!0)})}}}(),v(),y()),function(){var e=t.querySelector(".wpgdprc-form--access-request");if(null!==e){var r=e.querySelector(".wpgdprc-message"),n=e.querySelector("#wpgdprc-form__email"),c=e.querySelector("#wpgdprc-form__consent");e.addEventListener("submit",function(t){if(t.preventDefault(),!s){s=!0,r.style.display="none",r.classList.remove("wpgdprc-message--success","wpgdprc-message--error"),r.innerHTML="";var o={action:"wpgdprc_process_action",security:l,data:{type:"access_request",email:n.value,consent:c.checked}},d=new XMLHttpRequest;o=a(o),d.open("POST",i,!0),d.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8"),d.send(o),d.addEventListener("load",function(){if(d.response){var t=JSON.parse(d.response);t.message&&(e.reset(),n.blur(),r.innerHTML=t.message,r.classList.add("wpgdprc-message--success"),r.removeAttribute("style")),t.error&&(n.focus(),r.innerHTML=t.error,r.classList.add("wpgdprc-message--error"),r.removeAttribute("style"))}s=!1})}})}}(),w()})}}(window,document);
languages/wp-gdpr-compliance.pot CHANGED
@@ -2,14 +2,14 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: WP GDPR Compliance\n"
5
- "POT-Creation-Date: 2019-05-17 16:07+0200\n"
6
  "Last-Translator: \n"
7
  "Language-Team: Van Ons <info@van-ons.nl>\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
  "PO-Revision-Date: \n"
12
- "X-Generator: Poedit 2.2.1\n"
13
  "X-Poedit-SourceCharset: UTF-8\n"
14
  "X-Poedit-KeywordsList: __;_e;_ngettext:1,2;_n;_ngettext_noop:1,2;_n_noop:1,2;"
15
  "_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;"
@@ -33,7 +33,7 @@ msgstr ""
33
  msgid "More information"
34
  msgstr ""
35
 
36
- #: Includes/Action.php:157 Includes/Page.php:492 Includes/Shortcode.php:169
37
  msgid "My settings"
38
  msgstr ""
39
 
@@ -45,14 +45,14 @@ msgstr ""
45
  msgid "Save my settings"
46
  msgstr ""
47
 
48
- #: Includes/Action.php:230 Includes/Page.php:755
49
  msgid "(no title)"
50
  msgstr ""
51
 
52
  #: Includes/Action.php:243 Includes/Helper.php:116 Includes/Helper.php:174
53
- #: Includes/Page.php:260 Includes/Page.php:355 Includes/Page.php:370
54
- #: Includes/Page.php:431 Includes/Page.php:487 Includes/Page.php:841
55
- #: Includes/Page.php:947 Includes/Shortcode.php:164
56
  msgid "Note"
57
  msgstr ""
58
 
@@ -268,15 +268,15 @@ msgstr ""
268
  msgid "Do not wrap my code snippet"
269
  msgstr ""
270
 
271
- #: Includes/Consent.php:306 Includes/Page.php:669
272
  msgid "Head"
273
  msgstr ""
274
 
275
- #: Includes/Consent.php:307 Includes/Page.php:674
276
  msgid "Body"
277
  msgstr ""
278
 
279
- #: Includes/Consent.php:308 Includes/Page.php:679
280
  msgid "Footer"
281
  msgstr ""
282
 
@@ -303,7 +303,7 @@ msgid "Display Name"
303
  msgstr ""
304
 
305
  #: Includes/Data.php:54 Includes/Data.php:63 Includes/Data.php:70
306
- #: Includes/Page.php:957
307
  msgid "Email Address"
308
  msgstr ""
309
 
@@ -323,7 +323,7 @@ msgstr ""
323
  msgid "Content"
324
  msgstr ""
325
 
326
- #: Includes/Data.php:64 Includes/Page.php:854 Includes/Page.php:958
327
  msgid "IP Address"
328
  msgstr ""
329
 
@@ -518,7 +518,7 @@ msgid "Activate for this form:"
518
  msgstr ""
519
 
520
  #: Includes/Integration.php:141 Includes/Integration.php:185
521
- #: Includes/Integration.php:220 Includes/Page.php:462
522
  msgid "Checkbox text"
523
  msgstr ""
524
 
@@ -549,7 +549,7 @@ msgstr ""
549
  msgid "You need to accept this checkbox."
550
  msgstr ""
551
 
552
- #: Includes/Integration.php:302 Includes/Page.php:342 Includes/Page.php:394
553
  msgid "Privacy Policy"
554
  msgstr ""
555
 
@@ -566,7 +566,7 @@ msgid ""
566
  "request. When your data is anonymised you will receive an email confirmation."
567
  msgstr ""
568
 
569
- #: Includes/Integration.php:379 Includes/Page.php:834
570
  msgid "WordPress Comments"
571
  msgstr ""
572
 
@@ -598,7 +598,7 @@ msgstr ""
598
  msgid "Gravity Forms"
599
  msgstr ""
600
 
601
- #: Includes/Integration.php:413 Includes/Page.php:836
602
  msgid "WooCommerce"
603
  msgstr ""
604
 
@@ -612,7 +612,7 @@ msgstr ""
612
  msgid "Integrations"
613
  msgstr ""
614
 
615
- #: Includes/Page.php:70 Includes/Page.php:480
616
  msgid "Consents"
617
  msgstr ""
618
 
@@ -672,32 +672,59 @@ msgstr ""
672
  msgid "Support forum"
673
  msgstr ""
674
 
675
- #: Includes/Page.php:200
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
676
  msgid "Enable:"
677
  msgstr ""
678
 
679
- #: Includes/Page.php:227
680
  #, php-format
681
  msgid "This plugin is outdated. %s supports version %s and up."
682
  msgstr ""
683
 
684
- #: Includes/Page.php:236
685
  msgid "Couldn't find any supported plugins installed."
686
  msgstr ""
687
 
688
- #: Includes/Page.php:237
689
  msgid "The following plugins are supported as of now:"
690
  msgstr ""
691
 
692
- #: Includes/Page.php:243
693
  msgid "More plugins will be added in the future."
694
  msgstr ""
695
 
696
- #: Includes/Page.php:261
697
  msgid "We think you might have a mail plugin installed."
698
  msgstr ""
699
 
700
- #: Includes/Page.php:264
701
  msgid ""
702
  "Do you know where you got your email database from? Did you ask all the "
703
  "people on your newsletter(s) if they consent to receiving it? GDPR requires "
@@ -705,45 +732,45 @@ msgid ""
705
  "permission to mail them."
706
  msgstr ""
707
 
708
- #: Includes/Page.php:267
709
  msgid ""
710
  "Below we ask you what private data you currently collect and provide you "
711
  "with tips to comply."
712
  msgstr ""
713
 
714
- #: Includes/Page.php:344 Includes/Page.php:420
715
  msgid "Activate"
716
  msgstr ""
717
 
718
- #: Includes/Page.php:348
719
  msgid "Activate external links"
720
  msgstr ""
721
 
722
- #: Includes/Page.php:357
723
  msgid "Enabling this will allow you to use external Privacy Policy instances"
724
  msgstr ""
725
 
726
- #: Includes/Page.php:372
727
  msgid "Currently you do not have a privacy policy page selected"
728
  msgstr ""
729
 
730
- #: Includes/Page.php:384
731
  msgid "External Privacy Policy Link"
732
  msgstr ""
733
 
734
- #: Includes/Page.php:399 Includes/Page.php:449
735
  msgid "Select an option"
736
  msgstr ""
737
 
738
- #: Includes/Page.php:408
739
  msgid "Link text"
740
  msgstr ""
741
 
742
- #: Includes/Page.php:415
743
  msgid "Request User Data"
744
  msgstr ""
745
 
746
- #: Includes/Page.php:417
747
  msgid ""
748
  "Allow your site's visitors to request their data stored in the WordPress "
749
  "database (comments, WooCommerce orders etc.). Data found is send to their "
@@ -751,30 +778,30 @@ msgid ""
751
  "data anonymised."
752
  msgstr ""
753
 
754
- #: Includes/Page.php:424
755
  msgid "Activate page"
756
  msgstr ""
757
 
758
- #: Includes/Page.php:433
759
  #, php-format
760
  msgid ""
761
  "Enabling this will create one private page containing the necessary "
762
  "shortcode: %s. You can determine when and how to publish this page yourself."
763
  msgstr ""
764
 
765
- #: Includes/Page.php:444
766
  msgid "Page"
767
  msgstr ""
768
 
769
- #: Includes/Page.php:456
770
  msgid "Click here to edit this page"
771
  msgstr ""
772
 
773
- #: Includes/Page.php:471
774
  msgid "Anonymise request explanation"
775
  msgstr ""
776
 
777
- #: Includes/Page.php:482
778
  msgid ""
779
  "Your visitors can give permission to all of the created Consents (scripts) "
780
  "through a Consent bar at the bottom of their screen. There they can also "
@@ -782,123 +809,123 @@ msgid ""
782
  "Consents. Once their settings are saved the bar disappears for 365 days."
783
  msgstr ""
784
 
785
- #: Includes/Page.php:489
786
  #, php-format
787
  msgid ""
788
  "Let your visitors re-access their settings by placing a link to the modal "
789
  "with the shortcode %s or add the \"%s\" class to a menu item."
790
  msgstr ""
791
 
792
- #: Includes/Page.php:501
793
  msgid "Bar: Explanation"
794
  msgstr ""
795
 
796
- #: Includes/Page.php:509
797
  msgid "Bar Color"
798
  msgstr ""
799
 
800
- #: Includes/Page.php:516
801
  msgid "Bar Text Color"
802
  msgstr ""
803
 
804
- #: Includes/Page.php:523
805
  msgid "Button Color Primary"
806
  msgstr ""
807
 
808
- #: Includes/Page.php:531
809
  msgid "Button Color Secondary"
810
  msgstr ""
811
 
812
- #: Includes/Page.php:539
813
  msgid "Modal: Title"
814
  msgstr ""
815
 
816
- #: Includes/Page.php:548
817
  msgid "Modal: Explanation"
818
  msgstr ""
819
 
820
- #: Includes/Page.php:592
821
  msgid "Add New Consent"
822
  msgstr ""
823
 
824
- #: Includes/Page.php:594 Includes/Page.php:740 Includes/Page.php:987
825
  msgid "Active"
826
  msgstr ""
827
 
828
- #: Includes/Page.php:597 Includes/Page.php:690 Includes/Page.php:759
829
- #: Includes/Page.php:779 wp-gdpr-compliance.php:378 wp-gdpr-compliance.php:414
830
  msgid "Yes"
831
  msgstr ""
832
 
833
- #: Includes/Page.php:602 Includes/Page.php:735
834
  msgid "Title"
835
  msgstr ""
836
 
837
- #: Includes/Page.php:607
838
  msgid "e.g. \"Google Analytics\" or \"Advertising\""
839
  msgstr ""
840
 
841
- #: Includes/Page.php:612
842
  msgid "Description"
843
  msgstr ""
844
 
845
- #: Includes/Page.php:618
846
  msgid ""
847
  "Describe your consent script as thoroughly as possible. %privacy_policy% "
848
  "will not work."
849
  msgstr ""
850
 
851
- #: Includes/Page.php:623
852
  msgid "Code Snippet"
853
  msgstr ""
854
 
855
- #: Includes/Page.php:629
856
  msgid "Code snippets for Google Analytics, Facebook Pixel, etc."
857
  msgstr ""
858
 
859
- #: Includes/Page.php:634
860
  msgid "Code Wrap"
861
  msgstr ""
862
 
863
- #: Includes/Page.php:651
864
  msgid "Placement"
865
  msgstr ""
866
 
867
- #: Includes/Page.php:670
868
  msgid "Snippet will be added at the end of the HEAD tag."
869
  msgstr ""
870
 
871
- #: Includes/Page.php:675
872
  msgid "Snippet will be added directly after the BODY tag."
873
  msgstr ""
874
 
875
- #: Includes/Page.php:680
876
  msgid "Snippet will be added at the end of the BODY tag."
877
  msgstr ""
878
 
879
- #: Includes/Page.php:687 Includes/Page.php:736
880
  msgid "Required"
881
  msgstr ""
882
 
883
- #: Includes/Page.php:693
884
  msgid ""
885
  "Ticking this checkbox means this Consent will always be triggered so users "
886
  "cannot opt-in or opt-out."
887
  msgstr ""
888
 
889
- #: Includes/Page.php:698
890
  msgid "Update"
891
  msgstr ""
892
 
893
- #: Includes/Page.php:698
894
  msgid "Add"
895
  msgstr ""
896
 
897
- #: Includes/Page.php:700
898
  msgid "Back to overview"
899
  msgstr ""
900
 
901
- #: Includes/Page.php:719
902
  msgid ""
903
  "Ask your visitors for permission to enable certain scripts for tracking or "
904
  "advertising purposes. Add a Consent for each type of script you are "
@@ -906,119 +933,119 @@ msgid ""
906
  "given."
907
  msgstr ""
908
 
909
- #: Includes/Page.php:721
910
  msgctxt "consent"
911
  msgid "Add New"
912
  msgstr ""
913
 
914
- #: Includes/Page.php:725
915
  msgid ""
916
  "Click this button if you want to reset the consent bar, this means that the "
917
  "consent bar will appear again for all users."
918
  msgstr ""
919
 
920
- #: Includes/Page.php:734
921
  msgid "Consent"
922
  msgstr ""
923
 
924
- #: Includes/Page.php:737
925
  msgid "Modified at"
926
  msgstr ""
927
 
928
- #: Includes/Page.php:738
929
  msgid "Created at"
930
  msgstr ""
931
 
932
- #: Includes/Page.php:739 Includes/Page.php:857
933
  msgid "Action"
934
  msgstr ""
935
 
936
- #: Includes/Page.php:759 Includes/Page.php:779 wp-gdpr-compliance.php:379
937
  #: wp-gdpr-compliance.php:415
938
  msgid "No"
939
  msgstr ""
940
 
941
- #: Includes/Page.php:769
942
  msgid "Edit"
943
  msgstr ""
944
 
945
- #: Includes/Page.php:774
946
  msgid "Remove"
947
  msgstr ""
948
 
949
- #: Includes/Page.php:802 Includes/Page.php:918 Includes/Page.php:1010
950
  #, php-format
951
  msgid "%d of %d results found"
952
  msgstr ""
953
 
954
- #: Includes/Page.php:806
955
  msgid "No consents found."
956
  msgstr ""
957
 
958
- #: Includes/Page.php:830
959
  msgid ""
960
  "Anonymise a request by ticking the checkbox and clicking on the green "
961
  "anonymise button below."
962
  msgstr ""
963
 
964
- #: Includes/Page.php:832
965
  msgid "WordPress Users"
966
  msgstr ""
967
 
968
- #: Includes/Page.php:842 Includes/Page.php:948
969
  #, php-format
970
  msgid "Requests are automatically anonymised after %d days."
971
  msgstr ""
972
 
973
- #: Includes/Page.php:852
974
  msgid "Request"
975
  msgstr ""
976
 
977
- #: Includes/Page.php:853
978
  msgid "Type"
979
  msgstr ""
980
 
981
- #: Includes/Page.php:855 Includes/Page.php:959
982
  msgid "Date"
983
  msgstr ""
984
 
985
- #: Includes/Page.php:856
986
  msgid "Processed"
987
  msgstr ""
988
 
989
- #: Includes/Page.php:878
990
  msgid "View"
991
  msgstr ""
992
 
993
- #: Includes/Page.php:880
994
  msgid "N/A"
995
  msgstr ""
996
 
997
- #: Includes/Page.php:899
998
  msgid "Anonymise selected request(s)"
999
  msgstr ""
1000
 
1001
- #: Includes/Page.php:924 Includes/Page.php:1016
1002
  msgid "No requests found."
1003
  msgstr ""
1004
 
1005
- #: Includes/Page.php:955
1006
  msgid "ID"
1007
  msgstr ""
1008
 
1009
- #: Includes/Page.php:956
1010
  msgid "Requests to Process"
1011
  msgstr ""
1012
 
1013
- #: Includes/Page.php:960
1014
  msgid "Status"
1015
  msgstr ""
1016
 
1017
- #: Includes/Page.php:979
1018
  msgid "Manage"
1019
  msgstr ""
1020
 
1021
- #: Includes/Page.php:987
1022
  msgid "Expired"
1023
  msgstr ""
1024
 
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: WP GDPR Compliance\n"
5
+ "POT-Creation-Date: 2020-05-25 09:44+0200\n"
6
  "Last-Translator: \n"
7
  "Language-Team: Van Ons <info@van-ons.nl>\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
  "PO-Revision-Date: \n"
12
+ "X-Generator: Poedit 2.2.4\n"
13
  "X-Poedit-SourceCharset: UTF-8\n"
14
  "X-Poedit-KeywordsList: __;_e;_ngettext:1,2;_n;_ngettext_noop:1,2;_n_noop:1,2;"
15
  "_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;"
33
  msgid "More information"
34
  msgstr ""
35
 
36
+ #: Includes/Action.php:157 Includes/Page.php:503 Includes/Shortcode.php:169
37
  msgid "My settings"
38
  msgstr ""
39
 
45
  msgid "Save my settings"
46
  msgstr ""
47
 
48
+ #: Includes/Action.php:230 Includes/Page.php:766
49
  msgid "(no title)"
50
  msgstr ""
51
 
52
  #: Includes/Action.php:243 Includes/Helper.php:116 Includes/Helper.php:174
53
+ #: Includes/Page.php:271 Includes/Page.php:366 Includes/Page.php:381
54
+ #: Includes/Page.php:442 Includes/Page.php:498 Includes/Page.php:852
55
+ #: Includes/Page.php:958 Includes/Shortcode.php:164
56
  msgid "Note"
57
  msgstr ""
58
 
268
  msgid "Do not wrap my code snippet"
269
  msgstr ""
270
 
271
+ #: Includes/Consent.php:306 Includes/Page.php:680
272
  msgid "Head"
273
  msgstr ""
274
 
275
+ #: Includes/Consent.php:307 Includes/Page.php:685
276
  msgid "Body"
277
  msgstr ""
278
 
279
+ #: Includes/Consent.php:308 Includes/Page.php:690
280
  msgid "Footer"
281
  msgstr ""
282
 
303
  msgstr ""
304
 
305
  #: Includes/Data.php:54 Includes/Data.php:63 Includes/Data.php:70
306
+ #: Includes/Page.php:968
307
  msgid "Email Address"
308
  msgstr ""
309
 
323
  msgid "Content"
324
  msgstr ""
325
 
326
+ #: Includes/Data.php:64 Includes/Page.php:865 Includes/Page.php:969
327
  msgid "IP Address"
328
  msgstr ""
329
 
518
  msgstr ""
519
 
520
  #: Includes/Integration.php:141 Includes/Integration.php:185
521
+ #: Includes/Integration.php:220 Includes/Page.php:473
522
  msgid "Checkbox text"
523
  msgstr ""
524
 
549
  msgid "You need to accept this checkbox."
550
  msgstr ""
551
 
552
+ #: Includes/Integration.php:302 Includes/Page.php:353 Includes/Page.php:405
553
  msgid "Privacy Policy"
554
  msgstr ""
555
 
566
  "request. When your data is anonymised you will receive an email confirmation."
567
  msgstr ""
568
 
569
+ #: Includes/Integration.php:379 Includes/Page.php:845
570
  msgid "WordPress Comments"
571
  msgstr ""
572
 
598
  msgid "Gravity Forms"
599
  msgstr ""
600
 
601
+ #: Includes/Integration.php:413 Includes/Page.php:847
602
  msgid "WooCommerce"
603
  msgstr ""
604
 
612
  msgid "Integrations"
613
  msgstr ""
614
 
615
+ #: Includes/Page.php:70 Includes/Page.php:491
616
  msgid "Consents"
617
  msgstr ""
618
 
672
  msgid "Support forum"
673
  msgstr ""
674
 
675
+ #: Includes/Page.php:170
676
+ msgid "WordProof Timestamp"
677
+ msgstr ""
678
+
679
+ #: Includes/Page.php:171
680
+ msgid ""
681
+ "Protect your copyright, improve trust and enjoy future SEO benefits by "
682
+ "timestamping your content."
683
+ msgstr ""
684
+
685
+ #: Includes/Page.php:173
686
+ #, php-format
687
+ msgid "%s or read the %s"
688
+ msgstr ""
689
+
690
+ #: Includes/Page.php:174
691
+ msgid "Install WordProof Timestamp"
692
+ msgstr ""
693
+
694
+ #: Includes/Page.php:175
695
+ msgid "review by WPLift.com"
696
+ msgstr ""
697
+
698
+ #: Includes/Page.php:177
699
+ msgid "New"
700
+ msgstr ""
701
+
702
+ #: Includes/Page.php:211
703
  msgid "Enable:"
704
  msgstr ""
705
 
706
+ #: Includes/Page.php:238
707
  #, php-format
708
  msgid "This plugin is outdated. %s supports version %s and up."
709
  msgstr ""
710
 
711
+ #: Includes/Page.php:247
712
  msgid "Couldn't find any supported plugins installed."
713
  msgstr ""
714
 
715
+ #: Includes/Page.php:248
716
  msgid "The following plugins are supported as of now:"
717
  msgstr ""
718
 
719
+ #: Includes/Page.php:254
720
  msgid "More plugins will be added in the future."
721
  msgstr ""
722
 
723
+ #: Includes/Page.php:272
724
  msgid "We think you might have a mail plugin installed."
725
  msgstr ""
726
 
727
+ #: Includes/Page.php:275
728
  msgid ""
729
  "Do you know where you got your email database from? Did you ask all the "
730
  "people on your newsletter(s) if they consent to receiving it? GDPR requires "
732
  "permission to mail them."
733
  msgstr ""
734
 
735
+ #: Includes/Page.php:278
736
  msgid ""
737
  "Below we ask you what private data you currently collect and provide you "
738
  "with tips to comply."
739
  msgstr ""
740
 
741
+ #: Includes/Page.php:355 Includes/Page.php:431
742
  msgid "Activate"
743
  msgstr ""
744
 
745
+ #: Includes/Page.php:359
746
  msgid "Activate external links"
747
  msgstr ""
748
 
749
+ #: Includes/Page.php:368
750
  msgid "Enabling this will allow you to use external Privacy Policy instances"
751
  msgstr ""
752
 
753
+ #: Includes/Page.php:383
754
  msgid "Currently you do not have a privacy policy page selected"
755
  msgstr ""
756
 
757
+ #: Includes/Page.php:395
758
  msgid "External Privacy Policy Link"
759
  msgstr ""
760
 
761
+ #: Includes/Page.php:410 Includes/Page.php:460
762
  msgid "Select an option"
763
  msgstr ""
764
 
765
+ #: Includes/Page.php:419
766
  msgid "Link text"
767
  msgstr ""
768
 
769
+ #: Includes/Page.php:426
770
  msgid "Request User Data"
771
  msgstr ""
772
 
773
+ #: Includes/Page.php:428
774
  msgid ""
775
  "Allow your site's visitors to request their data stored in the WordPress "
776
  "database (comments, WooCommerce orders etc.). Data found is send to their "
778
  "data anonymised."
779
  msgstr ""
780
 
781
+ #: Includes/Page.php:435
782
  msgid "Activate page"
783
  msgstr ""
784
 
785
+ #: Includes/Page.php:444
786
  #, php-format
787
  msgid ""
788
  "Enabling this will create one private page containing the necessary "
789
  "shortcode: %s. You can determine when and how to publish this page yourself."
790
  msgstr ""
791
 
792
+ #: Includes/Page.php:455
793
  msgid "Page"
794
  msgstr ""
795
 
796
+ #: Includes/Page.php:467
797
  msgid "Click here to edit this page"
798
  msgstr ""
799
 
800
+ #: Includes/Page.php:482
801
  msgid "Anonymise request explanation"
802
  msgstr ""
803
 
804
+ #: Includes/Page.php:493
805
  msgid ""
806
  "Your visitors can give permission to all of the created Consents (scripts) "
807
  "through a Consent bar at the bottom of their screen. There they can also "
809
  "Consents. Once their settings are saved the bar disappears for 365 days."
810
  msgstr ""
811
 
812
+ #: Includes/Page.php:500
813
  #, php-format
814
  msgid ""
815
  "Let your visitors re-access their settings by placing a link to the modal "
816
  "with the shortcode %s or add the \"%s\" class to a menu item."
817
  msgstr ""
818
 
819
+ #: Includes/Page.php:512
820
  msgid "Bar: Explanation"
821
  msgstr ""
822
 
823
+ #: Includes/Page.php:520
824
  msgid "Bar Color"
825
  msgstr ""
826
 
827
+ #: Includes/Page.php:527
828
  msgid "Bar Text Color"
829
  msgstr ""
830
 
831
+ #: Includes/Page.php:534
832
  msgid "Button Color Primary"
833
  msgstr ""
834
 
835
+ #: Includes/Page.php:542
836
  msgid "Button Color Secondary"
837
  msgstr ""
838
 
839
+ #: Includes/Page.php:550
840
  msgid "Modal: Title"
841
  msgstr ""
842
 
843
+ #: Includes/Page.php:559
844
  msgid "Modal: Explanation"
845
  msgstr ""
846
 
847
+ #: Includes/Page.php:603
848
  msgid "Add New Consent"
849
  msgstr ""
850
 
851
+ #: Includes/Page.php:605 Includes/Page.php:751 Includes/Page.php:998
852
  msgid "Active"
853
  msgstr ""
854
 
855
+ #: Includes/Page.php:608 Includes/Page.php:701 Includes/Page.php:770
856
+ #: Includes/Page.php:790 wp-gdpr-compliance.php:378 wp-gdpr-compliance.php:414
857
  msgid "Yes"
858
  msgstr ""
859
 
860
+ #: Includes/Page.php:613 Includes/Page.php:746
861
  msgid "Title"
862
  msgstr ""
863
 
864
+ #: Includes/Page.php:618
865
  msgid "e.g. \"Google Analytics\" or \"Advertising\""
866
  msgstr ""
867
 
868
+ #: Includes/Page.php:623
869
  msgid "Description"
870
  msgstr ""
871
 
872
+ #: Includes/Page.php:629
873
  msgid ""
874
  "Describe your consent script as thoroughly as possible. %privacy_policy% "
875
  "will not work."
876
  msgstr ""
877
 
878
+ #: Includes/Page.php:634
879
  msgid "Code Snippet"
880
  msgstr ""
881
 
882
+ #: Includes/Page.php:640
883
  msgid "Code snippets for Google Analytics, Facebook Pixel, etc."
884
  msgstr ""
885
 
886
+ #: Includes/Page.php:645
887
  msgid "Code Wrap"
888
  msgstr ""
889
 
890
+ #: Includes/Page.php:662
891
  msgid "Placement"
892
  msgstr ""
893
 
894
+ #: Includes/Page.php:681
895
  msgid "Snippet will be added at the end of the HEAD tag."
896
  msgstr ""
897
 
898
+ #: Includes/Page.php:686
899
  msgid "Snippet will be added directly after the BODY tag."
900
  msgstr ""
901
 
902
+ #: Includes/Page.php:691
903
  msgid "Snippet will be added at the end of the BODY tag."
904
  msgstr ""
905
 
906
+ #: Includes/Page.php:698 Includes/Page.php:747
907
  msgid "Required"
908
  msgstr ""
909
 
910
+ #: Includes/Page.php:704
911
  msgid ""
912
  "Ticking this checkbox means this Consent will always be triggered so users "
913
  "cannot opt-in or opt-out."
914
  msgstr ""
915
 
916
+ #: Includes/Page.php:709
917
  msgid "Update"
918
  msgstr ""
919
 
920
+ #: Includes/Page.php:709
921
  msgid "Add"
922
  msgstr ""
923
 
924
+ #: Includes/Page.php:711
925
  msgid "Back to overview"
926
  msgstr ""
927
 
928
+ #: Includes/Page.php:730
929
  msgid ""
930
  "Ask your visitors for permission to enable certain scripts for tracking or "
931
  "advertising purposes. Add a Consent for each type of script you are "
933
  "given."
934
  msgstr ""
935
 
936
+ #: Includes/Page.php:732
937
  msgctxt "consent"
938
  msgid "Add New"
939
  msgstr ""
940
 
941
+ #: Includes/Page.php:736
942
  msgid ""
943
  "Click this button if you want to reset the consent bar, this means that the "
944
  "consent bar will appear again for all users."
945
  msgstr ""
946
 
947
+ #: Includes/Page.php:745
948
  msgid "Consent"
949
  msgstr ""
950
 
951
+ #: Includes/Page.php:748
952
  msgid "Modified at"
953
  msgstr ""
954
 
955
+ #: Includes/Page.php:749
956
  msgid "Created at"
957
  msgstr ""
958
 
959
+ #: Includes/Page.php:750 Includes/Page.php:868
960
  msgid "Action"
961
  msgstr ""
962
 
963
+ #: Includes/Page.php:770 Includes/Page.php:790 wp-gdpr-compliance.php:379
964
  #: wp-gdpr-compliance.php:415
965
  msgid "No"
966
  msgstr ""
967
 
968
+ #: Includes/Page.php:780
969
  msgid "Edit"
970
  msgstr ""
971
 
972
+ #: Includes/Page.php:785
973
  msgid "Remove"
974
  msgstr ""
975
 
976
+ #: Includes/Page.php:813 Includes/Page.php:929 Includes/Page.php:1021
977
  #, php-format
978
  msgid "%d of %d results found"
979
  msgstr ""
980
 
981
+ #: Includes/Page.php:817
982
  msgid "No consents found."
983
  msgstr ""
984
 
985
+ #: Includes/Page.php:841
986
  msgid ""
987
  "Anonymise a request by ticking the checkbox and clicking on the green "
988
  "anonymise button below."
989
  msgstr ""
990
 
991
+ #: Includes/Page.php:843
992
  msgid "WordPress Users"
993
  msgstr ""
994
 
995
+ #: Includes/Page.php:853 Includes/Page.php:959
996
  #, php-format
997
  msgid "Requests are automatically anonymised after %d days."
998
  msgstr ""
999
 
1000
+ #: Includes/Page.php:863
1001
  msgid "Request"
1002
  msgstr ""
1003
 
1004
+ #: Includes/Page.php:864
1005
  msgid "Type"
1006
  msgstr ""
1007
 
1008
+ #: Includes/Page.php:866 Includes/Page.php:970
1009
  msgid "Date"
1010
  msgstr ""
1011
 
1012
+ #: Includes/Page.php:867
1013
  msgid "Processed"
1014
  msgstr ""
1015
 
1016
+ #: Includes/Page.php:889
1017
  msgid "View"
1018
  msgstr ""
1019
 
1020
+ #: Includes/Page.php:891
1021
  msgid "N/A"
1022
  msgstr ""
1023
 
1024
+ #: Includes/Page.php:910
1025
  msgid "Anonymise selected request(s)"
1026
  msgstr ""
1027
 
1028
+ #: Includes/Page.php:935 Includes/Page.php:1027
1029
  msgid "No requests found."
1030
  msgstr ""
1031
 
1032
+ #: Includes/Page.php:966
1033
  msgid "ID"
1034
  msgstr ""
1035
 
1036
+ #: Includes/Page.php:967
1037
  msgid "Requests to Process"
1038
  msgstr ""
1039
 
1040
+ #: Includes/Page.php:971
1041
  msgid "Status"
1042
  msgstr ""
1043
 
1044
+ #: Includes/Page.php:990
1045
  msgid "Manage"
1046
  msgstr ""
1047
 
1048
+ #: Includes/Page.php:998
1049
  msgid "Expired"
1050
  msgstr ""
1051
 
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === WP GDPR Compliance ===
2
- Contributors: donnyoexman, jeffreyvisser, merijnmolenaar, michaelvt, van-ons
3
  Tags: gdpr, law, regulations, compliance, data, protection, privacy, data protection, eu, avg, comments, woocommerce, wc, contact form 7, cf7
4
  Requires at least: 4.5
5
- Tested up to: 5.4.1
6
  Requires PHP: 5.3
7
- Stable tag: 1.5.3
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -44,12 +44,21 @@ You'll find answers to many of your questions on [https://www.wpgdprc.com/faq/](
44
 
45
  == Changelog ==
46
 
 
 
 
 
 
 
 
 
 
47
  = 1.5.3 =
48
- *Release date: 23rd March, 2020*
49
  * Tested with WordPress 5.4.1.
50
 
51
  = 1.5.2 =
52
- *Release date: 21th May, 2019*
53
  * Tested with WordPress 5.2.
54
  * Load accepted consents with JavaScript to improve performance.
55
  * Use different text when all consent is required.
@@ -260,4 +269,4 @@ You'll find answers to many of your questions on [https://www.wpgdprc.com/faq/](
260
 
261
  = 1.0 =
262
  *Release date: November 4th, 2017*
263
- * Initial release.
1
  === WP GDPR Compliance ===
2
+ Contributors: van-ons
3
  Tags: gdpr, law, regulations, compliance, data, protection, privacy, data protection, eu, avg, comments, woocommerce, wc, contact form 7, cf7
4
  Requires at least: 4.5
5
+ Tested up to: 5.5.3
6
  Requires PHP: 5.3
7
+ Stable tag: 1.5.4
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
44
 
45
  == Changelog ==
46
 
47
+ = 1.5.4 =
48
+ *Release date: June 9th, 2020*
49
+ * Improved Web Content Accessibility Guidelines (WCAG)
50
+ * Improved keyboard navigation
51
+ * Added a setting to change the accept button text
52
+ * Added a setting to change the more information button text
53
+ * Javascript and css assets are now minified
54
+ * Bugfix: The accept button in the consent modal now also works when all consents are mandatory
55
+
56
  = 1.5.3 =
57
+ *Release date: May 7th, 2020*
58
  * Tested with WordPress 5.4.1.
59
 
60
  = 1.5.2 =
61
+ *Release date: May 21th, 2019*
62
  * Tested with WordPress 5.2.
63
  * Load accepted consents with JavaScript to improve performance.
64
  * Use different text when all consent is required.
269
 
270
  = 1.0 =
271
  *Release date: November 4th, 2017*
272
+ * Initial release.
wp-gdpr-compliance.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin Name: WP GDPR Compliance
5
  Plugin URI: https://www.wpgdprc.com/
6
  Description: This plugin assists website and webshop owners to comply with European privacy regulations known as GDPR. By May 24th, 2018 your website or shop has to comply to avoid large fines.
7
- Version: 1.5.2
8
  Author: Van Ons
9
  Author URI: https://www.van-ons.nl/
10
  License: GPL2
@@ -96,9 +96,11 @@ class WPGDPRC {
96
  Helper::doAction($action);
97
  load_plugin_textdomain(WP_GDPR_C_SLUG, false, basename(dirname(__FILE__)) . '/languages/');
98
  add_filter('plugin_action_links_' . plugin_basename(__FILE__), array($this, 'addActionLinksToPluginPage'));
99
- add_action('admin_init', array(Page::getInstance(), 'registerSettings'));
100
- add_action('admin_menu', array(Page::getInstance(), 'addAdminMenu'));
101
- add_action('admin_notices', array(Action::getInstance(), 'showAdminNotices'));
 
 
102
  add_action('wp_enqueue_scripts', array($this, 'loadAssets'), 999);
103
  add_action('admin_enqueue_scripts', array($this, 'loadAdminAssets'), 999);
104
  add_action('core_version_check_query_args', array(Action::getInstance(), 'onlySendEssentialDataDuringUpdateCheck'));
@@ -132,7 +134,7 @@ class WPGDPRC {
132
  if (Consent::databaseTableExists()) {
133
  add_shortcode('wpgdprc_consents_settings_link', array(Shortcode::getInstance(), 'consentsSettingsLink'));
134
  if (Consent::isActive()) {
135
- add_action('wp_footer', array(Action::getInstance(), 'addConsentBar'), 998);
136
  add_action('wp_footer', array(Action::getInstance(), 'addConsentModal'), 999);
137
  add_action('wp_ajax_wpgdprc_load_consents', array(Ajax::getInstance(), 'loadConsents'));
138
  add_action('wp_ajax_nopriv_wpgdprc_load_consents', array(Ajax::getInstance(), 'loadConsents'));
@@ -373,7 +375,7 @@ class WPGDPRC {
373
  public function loadAssets() {
374
  wp_register_script('wpgdprc.micromodal.js', WP_GDPR_C_URI_VENDOR . '/micromodal/micromodal.min.js', array(), filemtime(WP_GDPR_C_DIR_VENDOR . '/micromodal/micromodal.min.js'));
375
  wp_register_script('wpgdprc.postscribe.js', WP_GDPR_C_URI_VENDOR . '/postscribe/postscribe.min.js', array(), filemtime(WP_GDPR_C_DIR_VENDOR . '/postscribe/postscribe.min.js'));
376
- wp_enqueue_style('wpgdprc.css', WP_GDPR_C_URI_CSS . '/front.css', array(), filemtime(WP_GDPR_C_DIR_CSS . '/front.css'));
377
  wp_add_inline_style('wpgdprc.css', "
378
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:before { content: '" . __('Yes', WP_GDPR_C_SLUG) . "'; }
379
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:after { content: '" . __('No', WP_GDPR_C_SLUG) . "'; }
@@ -403,20 +405,20 @@ class WPGDPRC {
403
  if (!empty($_REQUEST['wpgdprc'])) {
404
  $data['token'] = esc_html(urldecode($_REQUEST['wpgdprc']));
405
  }
406
- wp_enqueue_script('wpgdprc.js', WP_GDPR_C_URI_JS . '/front.js', $dependencies, filemtime(WP_GDPR_C_DIR_JS . '/front.js'), true);
407
  wp_localize_script('wpgdprc.js', 'wpgdprcData', $data);
408
  }
409
 
410
  public function loadAdminAssets() {
411
  wp_register_style('wpgdprc.admin.codemirror.css', WP_GDPR_C_URI_VENDOR . '/codemirror/codemirror.css', array(), filemtime(WP_GDPR_C_DIR_VENDOR . '/codemirror/codemirror.css'));
412
- wp_enqueue_style('wpgdprc.admin.css', WP_GDPR_C_URI_CSS . '/admin.css', array(), filemtime(WP_GDPR_C_DIR_CSS . '/admin.css'));
413
  wp_add_inline_style('wpgdprc.admin.css', "
414
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:before { content: '" . __('Yes', WP_GDPR_C_SLUG) . "'; }
415
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:after { content: '" . __('No', WP_GDPR_C_SLUG) . "'; }
416
  ");
417
  wp_register_script('wpgdprc.admin.codemirror.js', WP_GDPR_C_URI_VENDOR . '/codemirror/codemirror.js', array(), filemtime(WP_GDPR_C_DIR_VENDOR . '/codemirror/codemirror.js'));
418
  wp_register_script('wpgdprc.admin.codemirror.additional.js', WP_GDPR_C_URI_VENDOR . '/codemirror/codemirror.additional.js', array('wpgdprc.admin.codemirror.js'), filemtime(WP_GDPR_C_DIR_VENDOR . '/codemirror/codemirror.additional.js'), true);
419
- wp_enqueue_script('wpgdprc.admin.js', WP_GDPR_C_URI_JS . '/admin.js', array(), filemtime(WP_GDPR_C_DIR_JS . '/admin.js'), true);
420
  wp_localize_script('wpgdprc.admin.js', 'wpgdprcData', array(
421
  'ajaxURL' => admin_url('admin-ajax.php'),
422
  'ajaxSecurity' => wp_create_nonce('wpgdprc'),
@@ -444,4 +446,4 @@ function autoload($class = '') {
444
  $result = str_replace('WPGDPRC\\', '', $class);
445
  $result = str_replace('\\', '/', $result);
446
  require $result . '.php';
447
- }
4
  Plugin Name: WP GDPR Compliance
5
  Plugin URI: https://www.wpgdprc.com/
6
  Description: This plugin assists website and webshop owners to comply with European privacy regulations known as GDPR. By May 24th, 2018 your website or shop has to comply to avoid large fines.
7
+ Version: 1.5.4
8
  Author: Van Ons
9
  Author URI: https://www.van-ons.nl/
10
  License: GPL2
96
  Helper::doAction($action);
97
  load_plugin_textdomain(WP_GDPR_C_SLUG, false, basename(dirname(__FILE__)) . '/languages/');
98
  add_filter('plugin_action_links_' . plugin_basename(__FILE__), array($this, 'addActionLinksToPluginPage'));
99
+ if (is_admin()) {
100
+ add_action('admin_init', array(Page::getInstance(), 'registerSettings'));
101
+ add_action('admin_menu', array(Page::getInstance(), 'addAdminMenu'));
102
+ add_action('admin_notices', array(Action::getInstance(), 'showAdminNotices'));
103
+ }
104
  add_action('wp_enqueue_scripts', array($this, 'loadAssets'), 999);
105
  add_action('admin_enqueue_scripts', array($this, 'loadAdminAssets'), 999);
106
  add_action('core_version_check_query_args', array(Action::getInstance(), 'onlySendEssentialDataDuringUpdateCheck'));
134
  if (Consent::databaseTableExists()) {
135
  add_shortcode('wpgdprc_consents_settings_link', array(Shortcode::getInstance(), 'consentsSettingsLink'));
136
  if (Consent::isActive()) {
137
+ add_action('wp_footer', array(Action::getInstance(), 'addConsentBar'), 1);
138
  add_action('wp_footer', array(Action::getInstance(), 'addConsentModal'), 999);
139
  add_action('wp_ajax_wpgdprc_load_consents', array(Ajax::getInstance(), 'loadConsents'));
140
  add_action('wp_ajax_nopriv_wpgdprc_load_consents', array(Ajax::getInstance(), 'loadConsents'));
375
  public function loadAssets() {
376
  wp_register_script('wpgdprc.micromodal.js', WP_GDPR_C_URI_VENDOR . '/micromodal/micromodal.min.js', array(), filemtime(WP_GDPR_C_DIR_VENDOR . '/micromodal/micromodal.min.js'));
377
  wp_register_script('wpgdprc.postscribe.js', WP_GDPR_C_URI_VENDOR . '/postscribe/postscribe.min.js', array(), filemtime(WP_GDPR_C_DIR_VENDOR . '/postscribe/postscribe.min.js'));
378
+ wp_enqueue_style('wpgdprc.css', WP_GDPR_C_URI_CSS . '/front.min.css', array(), filemtime(WP_GDPR_C_DIR_CSS . '/front.min.css'));
379
  wp_add_inline_style('wpgdprc.css', "
380
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:before { content: '" . __('Yes', WP_GDPR_C_SLUG) . "'; }
381
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:after { content: '" . __('No', WP_GDPR_C_SLUG) . "'; }
405
  if (!empty($_REQUEST['wpgdprc'])) {
406
  $data['token'] = esc_html(urldecode($_REQUEST['wpgdprc']));
407
  }
408
+ wp_enqueue_script('wpgdprc.js', WP_GDPR_C_URI_JS . '/front.min.js', $dependencies, filemtime(WP_GDPR_C_DIR_JS . '/front.min.js'), true);
409
  wp_localize_script('wpgdprc.js', 'wpgdprcData', $data);
410
  }
411
 
412
  public function loadAdminAssets() {
413
  wp_register_style('wpgdprc.admin.codemirror.css', WP_GDPR_C_URI_VENDOR . '/codemirror/codemirror.css', array(), filemtime(WP_GDPR_C_DIR_VENDOR . '/codemirror/codemirror.css'));
414
+ wp_enqueue_style('wpgdprc.admin.css', WP_GDPR_C_URI_CSS . '/admin.min.css', array(), filemtime(WP_GDPR_C_DIR_CSS . '/admin.min.css'));
415
  wp_add_inline_style('wpgdprc.admin.css', "
416
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:before { content: '" . __('Yes', WP_GDPR_C_SLUG) . "'; }
417
  div.wpgdprc .wpgdprc-switch .wpgdprc-switch-inner:after { content: '" . __('No', WP_GDPR_C_SLUG) . "'; }
418
  ");
419
  wp_register_script('wpgdprc.admin.codemirror.js', WP_GDPR_C_URI_VENDOR . '/codemirror/codemirror.js', array(), filemtime(WP_GDPR_C_DIR_VENDOR . '/codemirror/codemirror.js'));
420
  wp_register_script('wpgdprc.admin.codemirror.additional.js', WP_GDPR_C_URI_VENDOR . '/codemirror/codemirror.additional.js', array('wpgdprc.admin.codemirror.js'), filemtime(WP_GDPR_C_DIR_VENDOR . '/codemirror/codemirror.additional.js'), true);
421
+ wp_enqueue_script('wpgdprc.admin.js', WP_GDPR_C_URI_JS . '/admin.min.js', array(), filemtime(WP_GDPR_C_DIR_JS . '/admin.min.js'), true);
422
  wp_localize_script('wpgdprc.admin.js', 'wpgdprcData', array(
423
  'ajaxURL' => admin_url('admin-ajax.php'),
424
  'ajaxSecurity' => wp_create_nonce('wpgdprc'),
446
  $result = str_replace('WPGDPRC\\', '', $class);
447
  $result = str_replace('\\', '/', $result);
448
  require $result . '.php';
449
+ }