Version Description
Release date: July 6th, 2018 * Added the ability to add required 'Consents'. These Consents will always be triggered on page load. * Added 'Privacy' column to the WooCommerce order overview. * Added the ability to change the message of the required asterisk elements. * Remove or re-add the GDPR fields from forms on plugin deactivation and activation.
Download this release
Release Info
Developer | donnyoexman |
Plugin | WP GDPR Compliance |
Version | 1.4.2 |
Comparing to | |
See all releases |
Code changes from version 1.4.1 to 1.4.2
- Includes/Action.php +79 -34
- Includes/Consent.php +19 -1
- Includes/Extensions/GForms.php +23 -1
- Includes/Extensions/WC.php +25 -2
- Includes/Extensions/WP.php +1 -1
- Includes/Helper.php +56 -8
- Includes/Integration.php +37 -0
- Includes/Page.php +29 -6
- assets/css/front.css +4 -0
- languages/wp-gdpr-compliance.pot +142 -112
- readme.txt +9 -2
- wp-gdpr-compliance.php +14 -6
Includes/Action.php
CHANGED
@@ -2,6 +2,9 @@
|
|
2 |
|
3 |
namespace WPGDPRC\Includes;
|
4 |
|
|
|
|
|
|
|
5 |
/**
|
6 |
* Class Action
|
7 |
* @package WPGDPRC\Includes
|
@@ -31,10 +34,11 @@ class Action {
|
|
31 |
$consent->setSiteId(get_current_blog_id());
|
32 |
$id = $consent->save();
|
33 |
if (!empty($id)) {
|
34 |
-
|
35 |
array('notice' => 'wpgdprc-consent-added'),
|
36 |
Consent::getActionUrl($id)
|
37 |
));
|
|
|
38 |
}
|
39 |
break;
|
40 |
case 'delete' :
|
@@ -172,10 +176,11 @@ class Action {
|
|
172 |
$output .= '<nav class="wpgdprc-consent-modal__navigation">';
|
173 |
/** @var Consent $consent */
|
174 |
foreach ($consents as $consent) {
|
|
|
175 |
$output .= sprintf(
|
176 |
'<a class="wpgdprc-button" href="javascript:void(0);" data-target="%d">%s</a>',
|
177 |
$consent->getId(),
|
178 |
-
$
|
179 |
);
|
180 |
}
|
181 |
$output .= '</nav>'; // .wpgdprc-consent-modal__navigation
|
@@ -200,22 +205,24 @@ class Action {
|
|
200 |
);
|
201 |
$output .= sprintf('<h3 class="wpgdprc-consent-modal__title">%s</h3>', $consent->getTitle());
|
202 |
$output .= apply_filters('wpgdprc_the_content', $consent->getDescription());
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
|
|
|
|
219 |
$output .= '</div>'; // .wpgdprc-consent-modal__description
|
220 |
}
|
221 |
$output .= '<footer class="wpgdprc-consent-modal__footer">';
|
@@ -238,42 +245,80 @@ class Action {
|
|
238 |
|
239 |
public function addConsentsToHead() {
|
240 |
$consentIds = Helper::getConsentIdsByCookie();
|
241 |
-
if ($consentIds
|
242 |
return;
|
243 |
}
|
244 |
$args = array(
|
245 |
-
'placement' => array(
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
|
|
|
|
250 |
'value' => $consentIds,
|
251 |
'compare' => 'IN'
|
252 |
-
)
|
253 |
-
|
254 |
$consents = Consent::getInstance()->getList($args);
|
255 |
echo Consent::output($consents);
|
256 |
}
|
257 |
|
258 |
public function addConsentsToFooter() {
|
259 |
$consentIds = Helper::getConsentIdsByCookie();
|
260 |
-
if ($consentIds
|
261 |
return;
|
262 |
}
|
263 |
$args = array(
|
264 |
-
'placement' => array(
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
|
|
|
|
269 |
'value' => $consentIds,
|
270 |
'compare' => 'IN'
|
271 |
-
)
|
272 |
-
|
273 |
$consents = Consent::getInstance()->getList($args);
|
274 |
echo Consent::output($consents);
|
275 |
}
|
276 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
277 |
/**
|
278 |
* @return null|Action
|
279 |
*/
|
2 |
|
3 |
namespace WPGDPRC\Includes;
|
4 |
|
5 |
+
use WPGDPRC\Includes\Extensions\CF7;
|
6 |
+
use WPGDPRC\Includes\Extensions\GForms;
|
7 |
+
|
8 |
/**
|
9 |
* Class Action
|
10 |
* @package WPGDPRC\Includes
|
34 |
$consent->setSiteId(get_current_blog_id());
|
35 |
$id = $consent->save();
|
36 |
if (!empty($id)) {
|
37 |
+
wp_safe_redirect(add_query_arg(
|
38 |
array('notice' => 'wpgdprc-consent-added'),
|
39 |
Consent::getActionUrl($id)
|
40 |
));
|
41 |
+
exit;
|
42 |
}
|
43 |
break;
|
44 |
case 'delete' :
|
176 |
$output .= '<nav class="wpgdprc-consent-modal__navigation">';
|
177 |
/** @var Consent $consent */
|
178 |
foreach ($consents as $consent) {
|
179 |
+
$title = $consent->getTitle();
|
180 |
$output .= sprintf(
|
181 |
'<a class="wpgdprc-button" href="javascript:void(0);" data-target="%d">%s</a>',
|
182 |
$consent->getId(),
|
183 |
+
((!empty($title)) ? $title : __('(no title)', WP_GDPR_C_SLUG))
|
184 |
);
|
185 |
}
|
186 |
$output .= '</nav>'; // .wpgdprc-consent-modal__navigation
|
205 |
);
|
206 |
$output .= sprintf('<h3 class="wpgdprc-consent-modal__title">%s</h3>', $consent->getTitle());
|
207 |
$output .= apply_filters('wpgdprc_the_content', $consent->getDescription());
|
208 |
+
if (!$consent->getRequired()) {
|
209 |
+
$output .= '<div class="wpgdprc-checkbox">';
|
210 |
+
$output .= '<label>';
|
211 |
+
$output .= sprintf(
|
212 |
+
'<input type="checkbox" value="%d" tabindex="1" %s />',
|
213 |
+
$consent->getId(),
|
214 |
+
checked(true, in_array($consent->getId(), $consentIds), false)
|
215 |
+
);
|
216 |
+
$output .= '<span class="wpgdprc-switch" aria-hidden="true">';
|
217 |
+
$output .= '<span class="wpgdprc-switch-label">';
|
218 |
+
$output .= '<span class="wpgdprc-switch-inner"></span>';
|
219 |
+
$output .= '<span class="wpgdprc-switch-switch"></span>';
|
220 |
+
$output .= '</span>';
|
221 |
+
$output .= '</span>';
|
222 |
+
$output .= __('Enable', WP_GDPR_C_SLUG);
|
223 |
+
$output .= '</label>';
|
224 |
+
$output .= '</div>';
|
225 |
+
}
|
226 |
$output .= '</div>'; // .wpgdprc-consent-modal__description
|
227 |
}
|
228 |
$output .= '<footer class="wpgdprc-consent-modal__footer">';
|
245 |
|
246 |
public function addConsentsToHead() {
|
247 |
$consentIds = Helper::getConsentIdsByCookie();
|
248 |
+
if (empty($consentIds)) {
|
249 |
return;
|
250 |
}
|
251 |
$args = array(
|
252 |
+
'placement' => array(
|
253 |
+
'value' => 'head'
|
254 |
+
),
|
255 |
+
'active' => array(
|
256 |
+
'value' => 1
|
257 |
+
),
|
258 |
+
'ID' => array(
|
259 |
'value' => $consentIds,
|
260 |
'compare' => 'IN'
|
261 |
+
)
|
262 |
+
);
|
263 |
$consents = Consent::getInstance()->getList($args);
|
264 |
echo Consent::output($consents);
|
265 |
}
|
266 |
|
267 |
public function addConsentsToFooter() {
|
268 |
$consentIds = Helper::getConsentIdsByCookie();
|
269 |
+
if (empty($consentIds)) {
|
270 |
return;
|
271 |
}
|
272 |
$args = array(
|
273 |
+
'placement' => array(
|
274 |
+
'value' => 'footer'
|
275 |
+
),
|
276 |
+
'active' => array(
|
277 |
+
'value' => 1
|
278 |
+
),
|
279 |
+
'ID' => array(
|
280 |
'value' => $consentIds,
|
281 |
'compare' => 'IN'
|
282 |
+
)
|
283 |
+
);
|
284 |
$consents = Consent::getInstance()->getList($args);
|
285 |
echo Consent::output($consents);
|
286 |
}
|
287 |
|
288 |
+
public function addTagsToFields() {
|
289 |
+
// Contact Form 7
|
290 |
+
if (Helper::isEnabled(CF7::ID)) {
|
291 |
+
CF7::getInstance()->addFormTagToForms();
|
292 |
+
CF7::getInstance()->addAcceptedDateToForms();
|
293 |
+
}
|
294 |
+
|
295 |
+
// Gravity Forms
|
296 |
+
if (Helper::isEnabled(GForms::ID)) {
|
297 |
+
foreach (GForms::getInstance()->getForms() as $form) {
|
298 |
+
if (in_array($form['id'], GForms::getInstance()->getEnabledForms())) {
|
299 |
+
GForms::getInstance()->addField($form);
|
300 |
+
}
|
301 |
+
}
|
302 |
+
}
|
303 |
+
}
|
304 |
+
|
305 |
+
public function removeTagsFromFields() {
|
306 |
+
// Contact Form 7
|
307 |
+
if (Helper::isEnabled(CF7::ID)) {
|
308 |
+
CF7::getInstance()->removeFormTagFromForms();
|
309 |
+
CF7::getInstance()->removeAcceptedDateFromForms();
|
310 |
+
}
|
311 |
+
|
312 |
+
// Gravity Forms
|
313 |
+
if (Helper::isEnabled(GForms::ID)) {
|
314 |
+
foreach (GForms::getInstance()->getForms() as $form) {
|
315 |
+
if (in_array($form['id'], GForms::getInstance()->getEnabledForms())) {
|
316 |
+
GForms::getInstance()->removeField($form);
|
317 |
+
}
|
318 |
+
}
|
319 |
+
}
|
320 |
+
}
|
321 |
+
|
322 |
/**
|
323 |
* @return null|Action
|
324 |
*/
|
Includes/Consent.php
CHANGED
@@ -26,6 +26,8 @@ class Consent {
|
|
26 |
/** @var string */
|
27 |
private $plugins = '';
|
28 |
/** @var int */
|
|
|
|
|
29 |
private $active = 0;
|
30 |
/** @var string */
|
31 |
private $dateModified = '';
|
@@ -159,6 +161,7 @@ class Consent {
|
|
159 |
$this->setWrap($row->wrap);
|
160 |
$this->setPlacement($row->placement);
|
161 |
$this->setPlugins($row->plugins);
|
|
|
162 |
$this->setActive($row->active);
|
163 |
$this->setDateModified($row->date_modified);
|
164 |
$this->setDateCreated($row->date_created);
|
@@ -200,9 +203,10 @@ class Consent {
|
|
200 |
'wrap' => $this->getWrap(),
|
201 |
'placement' => $this->getPlacement(),
|
202 |
'plugins' => $this->getPlugins(),
|
|
|
203 |
'active' => $this->getActive(),
|
204 |
);
|
205 |
-
$dataTypes = array('%s', '%s', '%s', '%d', '%s', '%s', '%d');
|
206 |
if ($this->exists($this->getId())) {
|
207 |
$wpdb->update(
|
208 |
self::getDatabaseTableName(),
|
@@ -401,6 +405,20 @@ class Consent {
|
|
401 |
$this->plugins = $plugins;
|
402 |
}
|
403 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
404 |
/**
|
405 |
* @return int
|
406 |
*/
|
26 |
/** @var string */
|
27 |
private $plugins = '';
|
28 |
/** @var int */
|
29 |
+
private $required = 0;
|
30 |
+
/** @var int */
|
31 |
private $active = 0;
|
32 |
/** @var string */
|
33 |
private $dateModified = '';
|
161 |
$this->setWrap($row->wrap);
|
162 |
$this->setPlacement($row->placement);
|
163 |
$this->setPlugins($row->plugins);
|
164 |
+
$this->setRequired($row->required);
|
165 |
$this->setActive($row->active);
|
166 |
$this->setDateModified($row->date_modified);
|
167 |
$this->setDateCreated($row->date_created);
|
203 |
'wrap' => $this->getWrap(),
|
204 |
'placement' => $this->getPlacement(),
|
205 |
'plugins' => $this->getPlugins(),
|
206 |
+
'required' => $this->getRequired(),
|
207 |
'active' => $this->getActive(),
|
208 |
);
|
209 |
+
$dataTypes = array('%s', '%s', '%s', '%d', '%s', '%s', '%d', '%d');
|
210 |
if ($this->exists($this->getId())) {
|
211 |
$wpdb->update(
|
212 |
self::getDatabaseTableName(),
|
405 |
$this->plugins = $plugins;
|
406 |
}
|
407 |
|
408 |
+
/**
|
409 |
+
* @return int
|
410 |
+
*/
|
411 |
+
public function getRequired() {
|
412 |
+
return $this->required;
|
413 |
+
}
|
414 |
+
|
415 |
+
/**
|
416 |
+
* @param int $required
|
417 |
+
*/
|
418 |
+
public function setRequired($required) {
|
419 |
+
$this->required = $required;
|
420 |
+
}
|
421 |
+
|
422 |
/**
|
423 |
* @return int
|
424 |
*/
|
Includes/Extensions/GForms.php
CHANGED
@@ -36,7 +36,7 @@ class GForms {
|
|
36 |
$lastFieldId = 0;
|
37 |
$choices = array(
|
38 |
array(
|
39 |
-
'text' => self::getCheckboxText($form['id']),
|
40 |
'value' => 'true',
|
41 |
'isSelected' => false
|
42 |
)
|
@@ -206,6 +206,13 @@ class GForms {
|
|
206 |
return (array)get_option(WP_GDPR_C_PREFIX . '_integrations_' . self::ID . '_error_message', array());
|
207 |
}
|
208 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
/**
|
210 |
* @param int $formId
|
211 |
* @param bool $insertPrivacyPolicyLink
|
@@ -238,6 +245,21 @@ class GForms {
|
|
238 |
return Integration::getErrorMessage();
|
239 |
}
|
240 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
/**
|
242 |
* @param int $formId
|
243 |
* @return int
|
36 |
$lastFieldId = 0;
|
37 |
$choices = array(
|
38 |
array(
|
39 |
+
'text' => self::getCheckboxText($form['id']) . ' <abbr class="wpgdprc-required" title="' . self::getRequiredMessage($form['id']) . '">*</abbr>',
|
40 |
'value' => 'true',
|
41 |
'isSelected' => false
|
42 |
)
|
206 |
return (array)get_option(WP_GDPR_C_PREFIX . '_integrations_' . self::ID . '_error_message', array());
|
207 |
}
|
208 |
|
209 |
+
/**
|
210 |
+
* @return array
|
211 |
+
*/
|
212 |
+
public function getFormRequiredMessages() {
|
213 |
+
return (array)get_option(WP_GDPR_C_PREFIX . '_integrations_' . self::ID . '_required_message', array());
|
214 |
+
}
|
215 |
+
|
216 |
/**
|
217 |
* @param int $formId
|
218 |
* @param bool $insertPrivacyPolicyLink
|
245 |
return Integration::getErrorMessage();
|
246 |
}
|
247 |
|
248 |
+
/**
|
249 |
+
* @param int $formId
|
250 |
+
* @return string
|
251 |
+
*/
|
252 |
+
public function getRequiredMessage($formId = 0) {
|
253 |
+
if (!empty($formId)) {
|
254 |
+
$errors = $this->getFormRequiredMessages();
|
255 |
+
if (!empty($errors[$formId])) {
|
256 |
+
$result = esc_attr($errors[$formId]);
|
257 |
+
return apply_filters('wpgdprc_gforms_required_message', $result, $formId);
|
258 |
+
}
|
259 |
+
}
|
260 |
+
return Integration::getRequiredMessage();
|
261 |
+
}
|
262 |
+
|
263 |
/**
|
264 |
* @param int $formId
|
265 |
* @return int
|
Includes/Extensions/WC.php
CHANGED
@@ -22,8 +22,8 @@ class WC {
|
|
22 |
$args = array(
|
23 |
'type' => 'checkbox',
|
24 |
'class' => array('wpgdprc-checkbox'),
|
25 |
-
'label' => Integration::getCheckboxText(self::ID),
|
26 |
-
'required' => true
|
27 |
);
|
28 |
woocommerce_form_field('wpgdprc', apply_filters('wpgdprc_woocommerce_field_args', $args));
|
29 |
}
|
@@ -76,6 +76,29 @@ class WC {
|
|
76 |
);
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
/**
|
80 |
* @return null|WC
|
81 |
*/
|
22 |
$args = array(
|
23 |
'type' => 'checkbox',
|
24 |
'class' => array('wpgdprc-checkbox'),
|
25 |
+
'label' => Integration::getCheckboxText(self::ID) . ' <abbr class="wpgdprc-required required" title="' . Integration::getRequiredMessage(self::ID) . '">*</abbr>',
|
26 |
+
'required' => true
|
27 |
);
|
28 |
woocommerce_form_field('wpgdprc', apply_filters('wpgdprc_woocommerce_field_args', $args));
|
29 |
}
|
76 |
);
|
77 |
}
|
78 |
|
79 |
+
/**
|
80 |
+
* @param array $columns
|
81 |
+
* @return array
|
82 |
+
*/
|
83 |
+
public function displayAcceptedDateColumnInOrderOverview($columns = array()) {
|
84 |
+
$columns['wpgdprc-privacy'] = apply_filters('wpgdprc_accepted_date_column_in_woocommerce_order_overview', __('Privacy', WP_GDPR_C_SLUG));
|
85 |
+
return $columns;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @param string $column
|
90 |
+
* @param int $orderId
|
91 |
+
* @return string
|
92 |
+
*/
|
93 |
+
public function displayAcceptedDateInOrderOverview($column = '', $orderId = 0) {
|
94 |
+
if ($column === 'wpgdprc-privacy') {
|
95 |
+
$date = get_post_meta($orderId, '_wpgdprc', true);
|
96 |
+
$value = (!empty($date)) ? Helper::localDateFormat(get_option('date_format') . ' ' . get_option('time_format'), $date) : __('Not accepted.', WP_GDPR_C_SLUG);
|
97 |
+
echo apply_filters('wpgdprc_accepted_date_in_woocommerce_order_overview', $value, $orderId);
|
98 |
+
}
|
99 |
+
return $column;
|
100 |
+
}
|
101 |
+
|
102 |
/**
|
103 |
* @return null|WC
|
104 |
*/
|
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="required" title="' .
|
25 |
$submitField
|
26 |
);
|
27 |
return $field . $submitField;
|
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;
|
Includes/Helper.php
CHANGED
@@ -309,6 +309,18 @@ class Helper {
|
|
309 |
return $output;
|
310 |
}
|
311 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
/**
|
313 |
* @param $data
|
314 |
* @return string
|
@@ -497,32 +509,68 @@ class Helper {
|
|
497 |
return $output;
|
498 |
}
|
499 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
500 |
/**
|
501 |
* @return array|bool
|
502 |
*/
|
503 |
public static function getConsentIdsByCookie() {
|
504 |
$output = array();
|
505 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
506 |
if (!empty($consents)) {
|
507 |
switch ($consents) {
|
508 |
case 'decline' :
|
509 |
-
return false;
|
510 |
break;
|
511 |
case 'accept' :
|
512 |
$consents = Consent::getInstance()->getList(array(
|
513 |
-
'
|
|
|
|
|
|
|
|
|
|
|
514 |
));
|
515 |
foreach ($consents as $consent) {
|
516 |
-
$output[] = $consent->getId();
|
517 |
}
|
518 |
break;
|
519 |
default :
|
520 |
$consents = explode(',', $consents);
|
521 |
foreach ($consents as $id) {
|
522 |
-
if (
|
523 |
-
|
524 |
-
} else if (Consent::getInstance()->exists($id)) {
|
525 |
-
$output[] = $id;
|
526 |
}
|
527 |
}
|
528 |
break;
|
309 |
return $output;
|
310 |
}
|
311 |
|
312 |
+
/**
|
313 |
+
* @return bool
|
314 |
+
*/
|
315 |
+
public static function hasMailPluginInstalled() {
|
316 |
+
foreach(self::getActivePlugins() as $activePlugin) {
|
317 |
+
if(strpos(strtolower($activePlugin), 'mail') !== false) {
|
318 |
+
return true;
|
319 |
+
}
|
320 |
+
}
|
321 |
+
return false;
|
322 |
+
}
|
323 |
+
|
324 |
/**
|
325 |
* @param $data
|
326 |
* @return string
|
509 |
return $output;
|
510 |
}
|
511 |
|
512 |
+
/**
|
513 |
+
* @return array
|
514 |
+
*/
|
515 |
+
public static function getRequiredConsentIds() {
|
516 |
+
$output = array();
|
517 |
+
$requiredConsents = Consent::getInstance()->getList(array(
|
518 |
+
'required' => array(
|
519 |
+
'value' => 1,
|
520 |
+
),
|
521 |
+
'active' => array(
|
522 |
+
'value' => 1
|
523 |
+
),
|
524 |
+
));
|
525 |
+
if (!empty($requiredConsents)) {
|
526 |
+
foreach ($requiredConsents as $requiredConsent) {
|
527 |
+
$output[] = intval($requiredConsent->getId());
|
528 |
+
}
|
529 |
+
}
|
530 |
+
return $output;
|
531 |
+
}
|
532 |
+
|
533 |
/**
|
534 |
* @return array|bool
|
535 |
*/
|
536 |
public static function getConsentIdsByCookie() {
|
537 |
$output = array();
|
538 |
+
$requiredConsents = Consent::getInstance()->getList(array(
|
539 |
+
'required' => array(
|
540 |
+
'value' => 1
|
541 |
+
),
|
542 |
+
'active' => array(
|
543 |
+
'value' => 1
|
544 |
+
)
|
545 |
+
));
|
546 |
+
$consents = (!empty($_COOKIE['wpgdprc-consent'])) ? esc_html($_COOKIE['wpgdprc-consent']) : '';
|
547 |
+
if (!empty($requiredConsents)) {
|
548 |
+
foreach ($requiredConsents as $requiredConsent) {
|
549 |
+
$output[] = intval($requiredConsent->getId());
|
550 |
+
}
|
551 |
+
}
|
552 |
if (!empty($consents)) {
|
553 |
switch ($consents) {
|
554 |
case 'decline' :
|
|
|
555 |
break;
|
556 |
case 'accept' :
|
557 |
$consents = Consent::getInstance()->getList(array(
|
558 |
+
'required' => array(
|
559 |
+
'value' => 0
|
560 |
+
),
|
561 |
+
'active' => array(
|
562 |
+
'value' => 1
|
563 |
+
)
|
564 |
));
|
565 |
foreach ($consents as $consent) {
|
566 |
+
$output[] = intval($consent->getId());
|
567 |
}
|
568 |
break;
|
569 |
default :
|
570 |
$consents = explode(',', $consents);
|
571 |
foreach ($consents as $id) {
|
572 |
+
if (is_numeric($id) && Consent::getInstance()->exists($id)) {
|
573 |
+
$output[] = intval($id);
|
|
|
|
|
574 |
}
|
575 |
}
|
576 |
break;
|
Includes/Integration.php
CHANGED
@@ -44,6 +44,8 @@ class Integration {
|
|
44 |
add_action('woocommerce_register_form', array(WC::getInstance(), 'addField'), 999);
|
45 |
add_action('woocommerce_checkout_update_order_meta', array(WC::getInstance(), 'addAcceptedDateToOrderMeta'));
|
46 |
add_action('woocommerce_admin_order_data_after_order_details', array(WC::getInstance(), 'displayAcceptedDateInOrderData'));
|
|
|
|
|
47 |
break;
|
48 |
case GForms::ID :
|
49 |
add_action('update_option_' . WP_GDPR_C_PREFIX . '_integrations_' . GForms::ID . '_forms', array(GForms::getInstance(), 'processIntegration'));
|
@@ -76,10 +78,12 @@ class Integration {
|
|
76 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_forms');
|
77 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_form_text');
|
78 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_error_message');
|
|
|
79 |
break;
|
80 |
default :
|
81 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_text');
|
82 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_error_message');
|
|
|
83 |
break;
|
84 |
}
|
85 |
}
|
@@ -139,15 +143,18 @@ class Integration {
|
|
139 |
$optionNameForms = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_forms';
|
140 |
$optionNameFormText = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_form_text';
|
141 |
$optionNameErrorMessage = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_error_message';
|
|
|
142 |
$enabledForms = GForms::getInstance()->getEnabledForms();
|
143 |
$output .= '<ul class="wpgdprc-checklist-options">';
|
144 |
foreach ($forms as $form) {
|
145 |
$formSettingId = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_form_' . $form['id'];
|
146 |
$textSettingId = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_form_text_' . $form['id'];
|
147 |
$errorSettingId = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_error_message_' . $form['id'];
|
|
|
148 |
$enabled = in_array($form['id'], $enabledForms);
|
149 |
$text = esc_html(GForms::getInstance()->getCheckboxText($form['id'], false));
|
150 |
$errorMessage = esc_html(GForms::getInstance()->getErrorMessage($form['id']));
|
|
|
151 |
$output .= '<li class="wpgdprc-clearfix">';
|
152 |
$output .= '<div class="wpgdprc-checkbox">';
|
153 |
$output .= '<input type="checkbox" name="' . $optionNameForms . '[]" id="' . $formSettingId . '" value="' . $form['id'] . '" tabindex="1" data-type="save_setting" data-option="' . $optionNameForms . '" data-append="1" ' . checked(true, $enabled, false) . ' />';
|
@@ -166,6 +173,12 @@ class Integration {
|
|
166 |
$output .= '<input type="text" name="' . $optionNameErrorMessage . '[' . $form['id'] . ']' . '" class="regular-text" id="' . $errorSettingId . '" placeholder="' . $errorMessage . '" value="' . $errorMessage . '" />';
|
167 |
$output .= '</div>';
|
168 |
$output .= '</div>';
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
$output .= Helper::getAllowedHTMLTagsOutput($plugin);
|
170 |
$output .= '</li>';
|
171 |
}
|
@@ -179,6 +192,8 @@ class Integration {
|
|
179 |
$optionNameErrorMessage = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_error_message';
|
180 |
$text = esc_html(self::getCheckboxText($plugin, false));
|
181 |
$errorMessage = esc_html(self::getErrorMessage($plugin));
|
|
|
|
|
182 |
$output .= '<ul class="wpgdprc-checklist-options">';
|
183 |
$output .= '<li class="wpgdprc-clearfix">';
|
184 |
$output .= '<div class="wpgdprc-setting">';
|
@@ -193,6 +208,12 @@ class Integration {
|
|
193 |
$output .= '<input type="text" name="' . $optionNameErrorMessage . '" class="regular-text" id="' . $optionNameErrorMessage . '" placeholder="' . $errorMessage . '" value="' . $errorMessage . '" />';
|
194 |
$output .= '</div>';
|
195 |
$output .= '</div>';
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
$output .= Helper::getAllowedHTMLTagsOutput($plugin);
|
197 |
$output .= '</li>';
|
198 |
$output .= '</ul>';
|
@@ -236,6 +257,22 @@ class Integration {
|
|
236 |
return apply_filters('wpgdprc_error_message', wp_kses($output, Helper::getAllowedHTMLTags($plugin)));
|
237 |
}
|
238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
/**
|
240 |
* @return mixed
|
241 |
*/
|
44 |
add_action('woocommerce_register_form', array(WC::getInstance(), 'addField'), 999);
|
45 |
add_action('woocommerce_checkout_update_order_meta', array(WC::getInstance(), 'addAcceptedDateToOrderMeta'));
|
46 |
add_action('woocommerce_admin_order_data_after_order_details', array(WC::getInstance(), 'displayAcceptedDateInOrderData'));
|
47 |
+
add_filter('manage_edit-shop_order_columns', array(WC::getInstance(), 'displayAcceptedDateColumnInOrderOverview'));
|
48 |
+
add_action('manage_shop_order_posts_custom_column', array(WC::getInstance(), 'displayAcceptedDateInOrderOverview'), 10, 2);
|
49 |
break;
|
50 |
case GForms::ID :
|
51 |
add_action('update_option_' . WP_GDPR_C_PREFIX . '_integrations_' . GForms::ID . '_forms', array(GForms::getInstance(), 'processIntegration'));
|
78 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_forms');
|
79 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_form_text');
|
80 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_error_message');
|
81 |
+
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_required_message');
|
82 |
break;
|
83 |
default :
|
84 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_text');
|
85 |
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_error_message');
|
86 |
+
register_setting(WP_GDPR_C_SLUG . '_integrations', WP_GDPR_C_PREFIX . '_integrations_' . $plugin['id'] . '_required_message');
|
87 |
break;
|
88 |
}
|
89 |
}
|
143 |
$optionNameForms = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_forms';
|
144 |
$optionNameFormText = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_form_text';
|
145 |
$optionNameErrorMessage = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_error_message';
|
146 |
+
$optionNameRequiredMessage = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_required_message';
|
147 |
$enabledForms = GForms::getInstance()->getEnabledForms();
|
148 |
$output .= '<ul class="wpgdprc-checklist-options">';
|
149 |
foreach ($forms as $form) {
|
150 |
$formSettingId = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_form_' . $form['id'];
|
151 |
$textSettingId = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_form_text_' . $form['id'];
|
152 |
$errorSettingId = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_error_message_' . $form['id'];
|
153 |
+
$requiredSettingId = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_required_message_' . $form['id'];
|
154 |
$enabled = in_array($form['id'], $enabledForms);
|
155 |
$text = esc_html(GForms::getInstance()->getCheckboxText($form['id'], false));
|
156 |
$errorMessage = esc_html(GForms::getInstance()->getErrorMessage($form['id']));
|
157 |
+
$requiredMessage = esc_html(GForms::getInstance()->getRequiredMessage($form['id']));
|
158 |
$output .= '<li class="wpgdprc-clearfix">';
|
159 |
$output .= '<div class="wpgdprc-checkbox">';
|
160 |
$output .= '<input type="checkbox" name="' . $optionNameForms . '[]" id="' . $formSettingId . '" value="' . $form['id'] . '" tabindex="1" data-type="save_setting" data-option="' . $optionNameForms . '" data-append="1" ' . checked(true, $enabled, false) . ' />';
|
173 |
$output .= '<input type="text" name="' . $optionNameErrorMessage . '[' . $form['id'] . ']' . '" class="regular-text" id="' . $errorSettingId . '" placeholder="' . $errorMessage . '" value="' . $errorMessage . '" />';
|
174 |
$output .= '</div>';
|
175 |
$output .= '</div>';
|
176 |
+
$output .= '<div class="wpgdprc-setting">';
|
177 |
+
$output .= '<label for="' . $requiredSettingId . '">' . __('Required message', WP_GDPR_C_SLUG) . '</label>';
|
178 |
+
$output .= '<div class="wpgdprc-options">';
|
179 |
+
$output .= '<input type="text" name="' . $optionNameRequiredMessage . '[' . $form['id'] . ']' . '" class="regular-text" id="' . $requiredSettingId . '" placeholder="' . $requiredMessage . '" value="' . $requiredMessage . '" />';
|
180 |
+
$output .= '</div>';
|
181 |
+
$output .= '</div>';
|
182 |
$output .= Helper::getAllowedHTMLTagsOutput($plugin);
|
183 |
$output .= '</li>';
|
184 |
}
|
192 |
$optionNameErrorMessage = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_error_message';
|
193 |
$text = esc_html(self::getCheckboxText($plugin, false));
|
194 |
$errorMessage = esc_html(self::getErrorMessage($plugin));
|
195 |
+
$optionNameRequiredMessage = WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_required_message';
|
196 |
+
$requiredMessage = esc_html(self::getRequiredMessage($plugin));
|
197 |
$output .= '<ul class="wpgdprc-checklist-options">';
|
198 |
$output .= '<li class="wpgdprc-clearfix">';
|
199 |
$output .= '<div class="wpgdprc-setting">';
|
208 |
$output .= '<input type="text" name="' . $optionNameErrorMessage . '" class="regular-text" id="' . $optionNameErrorMessage . '" placeholder="' . $errorMessage . '" value="' . $errorMessage . '" />';
|
209 |
$output .= '</div>';
|
210 |
$output .= '</div>';
|
211 |
+
$output .= '<div class="wpgdprc-setting">';
|
212 |
+
$output .= '<label for="' . $optionNameRequiredMessage . '">' . __('Required message', WP_GDPR_C_SLUG) . '</label>';
|
213 |
+
$output .= '<div class="wpgdprc-options">';
|
214 |
+
$output .= '<input type="text" name="' . $optionNameRequiredMessage . '" class="regular-text" id="' . $optionNameRequiredMessage . '" placeholder="' . $requiredMessage . '" value="' . $requiredMessage . '" />';
|
215 |
+
$output .= '</div>';
|
216 |
+
$output .= '</div>';
|
217 |
$output .= Helper::getAllowedHTMLTagsOutput($plugin);
|
218 |
$output .= '</li>';
|
219 |
$output .= '</ul>';
|
257 |
return apply_filters('wpgdprc_error_message', wp_kses($output, Helper::getAllowedHTMLTags($plugin)));
|
258 |
}
|
259 |
|
260 |
+
/**
|
261 |
+
* @param string $plugin
|
262 |
+
* @return mixed
|
263 |
+
*/
|
264 |
+
public static function getRequiredMessage($plugin = '') {
|
265 |
+
$output = '';
|
266 |
+
if (!empty($plugin)) {
|
267 |
+
$output = get_option(WP_GDPR_C_PREFIX . '_integrations_' . $plugin . '_required_message');
|
268 |
+
$output = apply_filters('wpgdprc_' . $plugin . '_required_message', $output);
|
269 |
+
}
|
270 |
+
if (empty($output)) {
|
271 |
+
$output = __('You need to accept this checkbox.', WP_GDPR_C_SLUG);
|
272 |
+
}
|
273 |
+
return apply_filters('wpgdprc_required_message', esc_attr($output));
|
274 |
+
}
|
275 |
+
|
276 |
/**
|
277 |
* @return mixed
|
278 |
*/
|
Includes/Page.php
CHANGED
@@ -228,6 +228,18 @@ class Page {
|
|
228 |
*/
|
229 |
private static function renderChecklistPage() {
|
230 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
<p><?php _e('Below we ask you what private data you currently collect and provide you with tips to comply.', WP_GDPR_C_SLUG); ?></p>
|
232 |
<ul class="wpgdprc-list">
|
233 |
<?php
|
@@ -423,11 +435,13 @@ class Page {
|
|
423 |
$snippet = (isset($_POST['snippet'])) ? stripslashes($_POST['snippet']) : $consent->getSnippet();
|
424 |
$wrap = (isset($_POST['wrap']) && array_key_exists($_POST['wrap'], Consent::getPossibleCodeWraps())) ? esc_html($_POST['wrap']) : $consent->getWrap();
|
425 |
$placement = (isset($_POST['placement']) && array_key_exists($_POST['placement'], Consent::getPossiblePlacements())) ? esc_html($_POST['placement']) : $consent->getPlacement();
|
|
|
426 |
$consent->setTitle($title);
|
427 |
$consent->setDescription($description);
|
428 |
$consent->setSnippet($snippet);
|
429 |
$consent->setWrap($wrap);
|
430 |
$consent->setPlacement($placement);
|
|
|
431 |
$consent->setActive($active);
|
432 |
$id = $consent->save();
|
433 |
if (!empty($id)) {
|
@@ -435,19 +449,19 @@ class Page {
|
|
435 |
}
|
436 |
}
|
437 |
?>
|
438 |
-
<form method="post" action=""
|
439 |
<?php wp_nonce_field('consent_create_or_update', 'consent_nonce'); ?>
|
440 |
<p><strong><?php _e('Add New Consent', WP_GDPR_C_SLUG); ?></strong></p>
|
441 |
<div class="wpgdprc-setting">
|
442 |
<label for="wpgdprc_active"><?php _e('Active', WP_GDPR_C_SLUG); ?></label>
|
443 |
<div class="wpgdprc-options">
|
444 |
-
<input type="checkbox" name="active" id="wpgdprc_active" value="1" <?php checked(1, $consent->getActive()); ?> />
|
445 |
</div>
|
446 |
</div>
|
447 |
<div class="wpgdprc-setting">
|
448 |
<label for="wpgdprc_title"><?php _e('Title', WP_GDPR_C_SLUG); ?></label>
|
449 |
<div class="wpgdprc-options">
|
450 |
-
<input type="text" name="title" class="regular-text" id="wpgdprc_title" value="<?php echo $consent->getTitle(); ?>" />
|
451 |
<div class="wpgdprc-information">
|
452 |
<p><?php _e('e.g. "Google Analytics" or "Advertising"', WP_GDPR_C_SLUG); ?></p>
|
453 |
</div>
|
@@ -519,6 +533,15 @@ class Page {
|
|
519 |
</div>
|
520 |
</div>
|
521 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
522 |
<p class="submit">
|
523 |
<?php submit_button((!empty($consentId) ? __('Update', WP_GDPR_C_SLUG) : __('Add', WP_GDPR_C_SLUG)), 'primary', 'submit', false); ?>
|
524 |
<a class="button button-secondary" href="<?php echo Helper::getPluginAdminUrl('consents'); ?>"><?php _e('Back to overview', WP_GDPR_C_SLUG); ?></a>
|
@@ -545,7 +568,7 @@ class Page {
|
|
545 |
<tr>
|
546 |
<th scope="col" width="10%"><?php _e('Consent', WP_GDPR_C_SLUG); ?></th>
|
547 |
<th scope="col" width="16%"><?php _e('Title', WP_GDPR_C_SLUG); ?></th>
|
548 |
-
<th scope="col" width="12%"><?php _e('
|
549 |
<th scope="col" width="20%"><?php _e('Modified at', WP_GDPR_C_SLUG); ?></th>
|
550 |
<th scope="col" width="20%"><?php _e('Created at', WP_GDPR_C_SLUG); ?></th>
|
551 |
<th scope="col" width="14%"><?php _e('Action', WP_GDPR_C_SLUG); ?></th>
|
@@ -564,11 +587,11 @@ class Page {
|
|
564 |
printf(
|
565 |
'<a href="%s">%s</a>',
|
566 |
Consent::getActionUrl($consent->getId()),
|
567 |
-
((!empty($title)) ? $title : __('(no title)'))
|
568 |
);
|
569 |
?>
|
570 |
</td>
|
571 |
-
<td><?php echo $consent->
|
572 |
<td><?php echo $consent->getDateModified(); ?></td>
|
573 |
<td><?php echo $consent->getDateCreated(); ?></td>
|
574 |
<td>
|
228 |
*/
|
229 |
private static function renderChecklistPage() {
|
230 |
?>
|
231 |
+
<?php if(Helper::hasMailPluginInstalled()) : ?>
|
232 |
+
<div class="wpgdprc-message wpgdprc-message--notice">
|
233 |
+
<?php
|
234 |
+
printf(
|
235 |
+
'<p><strong>%s:</strong> %s</p>',
|
236 |
+
strtoupper(__('Note', WP_GDPR_C_SLUG)),
|
237 |
+
__('We think you might have a mail plugin installed.', WP_GDPR_C_SLUG)
|
238 |
+
);
|
239 |
+
?>
|
240 |
+
<p><?php _e('Do you know where you got your email database from? Did you ask all the people on your newsletter(s) if they consent to receiving it? GDPR requires that all of the people in your email software has given you explicit permission to mail them.', WP_GDPR_C_SLUG); ?></p>
|
241 |
+
</div>
|
242 |
+
<?php endif; ?>
|
243 |
<p><?php _e('Below we ask you what private data you currently collect and provide you with tips to comply.', WP_GDPR_C_SLUG); ?></p>
|
244 |
<ul class="wpgdprc-list">
|
245 |
<?php
|
435 |
$snippet = (isset($_POST['snippet'])) ? stripslashes($_POST['snippet']) : $consent->getSnippet();
|
436 |
$wrap = (isset($_POST['wrap']) && array_key_exists($_POST['wrap'], Consent::getPossibleCodeWraps())) ? esc_html($_POST['wrap']) : $consent->getWrap();
|
437 |
$placement = (isset($_POST['placement']) && array_key_exists($_POST['placement'], Consent::getPossiblePlacements())) ? esc_html($_POST['placement']) : $consent->getPlacement();
|
438 |
+
$required = (isset($_POST['required'])) ? 1 : 0;
|
439 |
$consent->setTitle($title);
|
440 |
$consent->setDescription($description);
|
441 |
$consent->setSnippet($snippet);
|
442 |
$consent->setWrap($wrap);
|
443 |
$consent->setPlacement($placement);
|
444 |
+
$consent->setRequired($required);
|
445 |
$consent->setActive($active);
|
446 |
$id = $consent->save();
|
447 |
if (!empty($id)) {
|
449 |
}
|
450 |
}
|
451 |
?>
|
452 |
+
<form method="post" action="">
|
453 |
<?php wp_nonce_field('consent_create_or_update', 'consent_nonce'); ?>
|
454 |
<p><strong><?php _e('Add New Consent', WP_GDPR_C_SLUG); ?></strong></p>
|
455 |
<div class="wpgdprc-setting">
|
456 |
<label for="wpgdprc_active"><?php _e('Active', WP_GDPR_C_SLUG); ?></label>
|
457 |
<div class="wpgdprc-options">
|
458 |
+
<label><input type="checkbox" name="active" id="wpgdprc_active" value="1" <?php checked(1, $consent->getActive()); ?> /> <?php _e('Yes', WP_GDPR_C_SLUG); ?></label>
|
459 |
</div>
|
460 |
</div>
|
461 |
<div class="wpgdprc-setting">
|
462 |
<label for="wpgdprc_title"><?php _e('Title', WP_GDPR_C_SLUG); ?></label>
|
463 |
<div class="wpgdprc-options">
|
464 |
+
<input type="text" name="title" class="regular-text" id="wpgdprc_title" value="<?php echo $consent->getTitle(); ?>" required="required" />
|
465 |
<div class="wpgdprc-information">
|
466 |
<p><?php _e('e.g. "Google Analytics" or "Advertising"', WP_GDPR_C_SLUG); ?></p>
|
467 |
</div>
|
533 |
</div>
|
534 |
</div>
|
535 |
</div>
|
536 |
+
<div class="wpgdprc-setting">
|
537 |
+
<label for="wpgdprc_active"><?php _e('Required', WP_GDPR_C_SLUG); ?></label>
|
538 |
+
<div class="wpgdprc-options">
|
539 |
+
<label><input type="checkbox" name="required" id="wpgdprc-required" value="1" <?php checked(1, $consent->getRequired()); ?> /> <?php _e('Yes', WP_GDPR_C_SLUG); ?></label>
|
540 |
+
<div class="wpgdprc-information">
|
541 |
+
<p><?php _e('Ticking this checkbox means this Consent will always be triggered so users cannot opt-in or opt-out.', WP_GDPR_C_SLUG); ?></p>
|
542 |
+
</div>
|
543 |
+
</div>
|
544 |
+
</div>
|
545 |
<p class="submit">
|
546 |
<?php submit_button((!empty($consentId) ? __('Update', WP_GDPR_C_SLUG) : __('Add', WP_GDPR_C_SLUG)), 'primary', 'submit', false); ?>
|
547 |
<a class="button button-secondary" href="<?php echo Helper::getPluginAdminUrl('consents'); ?>"><?php _e('Back to overview', WP_GDPR_C_SLUG); ?></a>
|
568 |
<tr>
|
569 |
<th scope="col" width="10%"><?php _e('Consent', WP_GDPR_C_SLUG); ?></th>
|
570 |
<th scope="col" width="16%"><?php _e('Title', WP_GDPR_C_SLUG); ?></th>
|
571 |
+
<th scope="col" width="12%"><?php _e('Required', WP_GDPR_C_SLUG); ?></th>
|
572 |
<th scope="col" width="20%"><?php _e('Modified at', WP_GDPR_C_SLUG); ?></th>
|
573 |
<th scope="col" width="20%"><?php _e('Created at', WP_GDPR_C_SLUG); ?></th>
|
574 |
<th scope="col" width="14%"><?php _e('Action', WP_GDPR_C_SLUG); ?></th>
|
587 |
printf(
|
588 |
'<a href="%s">%s</a>',
|
589 |
Consent::getActionUrl($consent->getId()),
|
590 |
+
((!empty($title)) ? $title : __('(no title)', WP_GDPR_C_SLUG))
|
591 |
);
|
592 |
?>
|
593 |
</td>
|
594 |
+
<td><?php echo ($consent->getRequired()) ? __('Yes', WP_GDPR_C_SLUG) : __('No', WP_GDPR_C_SLUG); ?></td>
|
595 |
<td><?php echo $consent->getDateModified(); ?></td>
|
596 |
<td><?php echo $consent->getDateCreated(); ?></td>
|
597 |
<td>
|
assets/css/front.css
CHANGED
@@ -411,6 +411,10 @@ div.wpgdprc-consent-modal footer.wpgdprc-consent-modal__footer {
|
|
411 |
}
|
412 |
}
|
413 |
|
|
|
|
|
|
|
|
|
414 |
@keyframes wpgdprcFadeIn {
|
415 |
from {
|
416 |
opacity: 0;
|
411 |
}
|
412 |
}
|
413 |
|
414 |
+
abbr.wpgdprc-required + abbr.required {
|
415 |
+
display: none !important;
|
416 |
+
}
|
417 |
+
|
418 |
@keyframes wpgdprcFadeIn {
|
419 |
from {
|
420 |
opacity: 0;
|
languages/wp-gdpr-compliance.pot
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: WP GDPR Compliance\n"
|
5 |
-
"POT-Creation-Date: 2018-06
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: Van Ons <info@van-ons.nl>\n"
|
8 |
"MIME-Version: 1.0\n"
|
@@ -17,46 +17,50 @@ msgstr ""
|
|
17 |
"X-Poedit-Basepath: ..\n"
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
|
20 |
-
#: Includes/Action.php:
|
21 |
msgid "Data Access Request"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: Includes/Action.php:
|
25 |
msgid "Couldn't create the required database tables."
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: Includes/Action.php:
|
29 |
msgid "Retry"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: Includes/Action.php:
|
33 |
msgid "My settings"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: Includes/Action.php:
|
37 |
msgid "Accept"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: Includes/Action.php:
|
41 |
-
|
|
|
|
|
|
|
|
|
42 |
msgid "Note"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: Includes/Action.php:
|
46 |
msgid ""
|
47 |
"These settings will only apply to the browser and device you are currently "
|
48 |
"using."
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: Includes/Action.php:
|
52 |
msgid "Enable"
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: Includes/Action.php:
|
56 |
msgid "Save my settings"
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: Includes/Action.php:
|
60 |
msgid "Close modal"
|
61 |
msgstr ""
|
62 |
|
@@ -224,11 +228,11 @@ msgstr ""
|
|
224 |
msgid "This request has already been processed."
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: Includes/Consent.php:
|
228 |
msgid "Privacy Settings"
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: Includes/Consent.php:
|
232 |
msgid ""
|
233 |
"This site uses functional cookies and external scripts to improve your "
|
234 |
"experience. Which cookies and scripts are used and how they impact your "
|
@@ -236,25 +240,25 @@ msgid ""
|
|
236 |
"Your choices will not impact your visit."
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: Includes/Consent.php:
|
240 |
msgid ""
|
241 |
"This site uses functional cookies and external scripts to improve your "
|
242 |
"experience."
|
243 |
msgstr ""
|
244 |
|
245 |
-
#: Includes/Consent.php:
|
246 |
msgid "Wrap my code snippet with <script> tags"
|
247 |
msgstr ""
|
248 |
|
249 |
-
#: Includes/Consent.php:
|
250 |
msgid "Do not wrap my code snippet"
|
251 |
msgstr ""
|
252 |
|
253 |
-
#: Includes/Consent.php:
|
254 |
msgid "Head"
|
255 |
msgstr ""
|
256 |
|
257 |
-
#: Includes/Consent.php:
|
258 |
msgid "Footer"
|
259 |
msgstr ""
|
260 |
|
@@ -276,7 +280,7 @@ msgid "Display Name"
|
|
276 |
msgstr ""
|
277 |
|
278 |
#: Includes/Data.php:54 Includes/Data.php:63 Includes/Data.php:70
|
279 |
-
#: Includes/Page.php:
|
280 |
msgid "Email Address"
|
281 |
msgstr ""
|
282 |
|
@@ -296,7 +300,7 @@ msgstr ""
|
|
296 |
msgid "Content"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: Includes/Data.php:64 Includes/Page.php:
|
300 |
msgid "IP Address"
|
301 |
msgstr ""
|
302 |
|
@@ -339,7 +343,8 @@ msgstr ""
|
|
339 |
|
340 |
#: Includes/Extensions/CF7.php:184 Includes/Extensions/GForms.php:113
|
341 |
#: Includes/Extensions/GForms.php:129 Includes/Extensions/GForms.php:149
|
342 |
-
#: Includes/Extensions/WC.php:69 Includes/Extensions/
|
|
|
343 |
msgid "Not accepted."
|
344 |
msgstr ""
|
345 |
|
@@ -348,6 +353,7 @@ msgid "GDPR accepted on:"
|
|
348 |
msgstr ""
|
349 |
|
350 |
#: Includes/Extensions/GForms.php:58 Includes/Extensions/GForms.php:97
|
|
|
351 |
msgid "Privacy"
|
352 |
msgstr ""
|
353 |
|
@@ -356,10 +362,6 @@ msgstr ""
|
|
356 |
msgid "Accepted on %s."
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: Includes/Extensions/WP.php:24
|
360 |
-
msgid "required"
|
361 |
-
msgstr ""
|
362 |
-
|
363 |
#: Includes/Extensions/WP.php:37
|
364 |
msgid "Comment Submission Failure"
|
365 |
msgstr ""
|
@@ -463,44 +465,52 @@ msgid ""
|
|
463 |
"mention if you will send or share the data with any 3rd-parties and which."
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: Includes/Integration.php:
|
467 |
#, php-format
|
468 |
msgid "Form: %s"
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: Includes/Integration.php:
|
472 |
msgid "Activate for this form:"
|
473 |
msgstr ""
|
474 |
|
475 |
-
#: Includes/Integration.php:
|
476 |
-
#: Includes/Integration.php:
|
477 |
msgid "Checkbox text"
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: Includes/Integration.php:
|
481 |
-
#: Includes/Integration.php:
|
482 |
msgid "Error message"
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: Includes/Integration.php:
|
486 |
msgid "No forms found."
|
487 |
msgstr ""
|
488 |
|
489 |
-
#: Includes/Integration.php:
|
|
|
|
|
|
|
|
|
490 |
msgid ""
|
491 |
"By using this form you agree with the storage and handling of your data by "
|
492 |
"this website."
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: Includes/Integration.php:
|
496 |
msgid "Please accept the privacy checkbox."
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: Includes/Integration.php:
|
|
|
|
|
|
|
|
|
500 |
msgid "Privacy Policy"
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: Includes/Integration.php:
|
504 |
#, php-format
|
505 |
msgid ""
|
506 |
"Below we show you all of the data stored by %s on %s. Select the data you "
|
@@ -509,33 +519,33 @@ msgid ""
|
|
509 |
"request. When your data is anonymised you will receive an email confirmation."
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: Includes/Integration.php:
|
513 |
msgid "WordPress Comments"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: Includes/Integration.php:
|
517 |
msgid ""
|
518 |
"When activated the GDPR checkbox will be added automatically just above the "
|
519 |
"submit button."
|
520 |
msgstr ""
|
521 |
|
522 |
-
#: Includes/Integration.php:
|
523 |
msgid "Contact Form 7"
|
524 |
msgstr ""
|
525 |
|
526 |
-
#: Includes/Integration.php:
|
527 |
msgid "A GDPR form tag will be automatically added to every form you activate."
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: Includes/Integration.php:
|
531 |
msgid "Gravity Forms"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: Includes/Integration.php:
|
535 |
msgid "WooCommerce"
|
536 |
msgstr ""
|
537 |
|
538 |
-
#: Includes/Integration.php:
|
539 |
msgid ""
|
540 |
"The GDPR checkbox will be added automatically at the end of your checkout "
|
541 |
"page."
|
@@ -545,7 +555,7 @@ msgstr ""
|
|
545 |
msgid "Integrations"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: Includes/Page.php:57 Includes/Page.php:
|
549 |
msgid "Consents"
|
550 |
msgstr ""
|
551 |
|
@@ -553,7 +563,7 @@ msgstr ""
|
|
553 |
msgid "Checklist"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#: Includes/Page.php:78 wp-gdpr-compliance.php:
|
557 |
msgid "Settings"
|
558 |
msgstr ""
|
559 |
|
@@ -626,25 +636,37 @@ msgstr ""
|
|
626 |
msgid "More plugins will be added in the future."
|
627 |
msgstr ""
|
628 |
|
629 |
-
#: Includes/Page.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
630 |
msgid ""
|
631 |
"Below we ask you what private data you currently collect and provide you "
|
632 |
"with tips to comply."
|
633 |
msgstr ""
|
634 |
|
635 |
-
#: Includes/Page.php:
|
636 |
msgid "Select an option"
|
637 |
msgstr ""
|
638 |
|
639 |
-
#: Includes/Page.php:
|
640 |
msgid "Link text"
|
641 |
msgstr ""
|
642 |
|
643 |
-
#: Includes/Page.php:
|
644 |
msgid "Request User Data"
|
645 |
msgstr ""
|
646 |
|
647 |
-
#: Includes/Page.php:
|
648 |
msgid ""
|
649 |
"Allow your site's visitors to request their data stored in the WordPress "
|
650 |
"database (comments, WooCommerce orders etc.). Data found is send to their "
|
@@ -652,34 +674,34 @@ msgid ""
|
|
652 |
"data anonymised."
|
653 |
msgstr ""
|
654 |
|
655 |
-
#: Includes/Page.php:
|
656 |
msgid "Activate"
|
657 |
msgstr ""
|
658 |
|
659 |
-
#: Includes/Page.php:
|
660 |
msgid "Activate page"
|
661 |
msgstr ""
|
662 |
|
663 |
-
#: Includes/Page.php:
|
664 |
#, php-format
|
665 |
msgid ""
|
666 |
"Enabling this will create one private page containing the necessary "
|
667 |
"shortcode: %s. You can determine when and how to publish this page yourself."
|
668 |
msgstr ""
|
669 |
|
670 |
-
#: Includes/Page.php:
|
671 |
msgid "Page"
|
672 |
msgstr ""
|
673 |
|
674 |
-
#: Includes/Page.php:
|
675 |
msgid "Click here to edit this page"
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: Includes/Page.php:
|
679 |
msgid "Anonymise request explanation"
|
680 |
msgstr ""
|
681 |
|
682 |
-
#: Includes/Page.php:
|
683 |
msgid ""
|
684 |
"Your visitors can give permission to all of the created Consents (scripts) "
|
685 |
"through a Consent bar at the bottom of their screen. There they can also "
|
@@ -687,86 +709,101 @@ msgid ""
|
|
687 |
"Consents. Once their settings are saved the bar disappears for 365 days."
|
688 |
msgstr ""
|
689 |
|
690 |
-
#: Includes/Page.php:
|
691 |
#, php-format
|
692 |
msgid ""
|
693 |
"Let your visitors re-access their settings by placing a link to the modal "
|
694 |
"with the shortcode %s or add the \"%s\" class to a menu item."
|
695 |
msgstr ""
|
696 |
|
697 |
-
#: Includes/Page.php:
|
698 |
msgid "Bar: Explanation"
|
699 |
msgstr ""
|
700 |
|
701 |
-
#: Includes/Page.php:
|
702 |
msgid "Modal: Title"
|
703 |
msgstr ""
|
704 |
|
705 |
-
#: Includes/Page.php:
|
706 |
msgid "Modal: Explanation"
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: Includes/Page.php:
|
710 |
msgid "Add New Consent"
|
711 |
msgstr ""
|
712 |
|
713 |
-
#: Includes/Page.php:
|
714 |
msgid "Active"
|
715 |
msgstr ""
|
716 |
|
717 |
-
#: Includes/Page.php:
|
|
|
|
|
|
|
|
|
|
|
718 |
msgid "Title"
|
719 |
msgstr ""
|
720 |
|
721 |
-
#: Includes/Page.php:
|
722 |
msgid "e.g. \"Google Analytics\" or \"Advertising\""
|
723 |
msgstr ""
|
724 |
|
725 |
-
#: Includes/Page.php:
|
726 |
msgid "Description"
|
727 |
msgstr ""
|
728 |
|
729 |
-
#: Includes/Page.php:
|
730 |
msgid "Describe your consent script as thoroughly as possible."
|
731 |
msgstr ""
|
732 |
|
733 |
-
#: Includes/Page.php:
|
734 |
msgid "Code Snippet"
|
735 |
msgstr ""
|
736 |
|
737 |
-
#: Includes/Page.php:
|
738 |
msgid "Code snippets for Google Analytics, Facebook Pixel, etc."
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: Includes/Page.php:
|
742 |
msgid "Code Wrap"
|
743 |
msgstr ""
|
744 |
|
745 |
-
#: Includes/Page.php:
|
746 |
msgid "Placement"
|
747 |
msgstr ""
|
748 |
|
749 |
-
#: Includes/Page.php:
|
750 |
msgid "Snippet will be added to the HEAD section."
|
751 |
msgstr ""
|
752 |
|
753 |
-
#: Includes/Page.php:
|
754 |
msgid "Snippet will be added to the FOOTER section."
|
755 |
msgstr ""
|
756 |
|
757 |
-
#: Includes/Page.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
758 |
msgid "Update"
|
759 |
msgstr ""
|
760 |
|
761 |
-
#: Includes/Page.php:
|
762 |
msgid "Add"
|
763 |
msgstr ""
|
764 |
|
765 |
-
#: Includes/Page.php:
|
766 |
msgid "Back to overview"
|
767 |
msgstr ""
|
768 |
|
769 |
-
#: Includes/Page.php:
|
770 |
msgid ""
|
771 |
"Ask your visitors for permission to enable certain scripts for tracking or "
|
772 |
"advertising purposes. Add a Consent for each type of script you are "
|
@@ -774,111 +811,104 @@ msgid ""
|
|
774 |
"given."
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: Includes/Page.php:
|
778 |
msgctxt "consent"
|
779 |
msgid "Add New"
|
780 |
msgstr ""
|
781 |
|
782 |
-
#: Includes/Page.php:
|
783 |
msgid "Consent"
|
784 |
msgstr ""
|
785 |
|
786 |
-
#: Includes/Page.php:
|
787 |
msgid "Modified at"
|
788 |
msgstr ""
|
789 |
|
790 |
-
#: Includes/Page.php:
|
791 |
msgid "Created at"
|
792 |
msgstr ""
|
793 |
|
794 |
-
#: Includes/Page.php:
|
795 |
msgid "Action"
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: Includes/Page.php:
|
799 |
-
|
|
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: Includes/Page.php:
|
803 |
msgid "Edit"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: Includes/Page.php:
|
807 |
msgid "Remove"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: Includes/Page.php:
|
811 |
-
msgid "Yes"
|
812 |
-
msgstr ""
|
813 |
-
|
814 |
-
#: Includes/Page.php:590 wp-gdpr-compliance.php:185 wp-gdpr-compliance.php:203
|
815 |
-
msgid "No"
|
816 |
-
msgstr ""
|
817 |
-
|
818 |
-
#: Includes/Page.php:611 Includes/Page.php:705 Includes/Page.php:787
|
819 |
#, php-format
|
820 |
msgid "%d of %d results found"
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: Includes/Page.php:
|
824 |
msgid "No consents found."
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: Includes/Page.php:
|
828 |
msgid ""
|
829 |
"Anonymise a request by ticking the checkbox and clicking on the green "
|
830 |
"anonymise button below."
|
831 |
msgstr ""
|
832 |
|
833 |
-
#: Includes/Page.php:
|
834 |
msgid "WordPress Users"
|
835 |
msgstr ""
|
836 |
|
837 |
-
#: Includes/Page.php:
|
838 |
msgid "Request"
|
839 |
msgstr ""
|
840 |
|
841 |
-
#: Includes/Page.php:
|
842 |
msgid "Type"
|
843 |
msgstr ""
|
844 |
|
845 |
-
#: Includes/Page.php:
|
846 |
msgid "Date"
|
847 |
msgstr ""
|
848 |
|
849 |
-
#: Includes/Page.php:
|
850 |
msgid "Processed"
|
851 |
msgstr ""
|
852 |
|
853 |
-
#: Includes/Page.php:
|
854 |
msgid "View"
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: Includes/Page.php:
|
858 |
msgid "Anonymise selected request(s)"
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: Includes/Page.php:
|
862 |
msgid "No requests found."
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: Includes/Page.php:
|
866 |
msgid "ID"
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: Includes/Page.php:
|
870 |
msgid "Requests to Process"
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: Includes/Page.php:
|
874 |
msgid "Status"
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: Includes/Page.php:
|
878 |
msgid "Manage"
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: Includes/Page.php:
|
882 |
msgid "Expired"
|
883 |
msgstr ""
|
884 |
|
@@ -934,6 +964,6 @@ msgstr ""
|
|
934 |
msgid "Send"
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: wp-gdpr-compliance.php:
|
938 |
msgid "View WP GDPR Compliance settings"
|
939 |
msgstr ""
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: WP GDPR Compliance\n"
|
5 |
+
"POT-Creation-Date: 2018-07-06 17:05+0200\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: Van Ons <info@van-ons.nl>\n"
|
8 |
"MIME-Version: 1.0\n"
|
17 |
"X-Poedit-Basepath: ..\n"
|
18 |
"X-Poedit-SearchPath-0: .\n"
|
19 |
|
20 |
+
#: Includes/Action.php:93
|
21 |
msgid "Data Access Request"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: Includes/Action.php:129
|
25 |
msgid "Couldn't create the required database tables."
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: Includes/Action.php:133
|
29 |
msgid "Retry"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: Includes/Action.php:152 Includes/Page.php:392 Includes/Shortcode.php:154
|
33 |
msgid "My settings"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: Includes/Action.php:158
|
37 |
msgid "Accept"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: Includes/Action.php:183 Includes/Page.php:590
|
41 |
+
msgid "(no title)"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: Includes/Action.php:196 Includes/Helper.php:116 Includes/Helper.php:171
|
45 |
+
#: Includes/Page.php:236 Includes/Page.php:336 Includes/Page.php:387
|
46 |
msgid "Note"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: Includes/Action.php:197
|
50 |
msgid ""
|
51 |
"These settings will only apply to the browser and device you are currently "
|
52 |
"using."
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: Includes/Action.php:222
|
56 |
msgid "Enable"
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: Includes/Action.php:231
|
60 |
msgid "Save my settings"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: Includes/Action.php:238
|
64 |
msgid "Close modal"
|
65 |
msgstr ""
|
66 |
|
228 |
msgid "This request has already been processed."
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: Includes/Consent.php:55
|
232 |
msgid "Privacy Settings"
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: Includes/Consent.php:68
|
236 |
msgid ""
|
237 |
"This site uses functional cookies and external scripts to improve your "
|
238 |
"experience. Which cookies and scripts are used and how they impact your "
|
240 |
"Your choices will not impact your visit."
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: Includes/Consent.php:81
|
244 |
msgid ""
|
245 |
"This site uses functional cookies and external scripts to improve your "
|
246 |
"experience."
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: Includes/Consent.php:271
|
250 |
msgid "Wrap my code snippet with <script> tags"
|
251 |
msgstr ""
|
252 |
|
253 |
+
#: Includes/Consent.php:272
|
254 |
msgid "Do not wrap my code snippet"
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: Includes/Consent.php:281 Includes/Page.php:524
|
258 |
msgid "Head"
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: Includes/Consent.php:282 Includes/Page.php:529
|
262 |
msgid "Footer"
|
263 |
msgstr ""
|
264 |
|
280 |
msgstr ""
|
281 |
|
282 |
#: Includes/Data.php:54 Includes/Data.php:63 Includes/Data.php:70
|
283 |
+
#: Includes/Page.php:761
|
284 |
msgid "Email Address"
|
285 |
msgstr ""
|
286 |
|
300 |
msgid "Content"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: Includes/Data.php:64 Includes/Page.php:680 Includes/Page.php:762
|
304 |
msgid "IP Address"
|
305 |
msgstr ""
|
306 |
|
343 |
|
344 |
#: Includes/Extensions/CF7.php:184 Includes/Extensions/GForms.php:113
|
345 |
#: Includes/Extensions/GForms.php:129 Includes/Extensions/GForms.php:149
|
346 |
+
#: Includes/Extensions/WC.php:69 Includes/Extensions/WC.php:96
|
347 |
+
#: Includes/Extensions/WP.php:69
|
348 |
msgid "Not accepted."
|
349 |
msgstr ""
|
350 |
|
353 |
msgstr ""
|
354 |
|
355 |
#: Includes/Extensions/GForms.php:58 Includes/Extensions/GForms.php:97
|
356 |
+
#: Includes/Extensions/WC.php:84
|
357 |
msgid "Privacy"
|
358 |
msgstr ""
|
359 |
|
362 |
msgid "Accepted on %s."
|
363 |
msgstr ""
|
364 |
|
|
|
|
|
|
|
|
|
365 |
#: Includes/Extensions/WP.php:37
|
366 |
msgid "Comment Submission Failure"
|
367 |
msgstr ""
|
465 |
"mention if you will send or share the data with any 3rd-parties and which."
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: Includes/Integration.php:117 Includes/Integration.php:161
|
469 |
#, php-format
|
470 |
msgid "Form: %s"
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: Includes/Integration.php:118 Includes/Integration.php:162
|
474 |
msgid "Activate for this form:"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: Includes/Integration.php:121 Includes/Integration.php:165
|
478 |
+
#: Includes/Integration.php:200 Includes/Page.php:367
|
479 |
msgid "Checkbox text"
|
480 |
msgstr ""
|
481 |
|
482 |
+
#: Includes/Integration.php:127 Includes/Integration.php:171
|
483 |
+
#: Includes/Integration.php:206
|
484 |
msgid "Error message"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: Includes/Integration.php:137 Includes/Integration.php:187
|
488 |
msgid "No forms found."
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: Includes/Integration.php:177 Includes/Integration.php:212
|
492 |
+
msgid "Required message"
|
493 |
+
msgstr ""
|
494 |
+
|
495 |
+
#: Includes/Integration.php:238 Includes/Integration.php:294
|
496 |
msgid ""
|
497 |
"By using this form you agree with the storage and handling of your data by "
|
498 |
"this website."
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: Includes/Integration.php:255
|
502 |
msgid "Please accept the privacy checkbox."
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: Includes/Integration.php:271
|
506 |
+
msgid "You need to accept this checkbox."
|
507 |
+
msgstr ""
|
508 |
+
|
509 |
+
#: Includes/Integration.php:282 Includes/Page.php:303 Includes/Page.php:305
|
510 |
msgid "Privacy Policy"
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: Includes/Integration.php:308
|
514 |
#, php-format
|
515 |
msgid ""
|
516 |
"Below we show you all of the data stored by %s on %s. Select the data you "
|
519 |
"request. When your data is anonymised you will receive an email confirmation."
|
520 |
msgstr ""
|
521 |
|
522 |
+
#: Includes/Integration.php:347 Includes/Page.php:668
|
523 |
msgid "WordPress Comments"
|
524 |
msgstr ""
|
525 |
|
526 |
+
#: Includes/Integration.php:348
|
527 |
msgid ""
|
528 |
"When activated the GDPR checkbox will be added automatically just above the "
|
529 |
"submit button."
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: Includes/Integration.php:362
|
533 |
msgid "Contact Form 7"
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: Includes/Integration.php:363 Includes/Integration.php:370
|
537 |
msgid "A GDPR form tag will be automatically added to every form you activate."
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: Includes/Integration.php:369
|
541 |
msgid "Gravity Forms"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: Includes/Integration.php:376 Includes/Page.php:669
|
545 |
msgid "WooCommerce"
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: Includes/Integration.php:377
|
549 |
msgid ""
|
550 |
"The GDPR checkbox will be added automatically at the end of your checkout "
|
551 |
"page."
|
555 |
msgid "Integrations"
|
556 |
msgstr ""
|
557 |
|
558 |
+
#: Includes/Page.php:57 Includes/Page.php:380
|
559 |
msgid "Consents"
|
560 |
msgstr ""
|
561 |
|
563 |
msgid "Checklist"
|
564 |
msgstr ""
|
565 |
|
566 |
+
#: Includes/Page.php:78 wp-gdpr-compliance.php:183
|
567 |
msgid "Settings"
|
568 |
msgstr ""
|
569 |
|
636 |
msgid "More plugins will be added in the future."
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: Includes/Page.php:237
|
640 |
+
msgid "We think you might have a mail plugin installed."
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: Includes/Page.php:240
|
644 |
+
msgid ""
|
645 |
+
"Do you know where you got your email database from? Did you ask all the "
|
646 |
+
"people on your newsletter(s) if they consent to receiving it? GDPR requires "
|
647 |
+
"that all of the people in your email software has given you explicit "
|
648 |
+
"permission to mail them."
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: Includes/Page.php:243
|
652 |
msgid ""
|
653 |
"Below we ask you what private data you currently collect and provide you "
|
654 |
"with tips to comply."
|
655 |
msgstr ""
|
656 |
|
657 |
+
#: Includes/Page.php:310 Includes/Page.php:354
|
658 |
msgid "Select an option"
|
659 |
msgstr ""
|
660 |
|
661 |
+
#: Includes/Page.php:318
|
662 |
msgid "Link text"
|
663 |
msgstr ""
|
664 |
|
665 |
+
#: Includes/Page.php:323
|
666 |
msgid "Request User Data"
|
667 |
msgstr ""
|
668 |
|
669 |
+
#: Includes/Page.php:325
|
670 |
msgid ""
|
671 |
"Allow your site's visitors to request their data stored in the WordPress "
|
672 |
"database (comments, WooCommerce orders etc.). Data found is send to their "
|
674 |
"data anonymised."
|
675 |
msgstr ""
|
676 |
|
677 |
+
#: Includes/Page.php:328
|
678 |
msgid "Activate"
|
679 |
msgstr ""
|
680 |
|
681 |
+
#: Includes/Page.php:330
|
682 |
msgid "Activate page"
|
683 |
msgstr ""
|
684 |
|
685 |
+
#: Includes/Page.php:338
|
686 |
#, php-format
|
687 |
msgid ""
|
688 |
"Enabling this will create one private page containing the necessary "
|
689 |
"shortcode: %s. You can determine when and how to publish this page yourself."
|
690 |
msgstr ""
|
691 |
|
692 |
+
#: Includes/Page.php:349
|
693 |
msgid "Page"
|
694 |
msgstr ""
|
695 |
|
696 |
+
#: Includes/Page.php:361
|
697 |
msgid "Click here to edit this page"
|
698 |
msgstr ""
|
699 |
|
700 |
+
#: Includes/Page.php:373
|
701 |
msgid "Anonymise request explanation"
|
702 |
msgstr ""
|
703 |
|
704 |
+
#: Includes/Page.php:382
|
705 |
msgid ""
|
706 |
"Your visitors can give permission to all of the created Consents (scripts) "
|
707 |
"through a Consent bar at the bottom of their screen. There they can also "
|
709 |
"Consents. Once their settings are saved the bar disappears for 365 days."
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: Includes/Page.php:389
|
713 |
#, php-format
|
714 |
msgid ""
|
715 |
"Let your visitors re-access their settings by placing a link to the modal "
|
716 |
"with the shortcode %s or add the \"%s\" class to a menu item."
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: Includes/Page.php:401
|
720 |
msgid "Bar: Explanation"
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: Includes/Page.php:407
|
724 |
msgid "Modal: Title"
|
725 |
msgstr ""
|
726 |
|
727 |
+
#: Includes/Page.php:413
|
728 |
msgid "Modal: Explanation"
|
729 |
msgstr ""
|
730 |
|
731 |
+
#: Includes/Page.php:454
|
732 |
msgid "Add New Consent"
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: Includes/Page.php:456 Includes/Page.php:575 Includes/Page.php:790
|
736 |
msgid "Active"
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: Includes/Page.php:458 Includes/Page.php:539 Includes/Page.php:594
|
740 |
+
#: Includes/Page.php:614 wp-gdpr-compliance.php:192 wp-gdpr-compliance.php:210
|
741 |
+
msgid "Yes"
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#: Includes/Page.php:462 Includes/Page.php:570
|
745 |
msgid "Title"
|
746 |
msgstr ""
|
747 |
|
748 |
+
#: Includes/Page.php:466
|
749 |
msgid "e.g. \"Google Analytics\" or \"Advertising\""
|
750 |
msgstr ""
|
751 |
|
752 |
+
#: Includes/Page.php:471
|
753 |
msgid "Description"
|
754 |
msgstr ""
|
755 |
|
756 |
+
#: Includes/Page.php:475
|
757 |
msgid "Describe your consent script as thoroughly as possible."
|
758 |
msgstr ""
|
759 |
|
760 |
+
#: Includes/Page.php:480
|
761 |
msgid "Code Snippet"
|
762 |
msgstr ""
|
763 |
|
764 |
+
#: Includes/Page.php:484
|
765 |
msgid "Code snippets for Google Analytics, Facebook Pixel, etc."
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: Includes/Page.php:489
|
769 |
msgid "Code Wrap"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: Includes/Page.php:506
|
773 |
msgid "Placement"
|
774 |
msgstr ""
|
775 |
|
776 |
+
#: Includes/Page.php:525
|
777 |
msgid "Snippet will be added to the HEAD section."
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: Includes/Page.php:530
|
781 |
msgid "Snippet will be added to the FOOTER section."
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: Includes/Page.php:537 Includes/Page.php:571
|
785 |
+
msgid "Required"
|
786 |
+
msgstr ""
|
787 |
+
|
788 |
+
#: Includes/Page.php:541
|
789 |
+
msgid ""
|
790 |
+
"Ticking this checkbox means this Consent will always be triggered so users "
|
791 |
+
"cannot opt-in or opt-out."
|
792 |
+
msgstr ""
|
793 |
+
|
794 |
+
#: Includes/Page.php:546
|
795 |
msgid "Update"
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: Includes/Page.php:546
|
799 |
msgid "Add"
|
800 |
msgstr ""
|
801 |
|
802 |
+
#: Includes/Page.php:547
|
803 |
msgid "Back to overview"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: Includes/Page.php:562
|
807 |
msgid ""
|
808 |
"Ask your visitors for permission to enable certain scripts for tracking or "
|
809 |
"advertising purposes. Add a Consent for each type of script you are "
|
811 |
"given."
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: Includes/Page.php:563
|
815 |
msgctxt "consent"
|
816 |
msgid "Add New"
|
817 |
msgstr ""
|
818 |
|
819 |
+
#: Includes/Page.php:569
|
820 |
msgid "Consent"
|
821 |
msgstr ""
|
822 |
|
823 |
+
#: Includes/Page.php:572
|
824 |
msgid "Modified at"
|
825 |
msgstr ""
|
826 |
|
827 |
+
#: Includes/Page.php:573
|
828 |
msgid "Created at"
|
829 |
msgstr ""
|
830 |
|
831 |
+
#: Includes/Page.php:574 Includes/Page.php:683
|
832 |
msgid "Action"
|
833 |
msgstr ""
|
834 |
|
835 |
+
#: Includes/Page.php:594 Includes/Page.php:614 wp-gdpr-compliance.php:193
|
836 |
+
#: wp-gdpr-compliance.php:211
|
837 |
+
msgid "No"
|
838 |
msgstr ""
|
839 |
|
840 |
+
#: Includes/Page.php:604
|
841 |
msgid "Edit"
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: Includes/Page.php:609
|
845 |
msgid "Remove"
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: Includes/Page.php:637 Includes/Page.php:731 Includes/Page.php:813
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
849 |
#, php-format
|
850 |
msgid "%d of %d results found"
|
851 |
msgstr ""
|
852 |
|
853 |
+
#: Includes/Page.php:641
|
854 |
msgid "No consents found."
|
855 |
msgstr ""
|
856 |
|
857 |
+
#: Includes/Page.php:665
|
858 |
msgid ""
|
859 |
"Anonymise a request by ticking the checkbox and clicking on the green "
|
860 |
"anonymise button below."
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: Includes/Page.php:667
|
864 |
msgid "WordPress Users"
|
865 |
msgstr ""
|
866 |
|
867 |
+
#: Includes/Page.php:678
|
868 |
msgid "Request"
|
869 |
msgstr ""
|
870 |
|
871 |
+
#: Includes/Page.php:679
|
872 |
msgid "Type"
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: Includes/Page.php:681 Includes/Page.php:763
|
876 |
msgid "Date"
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: Includes/Page.php:682
|
880 |
msgid "Processed"
|
881 |
msgstr ""
|
882 |
|
883 |
+
#: Includes/Page.php:698
|
884 |
msgid "View"
|
885 |
msgstr ""
|
886 |
|
887 |
+
#: Includes/Page.php:712
|
888 |
msgid "Anonymise selected request(s)"
|
889 |
msgstr ""
|
890 |
|
891 |
+
#: Includes/Page.php:737 Includes/Page.php:819
|
892 |
msgid "No requests found."
|
893 |
msgstr ""
|
894 |
|
895 |
+
#: Includes/Page.php:759
|
896 |
msgid "ID"
|
897 |
msgstr ""
|
898 |
|
899 |
+
#: Includes/Page.php:760
|
900 |
msgid "Requests to Process"
|
901 |
msgstr ""
|
902 |
|
903 |
+
#: Includes/Page.php:764
|
904 |
msgid "Status"
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: Includes/Page.php:782
|
908 |
msgid "Manage"
|
909 |
msgstr ""
|
910 |
|
911 |
+
#: Includes/Page.php:790
|
912 |
msgid "Expired"
|
913 |
msgstr ""
|
914 |
|
964 |
msgid "Send"
|
965 |
msgstr ""
|
966 |
|
967 |
+
#: wp-gdpr-compliance.php:183
|
968 |
msgid "View WP GDPR Compliance settings"
|
969 |
msgstr ""
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== WP GDPR Compliance ===
|
2 |
-
Contributors: donnyoexman, jeffreyvisser,
|
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: 4.9.4
|
6 |
Requires PHP: 5.3
|
7 |
-
Stable tag: 1.4.
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -39,6 +39,13 @@ You'll find answers to many of your questions on [wpgdprc.com](https://www.wpgdp
|
|
39 |
|
40 |
== Changelog ==
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
= 1.4.1 =
|
43 |
*Release date: June 12th, 2018*
|
44 |
* Also show the WordPress Comments checkbox for administrators.
|
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: 4.9.4
|
6 |
Requires PHP: 5.3
|
7 |
+
Stable tag: 1.4.2
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
39 |
|
40 |
== Changelog ==
|
41 |
|
42 |
+
= 1.4.2 =
|
43 |
+
*Release date: July 6th, 2018*
|
44 |
+
* Added the ability to add required 'Consents'. These Consents will always be triggered on page load.
|
45 |
+
* Added 'Privacy' column to the WooCommerce order overview.
|
46 |
+
* Added the ability to change the message of the required asterisk elements.
|
47 |
+
* Remove or re-add the GDPR fields from forms on plugin deactivation and activation.
|
48 |
+
|
49 |
= 1.4.1 =
|
50 |
*Release date: June 12th, 2018*
|
51 |
* Also show the WordPress Comments checkbox for administrators.
|
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.4.
|
8 |
Author: Van Ons
|
9 |
Author URI: https://www.van-ons.nl/
|
10 |
License: GPL2
|
@@ -64,6 +64,8 @@ define('WP_GDPR_C_URI_SVG', WP_GDPR_C_URI_ASSETS . '/svg');
|
|
64 |
// Let's do this!
|
65 |
spl_autoload_register(__NAMESPACE__ . '\\autoload');
|
66 |
add_action('plugins_loaded', array(WPGDPRC::getInstance(), 'init'));
|
|
|
|
|
67 |
|
68 |
/**
|
69 |
* Class WPGDPRC
|
@@ -114,10 +116,8 @@ class WPGDPRC {
|
|
114 |
if (Consent::getInstance()->getTotal(array('active' => array('value' => 1))) > 0) {
|
115 |
add_action('wp_footer', array(Action::getInstance(), 'addConsentBar'), 998);
|
116 |
add_action('wp_footer', array(Action::getInstance(), 'addConsentModal'), 999);
|
117 |
-
|
118 |
-
|
119 |
-
add_action('wp_footer', array(Action::getInstance(), 'addConsentsToFooter'), 999);
|
120 |
-
}
|
121 |
}
|
122 |
}
|
123 |
add_filter('wpgdprc_the_content', 'wptexturize');
|
@@ -130,7 +130,7 @@ class WPGDPRC {
|
|
130 |
|
131 |
public static function handleDatabaseTables() {
|
132 |
$dbVersion = get_option('wpgdprc_db_version', 0);
|
133 |
-
if (version_compare($dbVersion, '1.
|
134 |
return;
|
135 |
}
|
136 |
|
@@ -164,6 +164,14 @@ class WPGDPRC {
|
|
164 |
$wpdb->query($query);
|
165 |
update_option('wpgdprc_db_version', '1.1');
|
166 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
}
|
168 |
|
169 |
/**
|
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.4.2
|
8 |
Author: Van Ons
|
9 |
Author URI: https://www.van-ons.nl/
|
10 |
License: GPL2
|
64 |
// Let's do this!
|
65 |
spl_autoload_register(__NAMESPACE__ . '\\autoload');
|
66 |
add_action('plugins_loaded', array(WPGDPRC::getInstance(), 'init'));
|
67 |
+
register_activation_hook(__FILE__, array(Action::getInstance(), 'addTagsToFields'));
|
68 |
+
register_deactivation_hook(__FILE__, array(Action::getInstance(), 'removeTagsFromFields'));
|
69 |
|
70 |
/**
|
71 |
* Class WPGDPRC
|
116 |
if (Consent::getInstance()->getTotal(array('active' => array('value' => 1))) > 0) {
|
117 |
add_action('wp_footer', array(Action::getInstance(), 'addConsentBar'), 998);
|
118 |
add_action('wp_footer', array(Action::getInstance(), 'addConsentModal'), 999);
|
119 |
+
add_action('wp_head', array(Action::getInstance(), 'addConsentsToHead'), 999);
|
120 |
+
add_action('wp_footer', array(Action::getInstance(), 'addConsentsToFooter'), 999);
|
|
|
|
|
121 |
}
|
122 |
}
|
123 |
add_filter('wpgdprc_the_content', 'wptexturize');
|
130 |
|
131 |
public static function handleDatabaseTables() {
|
132 |
$dbVersion = get_option('wpgdprc_db_version', 0);
|
133 |
+
if (version_compare($dbVersion, '1.2', '==')) {
|
134 |
return;
|
135 |
}
|
136 |
|
164 |
$wpdb->query($query);
|
165 |
update_option('wpgdprc_db_version', '1.1');
|
166 |
}
|
167 |
+
|
168 |
+
// Add column 'required' to 'Consents' table
|
169 |
+
if (version_compare($dbVersion, '1.2', '<')) {
|
170 |
+
$query = "ALTER TABLE `" . Consent::getDatabaseTableName() . "`
|
171 |
+
ADD column `required` tinyint(1) DEFAULT '0' NOT NULL AFTER `plugins`;";
|
172 |
+
$wpdb->query($query);
|
173 |
+
update_option('wpgdprc_db_version', '1.2');
|
174 |
+
}
|
175 |
}
|
176 |
|
177 |
/**
|