Version Description
Release date: November 28th, 2018 * Anonymise requests after 30 days. This also removes the ability to process delete requests. * Small bugfix to correctly strip slashes from 'Consent' titles. * Added possibility to use external URL's for the privacy policy. * Added auto opt-in for admin's when adding a comment. * Fixed bug that added attachment to the consent bar when viewing an attachment. * Fixed bug with token.
Download this release
Release Info
Developer | donnyoexman |
Plugin | WP GDPR Compliance |
Version | 1.4.4 |
Comparing to | |
See all releases |
Code changes from version 1.4.3 to 1.4.4
- Includes/AccessRequest.php +10 -2
- Includes/Ajax.php +2 -2
- Includes/Cron.php +46 -0
- Includes/DeleteRequest.php +32 -13
- Includes/Extensions/WP.php +10 -0
- Includes/Integration.php +19 -3
- Includes/Page.php +80 -12
- Includes/Shortcode.php +7 -1
- languages/wp-gdpr-compliance.pot +166 -139
- readme.txt +39 -24
- uninstall.php +1 -0
- wp-gdpr-compliance.php +21 -8
Includes/AccessRequest.php
CHANGED
@@ -179,9 +179,13 @@ class AccessRequest {
|
|
179 |
if ($this->exists($this->getId())) {
|
180 |
$wpdb->update(
|
181 |
self::getDatabaseTableName(),
|
182 |
-
array(
|
|
|
|
|
|
|
|
|
183 |
array('ID' => $this->getId()),
|
184 |
-
array('%d'),
|
185 |
array('%d')
|
186 |
);
|
187 |
return $this->getId();
|
@@ -207,6 +211,10 @@ class AccessRequest {
|
|
207 |
return false;
|
208 |
}
|
209 |
|
|
|
|
|
|
|
|
|
210 |
/**
|
211 |
* @return null|AccessRequest
|
212 |
*/
|
179 |
if ($this->exists($this->getId())) {
|
180 |
$wpdb->update(
|
181 |
self::getDatabaseTableName(),
|
182 |
+
array(
|
183 |
+
'email_address' => $this->getEmailAddress(),
|
184 |
+
'ip_address' => $this->getIpAddress(),
|
185 |
+
'expired' => $this->getExpired()
|
186 |
+
),
|
187 |
array('ID' => $this->getId()),
|
188 |
+
array('%s', '%s', '%d'),
|
189 |
array('%d')
|
190 |
);
|
191 |
return $this->getId();
|
211 |
return false;
|
212 |
}
|
213 |
|
214 |
+
public function isAnonymised() {
|
215 |
+
return ($this->getIpAddress() === '127.0.0.1');
|
216 |
+
}
|
217 |
+
|
218 |
/**
|
219 |
* @return null|AccessRequest
|
220 |
*/
|
Includes/Ajax.php
CHANGED
@@ -309,7 +309,7 @@ class Ajax {
|
|
309 |
'nickname' => 'NICKNAME',
|
310 |
'first_name' => 'FIRST_NAME',
|
311 |
'last_name' => 'LAST_NAME',
|
312 |
-
'user_email' => $request->getDataId() . '.' . $date->format('Ymd
|
313 |
));
|
314 |
if (is_wp_error($result)) {
|
315 |
$output['error'] = __('This user doesn\'t exist.', WP_GDPR_C_SLUG);
|
@@ -327,7 +327,7 @@ class Ajax {
|
|
327 |
$result = wp_update_comment(array(
|
328 |
'comment_ID' => $request->getDataId(),
|
329 |
'comment_author' => 'NAME',
|
330 |
-
'comment_author_email' => $request->getDataId() . '.' . $date->format('Ymd
|
331 |
'comment_author_IP' => '127.0.0.1'
|
332 |
));
|
333 |
if ($result === 0) {
|
309 |
'nickname' => 'NICKNAME',
|
310 |
'first_name' => 'FIRST_NAME',
|
311 |
'last_name' => 'LAST_NAME',
|
312 |
+
'user_email' => $request->getDataId() . '.' . $date->format('Ymd.His') . '@example.org'
|
313 |
));
|
314 |
if (is_wp_error($result)) {
|
315 |
$output['error'] = __('This user doesn\'t exist.', WP_GDPR_C_SLUG);
|
327 |
$result = wp_update_comment(array(
|
328 |
'comment_ID' => $request->getDataId(),
|
329 |
'comment_author' => 'NAME',
|
330 |
+
'comment_author_email' => $request->getDataId() . '.' . $date->format('Ymd.His') . '@example.org',
|
331 |
'comment_author_IP' => '127.0.0.1'
|
332 |
));
|
333 |
if ($result === 0) {
|
Includes/Cron.php
CHANGED
@@ -10,6 +10,19 @@ class Cron {
|
|
10 |
/** @var null */
|
11 |
private static $instance = null;
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
/**
|
14 |
* Deactivate requests after 24 hours
|
15 |
*/
|
@@ -33,6 +46,39 @@ class Cron {
|
|
33 |
}
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
* @return null|Cron
|
38 |
*/
|
10 |
/** @var null */
|
11 |
private static $instance = null;
|
12 |
|
13 |
+
/**
|
14 |
+
* @param array $schedules
|
15 |
+
* @return array
|
16 |
+
*/
|
17 |
+
public function addCronSchedules($schedules = array()) {
|
18 |
+
// Once a month
|
19 |
+
$schedules['wpgdprc-monthly'] = array(
|
20 |
+
'interval' => 2635200,
|
21 |
+
'display' => __('Once a month', WP_GDPR_C_SLUG),
|
22 |
+
);
|
23 |
+
return $schedules;
|
24 |
+
}
|
25 |
+
|
26 |
/**
|
27 |
* Deactivate requests after 24 hours
|
28 |
*/
|
46 |
}
|
47 |
}
|
48 |
|
49 |
+
/**
|
50 |
+
* Anonymise requests after 1 month
|
51 |
+
*/
|
52 |
+
public function anonymiseRequests() {
|
53 |
+
$date = Helper::localDateTime(time());
|
54 |
+
$aMonthAgo = clone $date;
|
55 |
+
$aMonthAgo->modify('-1 month');
|
56 |
+
$arguments = array(
|
57 |
+
'ip_address' => array(
|
58 |
+
'value' => '127.0.0.1',
|
59 |
+
'compare' => '!='
|
60 |
+
),
|
61 |
+
'date_created' => array(
|
62 |
+
'value' => $aMonthAgo->format('Y-m-d H:i:s'),
|
63 |
+
'compare' => '<='
|
64 |
+
)
|
65 |
+
);
|
66 |
+
$accessRequests = AccessRequest::getInstance()->getList($arguments);
|
67 |
+
$deleteRequests = DeleteRequest::getInstance()->getList($arguments);
|
68 |
+
foreach ($accessRequests as $accessRequest) {
|
69 |
+
$accessRequest->setEmailAddress(($accessRequest->getId() . '.' . $date->format('Ymd.His') . '@example.org'));
|
70 |
+
$accessRequest->setIpAddress('127.0.0.1');
|
71 |
+
$accessRequest->setExpired(1);
|
72 |
+
$accessRequest->save();
|
73 |
+
}
|
74 |
+
foreach ($deleteRequests as $deleteRequest) {
|
75 |
+
$deleteRequest->setIpAddress('127.0.0.1');
|
76 |
+
$deleteRequest->setDataId(0);
|
77 |
+
$deleteRequest->setType('unknown');
|
78 |
+
$deleteRequest->save();
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
/**
|
83 |
* @return null|Cron
|
84 |
*/
|
Includes/DeleteRequest.php
CHANGED
@@ -61,12 +61,16 @@ class DeleteRequest {
|
|
61 |
|
62 |
/**
|
63 |
* @param int $accessRequestId
|
|
|
64 |
* @return int
|
65 |
*/
|
66 |
-
public function getAmountByAccessRequestId($accessRequestId = 0) {
|
67 |
global $wpdb;
|
68 |
$query = "SELECT COUNT(`ID`) FROM `" . self::getDatabaseTableName() . "`";
|
69 |
$query .= " WHERE `access_request_id` = %d";
|
|
|
|
|
|
|
70 |
$query .= " AND `processed` = '0'";
|
71 |
$query .= " AND `site_id` = %d";
|
72 |
$result = $wpdb->get_var($wpdb->prepare($query, intval($accessRequestId), get_current_blog_id()));
|
@@ -166,9 +170,14 @@ class DeleteRequest {
|
|
166 |
if ($this->exists($this->getId())) {
|
167 |
$wpdb->update(
|
168 |
self::getDatabaseTableName(),
|
169 |
-
array(
|
|
|
|
|
|
|
|
|
|
|
170 |
array('ID' => $this->getId()),
|
171 |
-
array('%d'),
|
172 |
array('%d')
|
173 |
);
|
174 |
return $this->getId();
|
@@ -199,16 +208,19 @@ class DeleteRequest {
|
|
199 |
* @return null|string
|
200 |
*/
|
201 |
public function getManageUrl() {
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
|
|
|
|
|
|
212 |
}
|
213 |
return '';
|
214 |
}
|
@@ -218,6 +230,9 @@ class DeleteRequest {
|
|
218 |
*/
|
219 |
public function getNiceTypeLabel() {
|
220 |
switch ($this->getType()) {
|
|
|
|
|
|
|
221 |
case 'user' :
|
222 |
$output = __('User', WP_GDPR_C_SLUG);
|
223 |
break;
|
@@ -234,6 +249,10 @@ class DeleteRequest {
|
|
234 |
return $output;
|
235 |
}
|
236 |
|
|
|
|
|
|
|
|
|
237 |
/**
|
238 |
* @return null|DeleteRequest
|
239 |
*/
|
61 |
|
62 |
/**
|
63 |
* @param int $accessRequestId
|
64 |
+
* @param bool $showAnonymised
|
65 |
* @return int
|
66 |
*/
|
67 |
+
public function getAmountByAccessRequestId($accessRequestId = 0, $showAnonymised = true) {
|
68 |
global $wpdb;
|
69 |
$query = "SELECT COUNT(`ID`) FROM `" . self::getDatabaseTableName() . "`";
|
70 |
$query .= " WHERE `access_request_id` = %d";
|
71 |
+
if ($showAnonymised === false) {
|
72 |
+
$query .= " AND `ip_address` != '127.0.0.1'";
|
73 |
+
}
|
74 |
$query .= " AND `processed` = '0'";
|
75 |
$query .= " AND `site_id` = %d";
|
76 |
$result = $wpdb->get_var($wpdb->prepare($query, intval($accessRequestId), get_current_blog_id()));
|
170 |
if ($this->exists($this->getId())) {
|
171 |
$wpdb->update(
|
172 |
self::getDatabaseTableName(),
|
173 |
+
array(
|
174 |
+
'ip_address' => $this->getIpAddress(),
|
175 |
+
'data_id' => $this->getDataId(),
|
176 |
+
'type' => $this->getType(),
|
177 |
+
'processed' => $this->getProcessed()
|
178 |
+
),
|
179 |
array('ID' => $this->getId()),
|
180 |
+
array('%s', '%d', '%s', '%d'),
|
181 |
array('%d')
|
182 |
);
|
183 |
return $this->getId();
|
208 |
* @return null|string
|
209 |
*/
|
210 |
public function getManageUrl() {
|
211 |
+
$dataId = intval($this->getDataId());
|
212 |
+
if ($dataId > 0) {
|
213 |
+
switch ($this->getType()) {
|
214 |
+
case 'user' :
|
215 |
+
return get_edit_user_link($this->getDataId());
|
216 |
+
break;
|
217 |
+
case 'comment' :
|
218 |
+
return get_edit_comment_link($this->getDataId());
|
219 |
+
break;
|
220 |
+
case 'woocommerce_order' :
|
221 |
+
return get_edit_post_link($this->getDataId());
|
222 |
+
break;
|
223 |
+
}
|
224 |
}
|
225 |
return '';
|
226 |
}
|
230 |
*/
|
231 |
public function getNiceTypeLabel() {
|
232 |
switch ($this->getType()) {
|
233 |
+
case 'unknown' :
|
234 |
+
$output = __('Unknown', WP_GDPR_C_SLUG);
|
235 |
+
break;
|
236 |
case 'user' :
|
237 |
$output = __('User', WP_GDPR_C_SLUG);
|
238 |
break;
|
249 |
return $output;
|
250 |
}
|
251 |
|
252 |
+
public function isAnonymised() {
|
253 |
+
return ($this->getIpAddress() === '127.0.0.1');
|
254 |
+
}
|
255 |
+
|
256 |
/**
|
257 |
* @return null|DeleteRequest
|
258 |
*/
|
Includes/Extensions/WP.php
CHANGED
@@ -27,6 +27,16 @@ class WP {
|
|
27 |
return $field . $submitField;
|
28 |
}
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
public function checkPost() {
|
31 |
if (!isset($_POST['wpgdprc'])) {
|
32 |
wp_die(
|
27 |
return $field . $submitField;
|
28 |
}
|
29 |
|
30 |
+
public function addFieldForAdmin($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"><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;
|
38 |
+
}
|
39 |
+
|
40 |
public function checkPost() {
|
41 |
if (!isset($_POST['wpgdprc'])) {
|
42 |
wp_die(
|
Includes/Integration.php
CHANGED
@@ -23,7 +23,11 @@ class Integration {
|
|
23 |
foreach (Helper::getEnabledPlugins() as $plugin) {
|
24 |
switch ($plugin['id']) {
|
25 |
case WP::ID :
|
|
|
|
|
|
|
26 |
add_filter('comment_form_submit_field', array(WP::getInstance(), 'addField'), 999);
|
|
|
27 |
add_action('pre_comment_on_post', array(WP::getInstance(), 'checkPost'));
|
28 |
add_action('comment_post', array(WP::getInstance(), 'addAcceptedDateToCommentMeta'));
|
29 |
add_filter('manage_edit-comments_columns', array(WP::getInstance(), 'displayAcceptedDateColumnInCommentOverview'));
|
@@ -284,6 +288,14 @@ class Integration {
|
|
284 |
return apply_filters('wpgdprc_privacy_policy_text', $output);
|
285 |
}
|
286 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
/**
|
288 |
* @param bool $insertPrivacyPolicyLink
|
289 |
* @return mixed
|
@@ -319,17 +331,21 @@ class Integration {
|
|
319 |
* @return mixed|string
|
320 |
*/
|
321 |
public static function insertPrivacyPolicyLink($content = '') {
|
|
|
322 |
$page = get_option(WP_GDPR_C_PREFIX . '_settings_privacy_policy_page');
|
|
|
|
|
|
|
323 |
$text = Integration::getPrivacyPolicyText();
|
324 |
-
if (!empty($page) && !empty($text)) {
|
325 |
$link = apply_filters(
|
326 |
'wpgdprc_privacy_policy_link',
|
327 |
sprintf(
|
328 |
'<a target="_blank" href="%s" rel="noopener noreferrer">%s</a>',
|
329 |
-
|
330 |
esc_html($text)
|
331 |
),
|
332 |
-
$page,
|
333 |
$text
|
334 |
);
|
335 |
$content = str_replace('%privacy_policy%', $link, $content);
|
23 |
foreach (Helper::getEnabledPlugins() as $plugin) {
|
24 |
switch ($plugin['id']) {
|
25 |
case WP::ID :
|
26 |
+
if(current_user_can( 'administrator' )) {
|
27 |
+
add_filter('comment_form_submit_field', array(WP::getInstance(), 'addFieldForAdmin'), 999);
|
28 |
+
} else {
|
29 |
add_filter('comment_form_submit_field', array(WP::getInstance(), 'addField'), 999);
|
30 |
+
}
|
31 |
add_action('pre_comment_on_post', array(WP::getInstance(), 'checkPost'));
|
32 |
add_action('comment_post', array(WP::getInstance(), 'addAcceptedDateToCommentMeta'));
|
33 |
add_filter('manage_edit-comments_columns', array(WP::getInstance(), 'displayAcceptedDateColumnInCommentOverview'));
|
288 |
return apply_filters('wpgdprc_privacy_policy_text', $output);
|
289 |
}
|
290 |
|
291 |
+
public static function getPrivacyPolicyLink() {
|
292 |
+
$output = get_option(WP_GDPR_C_PREFIX . '_settings_privacy_policy_link');
|
293 |
+
if (empty($output)) {
|
294 |
+
$output = __('http://www.example.com', WP_GDPR_C_SLUG);
|
295 |
+
}
|
296 |
+
return apply_filters('wpgdprc_privacy_policy_link', $output);
|
297 |
+
}
|
298 |
+
|
299 |
/**
|
300 |
* @param bool $insertPrivacyPolicyLink
|
301 |
* @return mixed
|
331 |
* @return mixed|string
|
332 |
*/
|
333 |
public static function insertPrivacyPolicyLink($content = '') {
|
334 |
+
if (!Helper::isEnabled('enable_privacy_policy_extern', 'settings')) {
|
335 |
$page = get_option(WP_GDPR_C_PREFIX . '_settings_privacy_policy_page');
|
336 |
+
} else {
|
337 |
+
$url = get_option(WP_GDPR_C_PREFIX . '_settings_privacy_policy_link');
|
338 |
+
}
|
339 |
$text = Integration::getPrivacyPolicyText();
|
340 |
+
if ((!empty($page) || !empty($url)) && !empty($text)) {
|
341 |
$link = apply_filters(
|
342 |
'wpgdprc_privacy_policy_link',
|
343 |
sprintf(
|
344 |
'<a target="_blank" href="%s" rel="noopener noreferrer">%s</a>',
|
345 |
+
(Helper::isEnabled('enable_privacy_policy_extern', 'settings')) ? $url : get_page_link($page),
|
346 |
esc_html($text)
|
347 |
),
|
348 |
+
(Helper::isEnabled('enable_privacy_policy_extern', 'settings')) ? $url : $page,
|
349 |
$text
|
350 |
);
|
351 |
$content = str_replace('%privacy_policy%', $link, $content);
|
Includes/Page.php
CHANGED
@@ -14,8 +14,14 @@ class Page {
|
|
14 |
foreach (Helper::getCheckList() as $id => $check) {
|
15 |
register_setting(WP_GDPR_C_SLUG . '_general', WP_GDPR_C_PREFIX . '_general_' . $id, 'intval');
|
16 |
}
|
|
|
17 |
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_privacy_policy_page', 'intval');
|
|
|
18 |
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_privacy_policy_text', array('sanitize_callback' => array(Helper::getInstance(), 'sanitizeData')));
|
|
|
|
|
|
|
|
|
19 |
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_enable_access_request', 'intval');
|
20 |
if (Helper::isEnabled('enable_access_request', 'settings')) {
|
21 |
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_access_request_page', 'intval');
|
@@ -58,6 +64,10 @@ class Page {
|
|
58 |
<?php
|
59 |
if ($enableAccessRequest) :
|
60 |
$totalDeleteRequests = DeleteRequest::getInstance()->getTotal(array(
|
|
|
|
|
|
|
|
|
61 |
'processed' => array(
|
62 |
'value' => 0
|
63 |
)
|
@@ -124,9 +134,8 @@ class Page {
|
|
124 |
sprintf('<a target="_blank" href="%s">%s</a>', '//www.wpgdprc.com/', 'www.wpgdprc.com')
|
125 |
);
|
126 |
?></p>
|
|
|
127 |
</div>
|
128 |
-
|
129 |
-
<p class="wpgdprc-disclaimer"><?php _e('Disclaimer: The creators of this plugin do not have a legal background please contact a law firm for rock solid legal advice.', WP_GDPR_C_SLUG); ?></p>
|
130 |
</div>
|
131 |
|
132 |
<div class="wpgdprc-sidebar">
|
@@ -281,6 +290,8 @@ class Page {
|
|
281 |
private static function renderSettingsPage() {
|
282 |
$optionNamePrivacyPolicyPage = WP_GDPR_C_PREFIX . '_settings_privacy_policy_page';
|
283 |
$optionNamePrivacyPolicyText = WP_GDPR_C_PREFIX . '_settings_privacy_policy_text';
|
|
|
|
|
284 |
$optionNameEnableAccessRequest = WP_GDPR_C_PREFIX . '_settings_enable_access_request';
|
285 |
$optionNameAccessRequestPage = WP_GDPR_C_PREFIX . '_settings_access_request_page';
|
286 |
$optionNameAccessRequestFormCheckboxText = WP_GDPR_C_PREFIX . '_settings_access_request_form_checkbox_text';
|
@@ -290,6 +301,8 @@ class Page {
|
|
290 |
$optionNameConsentsModalExplanationText = WP_GDPR_C_PREFIX . '_settings_consents_modal_explanation_text';
|
291 |
$privacyPolicyPage = get_option($optionNamePrivacyPolicyPage);
|
292 |
$privacyPolicyText = esc_html(Integration::getPrivacyPolicyText());
|
|
|
|
|
293 |
$enableAccessRequest = Helper::isEnabled('enable_access_request', 'settings');
|
294 |
$accessRequestPage = get_option($optionNameAccessRequestPage);
|
295 |
$accessRequestFormCheckboxText = Integration::getAccessRequestFormCheckboxText(false);
|
@@ -301,6 +314,33 @@ class Page {
|
|
301 |
<form method="post" action="<?php echo admin_url('options.php'); ?>" novalidate="novalidate">
|
302 |
<?php settings_fields(WP_GDPR_C_SLUG . '_settings'); ?>
|
303 |
<p><strong><?php _e('Privacy Policy', WP_GDPR_C_SLUG); ?></strong></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
<div class="wpgdprc-setting">
|
305 |
<label for="<?php echo $optionNamePrivacyPolicyPage; ?>"><?php _e('Privacy Policy', WP_GDPR_C_SLUG); ?></label>
|
306 |
<div class="wpgdprc-options">
|
@@ -314,6 +354,7 @@ class Page {
|
|
314 |
?>
|
315 |
</div>
|
316 |
</div>
|
|
|
317 |
<div class="wpgdprc-setting">
|
318 |
<label for="<?php echo $optionNamePrivacyPolicyText; ?>"><?php _e('Link text', WP_GDPR_C_SLUG); ?></label>
|
319 |
<div class="wpgdprc-options">
|
@@ -430,7 +471,7 @@ class Page {
|
|
430 |
$consent = new Consent($consentId);
|
431 |
if (isset($_POST['submit']) && check_admin_referer('consent_create_or_update', 'consent_nonce')) {
|
432 |
$active = (isset($_POST['active'])) ? 1 : 0;
|
433 |
-
$title = (isset($_POST['title'])) ? esc_html($_POST['title']) : $consent->getTitle();
|
434 |
$description = (isset($_POST['description'])) ? stripslashes(esc_html($_POST['description'])) : $consent->getDescription();
|
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();
|
@@ -668,6 +709,13 @@ class Page {
|
|
668 |
<?php printf('<strong>%s:</strong> %s', __('WordPress Comments', WP_GDPR_C_SLUG), 'Anonymises author name, email address and IP address.', WP_GDPR_C_SLUG); ?><br />
|
669 |
<?php printf('<strong>%s:</strong> %s', __('WooCommerce', WP_GDPR_C_SLUG), 'Anonymises billing and shipping details per order.', WP_GDPR_C_SLUG); ?>
|
670 |
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
671 |
</div>
|
672 |
|
673 |
<form class="wpgdprc-form wpgdprc-form--process-delete-requests" method="POST" novalidate="novalidate">
|
@@ -689,19 +737,29 @@ class Page {
|
|
689 |
/** @var DeleteRequest $request */
|
690 |
foreach ($requests as $request) :
|
691 |
?>
|
692 |
-
<tr data-id="<?php echo $request->getId(); ?>">
|
693 |
<td><?php printf('#%d', $request->getId()); ?></td>
|
694 |
<td><?php echo $request->getNiceTypeLabel(); ?></td>
|
695 |
<td><?php echo $request->getIpAddress(); ?></td>
|
696 |
<td><?php echo $request->getDateCreated(); ?></td>
|
697 |
<td><span class="dashicons dashicons-<?php echo ($request->getProcessed()) ? 'yes' : 'no'; ?>"></span></td>
|
698 |
-
<td><?php printf('<a target="_blank" href="%s">%s</a>', $request->getManageUrl(), __('View', WP_GDPR_C_SLUG)); ?></td>
|
699 |
<td>
|
700 |
-
<?php
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
705 |
</td>
|
706 |
</tr>
|
707 |
<?php
|
@@ -753,6 +811,15 @@ class Page {
|
|
753 |
$requests = AccessRequest::getInstance()->getList(array(), $limit, $offset);
|
754 |
if (!empty($requests)) :
|
755 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
756 |
<table class="wpgdprc-table">
|
757 |
<thead>
|
758 |
<tr>
|
@@ -768,12 +835,13 @@ class Page {
|
|
768 |
<?php
|
769 |
/** @var AccessRequest $request */
|
770 |
foreach ($requests as $request) :
|
|
|
771 |
$amountOfDeleteRequests = DeleteRequest::getInstance()->getAmountByAccessRequestId($request->getId());
|
772 |
?>
|
773 |
-
<tr class="wpgdprc-table__row <?php echo ($request->getExpired()) ? 'wpgdprc-table__row--expired' : ''; ?>">
|
774 |
<td><?php printf('#%d', $request->getId()); ?></td>
|
775 |
<td>
|
776 |
-
<?php printf('%d', $
|
777 |
<?php
|
778 |
if ($amountOfDeleteRequests > 0) {
|
779 |
printf(
|
14 |
foreach (Helper::getCheckList() as $id => $check) {
|
15 |
register_setting(WP_GDPR_C_SLUG . '_general', WP_GDPR_C_PREFIX . '_general_' . $id, 'intval');
|
16 |
}
|
17 |
+
if (!Helper::isEnabled('enable_privacy_policy_extern', 'settings')) {
|
18 |
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_privacy_policy_page', 'intval');
|
19 |
+
}
|
20 |
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_privacy_policy_text', array('sanitize_callback' => array(Helper::getInstance(), 'sanitizeData')));
|
21 |
+
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_enable_privacy_policy_extern', 'intval');
|
22 |
+
if (Helper::isEnabled('enable_privacy_policy_extern', 'settings')) {
|
23 |
+
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_privacy_policy_link', array('sanitize_callback' => array(Helper::getInstance(), 'sanitizeData')));
|
24 |
+
}
|
25 |
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_enable_access_request', 'intval');
|
26 |
if (Helper::isEnabled('enable_access_request', 'settings')) {
|
27 |
register_setting(WP_GDPR_C_SLUG . '_settings', WP_GDPR_C_PREFIX . '_settings_access_request_page', 'intval');
|
64 |
<?php
|
65 |
if ($enableAccessRequest) :
|
66 |
$totalDeleteRequests = DeleteRequest::getInstance()->getTotal(array(
|
67 |
+
'ip_address' => array(
|
68 |
+
'value' => '127.0.0.1',
|
69 |
+
'compare' => '!='
|
70 |
+
),
|
71 |
'processed' => array(
|
72 |
'value' => 0
|
73 |
)
|
134 |
sprintf('<a target="_blank" href="%s">%s</a>', '//www.wpgdprc.com/', 'www.wpgdprc.com')
|
135 |
);
|
136 |
?></p>
|
137 |
+
<p class="wpgdprc-disclaimer"><?php _e('Disclaimer: The creators of this plugin do not have a legal background please contact a law firm for rock solid legal advice.', WP_GDPR_C_SLUG); ?></p>
|
138 |
</div>
|
|
|
|
|
139 |
</div>
|
140 |
|
141 |
<div class="wpgdprc-sidebar">
|
290 |
private static function renderSettingsPage() {
|
291 |
$optionNamePrivacyPolicyPage = WP_GDPR_C_PREFIX . '_settings_privacy_policy_page';
|
292 |
$optionNamePrivacyPolicyText = WP_GDPR_C_PREFIX . '_settings_privacy_policy_text';
|
293 |
+
$optionNameEnablePrivacyPolicyExternal = WP_GDPR_C_PREFIX . '_settings_enable_privacy_policy_extern';
|
294 |
+
$optionNamePrivacyPolicyLink = WP_GDPR_C_PREFIX . '_settings_privacy_policy_link';
|
295 |
$optionNameEnableAccessRequest = WP_GDPR_C_PREFIX . '_settings_enable_access_request';
|
296 |
$optionNameAccessRequestPage = WP_GDPR_C_PREFIX . '_settings_access_request_page';
|
297 |
$optionNameAccessRequestFormCheckboxText = WP_GDPR_C_PREFIX . '_settings_access_request_form_checkbox_text';
|
301 |
$optionNameConsentsModalExplanationText = WP_GDPR_C_PREFIX . '_settings_consents_modal_explanation_text';
|
302 |
$privacyPolicyPage = get_option($optionNamePrivacyPolicyPage);
|
303 |
$privacyPolicyText = esc_html(Integration::getPrivacyPolicyText());
|
304 |
+
$enablePrivacyPolicyExternal = Helper::isEnabled('enable_privacy_policy_extern', 'settings');
|
305 |
+
$privacyPolicyLink = esc_html(Integration::getPrivacyPolicyLink());
|
306 |
$enableAccessRequest = Helper::isEnabled('enable_access_request', 'settings');
|
307 |
$accessRequestPage = get_option($optionNameAccessRequestPage);
|
308 |
$accessRequestFormCheckboxText = Integration::getAccessRequestFormCheckboxText(false);
|
314 |
<form method="post" action="<?php echo admin_url('options.php'); ?>" novalidate="novalidate">
|
315 |
<?php settings_fields(WP_GDPR_C_SLUG . '_settings'); ?>
|
316 |
<p><strong><?php _e('Privacy Policy', WP_GDPR_C_SLUG); ?></strong></p>
|
317 |
+
<div class="wpgdprc-setting">
|
318 |
+
<label for="<?php echo $optionNameEnablePrivacyPolicyExternal; ?>"><?php _e('Activate', WP_GDPR_C_SLUG); ?></label>
|
319 |
+
<div class="wpgdprc-options">
|
320 |
+
<label><input type="checkbox" name="<?php echo $optionNameEnablePrivacyPolicyExternal; ?>" id="<?php echo $optionNameEnablePrivacyPolicyExternal; ?>" value="1" tabindex="1" <?php checked(true, $enablePrivacyPolicyExternal); ?> /> <?php _e('Activate external links', WP_GDPR_C_SLUG); ?></label>
|
321 |
+
<div class="wpgdprc-information">
|
322 |
+
<div class="wpgdprc-message wpgdprc-message--notice">
|
323 |
+
<?php
|
324 |
+
printf(
|
325 |
+
'<p><strong>%s:</strong> %s</p>',
|
326 |
+
strtoupper(__('Note', WP_GDPR_C_SLUG)),
|
327 |
+
sprintf(
|
328 |
+
__('Enabling this will allow you to use external Privacy Policy instances', WP_GDPR_C_SLUG)
|
329 |
+
)
|
330 |
+
);
|
331 |
+
?>
|
332 |
+
</div>
|
333 |
+
</div>
|
334 |
+
</div>
|
335 |
+
</div>
|
336 |
+
<?php if ($enablePrivacyPolicyExternal) : ?>
|
337 |
+
<div class="wpgdprc-setting">
|
338 |
+
<label for="<?php echo $optionNamePrivacyPolicyLink; ?>"><?php _e('External Privacy Policy Link', WP_GDPR_C_SLUG); ?></label>
|
339 |
+
<div class="wpgdprc-options">
|
340 |
+
<input type="url" name="<?php echo $optionNamePrivacyPolicyLink; ?>" class="regular-text" id="<?php echo $optionNamePrivacyPolicyLink; ?>" placeholder="<?php echo $privacyPolicyLink; ?>" value="<?php echo $privacyPolicyLink; ?>" />
|
341 |
+
</div>
|
342 |
+
</div>
|
343 |
+
<?php else: ?>
|
344 |
<div class="wpgdprc-setting">
|
345 |
<label for="<?php echo $optionNamePrivacyPolicyPage; ?>"><?php _e('Privacy Policy', WP_GDPR_C_SLUG); ?></label>
|
346 |
<div class="wpgdprc-options">
|
354 |
?>
|
355 |
</div>
|
356 |
</div>
|
357 |
+
<?php endif; ?>
|
358 |
<div class="wpgdprc-setting">
|
359 |
<label for="<?php echo $optionNamePrivacyPolicyText; ?>"><?php _e('Link text', WP_GDPR_C_SLUG); ?></label>
|
360 |
<div class="wpgdprc-options">
|
471 |
$consent = new Consent($consentId);
|
472 |
if (isset($_POST['submit']) && check_admin_referer('consent_create_or_update', 'consent_nonce')) {
|
473 |
$active = (isset($_POST['active'])) ? 1 : 0;
|
474 |
+
$title = (isset($_POST['title'])) ? stripslashes(esc_html($_POST['title'])) : $consent->getTitle();
|
475 |
$description = (isset($_POST['description'])) ? stripslashes(esc_html($_POST['description'])) : $consent->getDescription();
|
476 |
$snippet = (isset($_POST['snippet'])) ? stripslashes($_POST['snippet']) : $consent->getSnippet();
|
477 |
$wrap = (isset($_POST['wrap']) && array_key_exists($_POST['wrap'], Consent::getPossibleCodeWraps())) ? esc_html($_POST['wrap']) : $consent->getWrap();
|
709 |
<?php printf('<strong>%s:</strong> %s', __('WordPress Comments', WP_GDPR_C_SLUG), 'Anonymises author name, email address and IP address.', WP_GDPR_C_SLUG); ?><br />
|
710 |
<?php printf('<strong>%s:</strong> %s', __('WooCommerce', WP_GDPR_C_SLUG), 'Anonymises billing and shipping details per order.', WP_GDPR_C_SLUG); ?>
|
711 |
</p>
|
712 |
+
<?php
|
713 |
+
printf(
|
714 |
+
'<p><strong>%s:</strong> %s</p>',
|
715 |
+
strtoupper(__('Note', WP_GDPR_C_SLUG)),
|
716 |
+
sprintf(__('Requests are automatically anonymised after %d days.', WP_GDPR_C_SLUG), 30)
|
717 |
+
);
|
718 |
+
?>
|
719 |
</div>
|
720 |
|
721 |
<form class="wpgdprc-form wpgdprc-form--process-delete-requests" method="POST" novalidate="novalidate">
|
737 |
/** @var DeleteRequest $request */
|
738 |
foreach ($requests as $request) :
|
739 |
?>
|
740 |
+
<tr class="wpgdprc-table__row <?php echo ($request->isAnonymised()) ? 'wpgdprc-table__row--expired' : ''; ?>" data-id="<?php echo $request->getId(); ?>">
|
741 |
<td><?php printf('#%d', $request->getId()); ?></td>
|
742 |
<td><?php echo $request->getNiceTypeLabel(); ?></td>
|
743 |
<td><?php echo $request->getIpAddress(); ?></td>
|
744 |
<td><?php echo $request->getDateCreated(); ?></td>
|
745 |
<td><span class="dashicons dashicons-<?php echo ($request->getProcessed()) ? 'yes' : 'no'; ?>"></span></td>
|
|
|
746 |
<td>
|
747 |
+
<?php
|
748 |
+
if ($request->getDataId() !== 0 && !$request->isAnonymised()) {
|
749 |
+
printf('<a target="_blank" href="%s">%s</a>', $request->getManageUrl(), __('View', WP_GDPR_C_SLUG));
|
750 |
+
} else {
|
751 |
+
_e('N/A', WP_GDPR_C_SLUG);
|
752 |
+
}
|
753 |
+
?>
|
754 |
+
</td>
|
755 |
+
<td>
|
756 |
+
<?php
|
757 |
+
if (!$request->getProcessed() && !$request->isAnonymised()) {
|
758 |
+
printf('<input type="checkbox" class="wpgdprc-checkbox" value="%d" />', $request->getId());
|
759 |
+
} else {
|
760 |
+
echo ' ';
|
761 |
+
}
|
762 |
+
?>
|
763 |
</td>
|
764 |
</tr>
|
765 |
<?php
|
811 |
$requests = AccessRequest::getInstance()->getList(array(), $limit, $offset);
|
812 |
if (!empty($requests)) :
|
813 |
?>
|
814 |
+
<div class="wpgdprc-message wpgdprc-message--notice">
|
815 |
+
<?php
|
816 |
+
printf(
|
817 |
+
'<p><strong>%s:</strong> %s</p>',
|
818 |
+
strtoupper(__('Note', WP_GDPR_C_SLUG)),
|
819 |
+
sprintf(__('Requests are automatically anonymised after %d days.', WP_GDPR_C_SLUG), 30)
|
820 |
+
);
|
821 |
+
?>
|
822 |
+
</div>
|
823 |
<table class="wpgdprc-table">
|
824 |
<thead>
|
825 |
<tr>
|
835 |
<?php
|
836 |
/** @var AccessRequest $request */
|
837 |
foreach ($requests as $request) :
|
838 |
+
$amountOfNonAnonymisedDeleteRequests = DeleteRequest::getInstance()->getAmountByAccessRequestId($request->getId(), false);
|
839 |
$amountOfDeleteRequests = DeleteRequest::getInstance()->getAmountByAccessRequestId($request->getId());
|
840 |
?>
|
841 |
+
<tr class="wpgdprc-table__row <?php echo ($request->getExpired() || $request->isAnonymised()) ? 'wpgdprc-table__row--expired' : ''; ?>">
|
842 |
<td><?php printf('#%d', $request->getId()); ?></td>
|
843 |
<td>
|
844 |
+
<?php printf('%d', $amountOfNonAnonymisedDeleteRequests); ?>
|
845 |
<?php
|
846 |
if ($amountOfDeleteRequests > 0) {
|
847 |
printf(
|
Includes/Shortcode.php
CHANGED
@@ -99,7 +99,13 @@ class Shortcode {
|
|
99 |
);
|
100 |
}
|
101 |
} else {
|
102 |
-
$output .=
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
}
|
104 |
return $output;
|
105 |
}
|
99 |
);
|
100 |
}
|
101 |
} else {
|
102 |
+
$output .= sprintf(
|
103 |
+
'<div class="wpgdprc-message wpgdprc-message--error"><p>%s</p></div>',
|
104 |
+
sprintf(
|
105 |
+
__('<strong>ERROR</strong>: %s', WP_GDPR_C_SLUG),
|
106 |
+
__('This request is expired or doesn\'t exist.', WP_GDPR_C_SLUG)
|
107 |
+
)
|
108 |
+
);
|
109 |
}
|
110 |
return $output;
|
111 |
}
|
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-
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: Van Ons <info@van-ons.nl>\n"
|
8 |
"MIME-Version: 1.0\n"
|
@@ -29,7 +29,7 @@ msgstr ""
|
|
29 |
msgid "Retry"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: Includes/Action.php:152 Includes/Page.php:
|
33 |
msgid "My settings"
|
34 |
msgstr ""
|
35 |
|
@@ -37,12 +37,13 @@ msgstr ""
|
|
37 |
msgid "Accept"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: Includes/Action.php:183 Includes/Page.php:
|
41 |
msgid "(no title)"
|
42 |
msgstr ""
|
43 |
|
44 |
#: Includes/Action.php:196 Includes/Helper.php:116 Includes/Helper.php:171
|
45 |
-
#: Includes/Page.php:
|
|
|
46 |
msgid "Note"
|
47 |
msgstr ""
|
48 |
|
@@ -64,167 +65,175 @@ msgstr ""
|
|
64 |
msgid "Close modal"
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: Includes/Ajax.php:
|
68 |
msgid "Missing data."
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: Includes/Ajax.php:
|
72 |
-
msgid "Missing
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: Includes/Ajax.php:
|
76 |
-
msgid "
|
|
|
|
|
|
|
|
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: Includes/Ajax.php:
|
80 |
msgid "Missing value."
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: Includes/Ajax.php:
|
|
|
|
|
|
|
|
|
84 |
msgid "Missing or incorrect email address."
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: Includes/Ajax.php:
|
88 |
msgid "You need to accept the privacy checkbox."
|
89 |
msgstr ""
|
90 |
|
91 |
-
#: Includes/Ajax.php:
|
92 |
msgid "page"
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: Includes/Ajax.php:
|
96 |
#, php-format
|
97 |
msgid "%s - Your data request"
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: Includes/Ajax.php:
|
101 |
#, php-format
|
102 |
msgid "You have requested to access your data on %s."
|
103 |
msgstr ""
|
104 |
|
105 |
-
#: Includes/Ajax.php:
|
106 |
#, php-format
|
107 |
msgid "Please visit this %s to view the data linked to the email address %s."
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: Includes/Ajax.php:
|
111 |
msgid ""
|
112 |
"This page is available for 24 hours and can only be reached from the same "
|
113 |
"device, IP address and browser session you requested from."
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: Includes/Ajax.php:
|
117 |
#, php-format
|
118 |
msgid ""
|
119 |
"If your link is invalid you can fill in a new request after 24 hours: %s."
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: Includes/Ajax.php:
|
123 |
msgid "Success. You will receive an email with your data shortly."
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: Includes/Ajax.php:
|
127 |
msgid "Something went wrong while saving the request. Please try again."
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: Includes/Ajax.php:
|
131 |
msgid ""
|
132 |
"You have already requested your data. Please check your mailbox. After 24 "
|
133 |
"hours you can put in a new request."
|
134 |
msgstr ""
|
135 |
|
136 |
-
#: Includes/Ajax.php:
|
137 |
-
msgid "Missing
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: Includes/Ajax.php:
|
141 |
msgid "Missing or invalid type."
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: Includes/Ajax.php:
|
145 |
msgid "No value selected."
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: Includes/Ajax.php:
|
149 |
msgid "Something went wrong while saving this request. Please try again."
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: Includes/Ajax.php:
|
153 |
msgid "Requests"
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: Includes/Ajax.php:
|
157 |
#, php-format
|
158 |
msgid "%s - New anonymise request"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: Includes/Ajax.php:
|
162 |
#, php-format
|
163 |
msgid "You have received a new anonymise request on %s."
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: Includes/Ajax.php:
|
167 |
#, php-format
|
168 |
msgid "You can manage this request in the admin panel: %s"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: Includes/Ajax.php:
|
172 |
msgid "Session doesn't match."
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: Includes/Ajax.php:
|
176 |
msgid "No session found."
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: Includes/Ajax.php:
|
180 |
msgid "The access request functionality is not enabled."
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: Includes/Ajax.php:
|
184 |
msgid "This request doesn't exist."
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: Includes/Ajax.php:
|
188 |
msgid "This user doesn't exist."
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: Includes/Ajax.php:
|
192 |
msgid "You're not allowed to edit users."
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: Includes/Ajax.php:
|
196 |
msgid "This comment doesn't exist."
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: Includes/Ajax.php:
|
200 |
msgid "You're not allowed to edit comments."
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: Includes/Ajax.php:
|
204 |
msgid "You're not allowed to edit WooCommerce orders."
|
205 |
msgstr ""
|
206 |
|
207 |
-
#: Includes/Ajax.php:
|
208 |
#, php-format
|
209 |
msgid "%s - Your request"
|
210 |
msgstr ""
|
211 |
|
212 |
-
#: Includes/Ajax.php:
|
213 |
#, php-format
|
214 |
msgid ""
|
215 |
"We have successfully processed your request and your data has been "
|
216 |
"anonymised on %s."
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: Includes/Ajax.php:
|
220 |
msgid "The following has been processed:"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: Includes/Ajax.php:
|
224 |
msgid "Successfully sent an confirmation mail to the user."
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: Includes/Ajax.php:
|
228 |
msgid "This request has already been processed."
|
229 |
msgstr ""
|
230 |
|
@@ -254,15 +263,20 @@ msgstr ""
|
|
254 |
msgid "Do not wrap my code snippet"
|
255 |
msgstr ""
|
256 |
|
257 |
-
#: Includes/Consent.php:281 Includes/Page.php:
|
258 |
msgid "Head"
|
259 |
msgstr ""
|
260 |
|
261 |
-
#: Includes/Consent.php:282 Includes/Page.php:
|
262 |
msgid "Footer"
|
263 |
msgstr ""
|
264 |
|
|
|
|
|
|
|
|
|
265 |
#: Includes/Data.php:27 Includes/Extensions/WP.php:34 Includes/Shortcode.php:85
|
|
|
266 |
#, php-format
|
267 |
msgid "<strong>ERROR</strong>: %s"
|
268 |
msgstr ""
|
@@ -280,7 +294,7 @@ msgid "Display Name"
|
|
280 |
msgstr ""
|
281 |
|
282 |
#: Includes/Data.php:54 Includes/Data.php:63 Includes/Data.php:70
|
283 |
-
#: Includes/Page.php:
|
284 |
msgid "Email Address"
|
285 |
msgstr ""
|
286 |
|
@@ -300,7 +314,7 @@ msgstr ""
|
|
300 |
msgid "Content"
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: Includes/Data.php:64 Includes/Page.php:
|
304 |
msgid "IP Address"
|
305 |
msgstr ""
|
306 |
|
@@ -329,15 +343,19 @@ msgstr ""
|
|
329 |
msgid "Anonymise selected %s(s)"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: Includes/DeleteRequest.php:
|
|
|
|
|
|
|
|
|
333 |
msgid "User"
|
334 |
msgstr ""
|
335 |
|
336 |
-
#: Includes/DeleteRequest.php:
|
337 |
msgid "Comment"
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: Includes/DeleteRequest.php:
|
341 |
msgid "WooCommerce Order"
|
342 |
msgstr ""
|
343 |
|
@@ -475,7 +493,7 @@ 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:
|
479 |
msgid "Checkbox text"
|
480 |
msgstr ""
|
481 |
|
@@ -506,7 +524,7 @@ msgstr ""
|
|
506 |
msgid "You need to accept this checkbox."
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: Includes/Integration.php:282 Includes/Page.php:
|
510 |
msgid "Privacy Policy"
|
511 |
msgstr ""
|
512 |
|
@@ -519,7 +537,7 @@ msgid ""
|
|
519 |
"request. When your data is anonymised you will receive an email confirmation."
|
520 |
msgstr ""
|
521 |
|
522 |
-
#: Includes/Integration.php:347 Includes/Page.php:
|
523 |
msgid "WordPress Comments"
|
524 |
msgstr ""
|
525 |
|
@@ -541,7 +559,7 @@ msgstr ""
|
|
541 |
msgid "Gravity Forms"
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: Includes/Integration.php:376 Includes/Page.php:
|
545 |
msgid "WooCommerce"
|
546 |
msgstr ""
|
547 |
|
@@ -555,92 +573,92 @@ msgstr ""
|
|
555 |
msgid "Integrations"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: Includes/Page.php:57 Includes/Page.php:
|
559 |
msgid "Consents"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: Includes/Page.php:
|
563 |
msgid "Checklist"
|
564 |
msgstr ""
|
565 |
|
566 |
-
#: Includes/Page.php:
|
567 |
msgid "Settings"
|
568 |
msgstr ""
|
569 |
|
570 |
-
#: Includes/Page.php:
|
571 |
msgid ""
|
572 |
"This plugin assists website and webshop owners to comply with European "
|
573 |
"privacy regulations known as GDPR. By May 25th, 2018 your site or shop has "
|
574 |
"to comply."
|
575 |
msgstr ""
|
576 |
|
577 |
-
#: Includes/Page.php:
|
578 |
#, php-format
|
579 |
msgid ""
|
580 |
"%s currently supports %s. Please visit %s for frequently asked questions and "
|
581 |
"our development roadmap."
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: Includes/Page.php:
|
585 |
msgid ""
|
586 |
"Disclaimer: The creators of this plugin do not have a legal background "
|
587 |
"please contact a law firm for rock solid legal advice."
|
588 |
msgstr ""
|
589 |
|
590 |
-
#: Includes/Page.php:
|
591 |
msgid "Rate us"
|
592 |
msgstr ""
|
593 |
|
594 |
-
#: Includes/Page.php:
|
595 |
#, php-format
|
596 |
msgid "Did %s help you out? Please leave a 5-star review. Thank you!"
|
597 |
msgstr ""
|
598 |
|
599 |
-
#: Includes/Page.php:
|
600 |
msgid "Write a review"
|
601 |
msgstr ""
|
602 |
|
603 |
-
#: Includes/Page.php:
|
604 |
msgid "Support"
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: Includes/Page.php:
|
608 |
#, php-format
|
609 |
msgid ""
|
610 |
"Need a helping hand? Please ask for help on the %s. Be sure to mention your "
|
611 |
"WordPress version and give as much additional information as possible."
|
612 |
msgstr ""
|
613 |
|
614 |
-
#: Includes/Page.php:
|
615 |
msgid "Support forum"
|
616 |
msgstr ""
|
617 |
|
618 |
-
#: Includes/Page.php:
|
619 |
msgid "Enable:"
|
620 |
msgstr ""
|
621 |
|
622 |
-
#: Includes/Page.php:
|
623 |
#, php-format
|
624 |
msgid "This plugin is outdated. %s supports version %s and up."
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: Includes/Page.php:
|
628 |
msgid "Couldn't find any supported plugins installed."
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: Includes/Page.php:
|
632 |
msgid "The following plugins are supported as of now:"
|
633 |
msgstr ""
|
634 |
|
635 |
-
#: Includes/Page.php:
|
636 |
msgid "More plugins will be added in the future."
|
637 |
msgstr ""
|
638 |
|
639 |
-
#: Includes/Page.php:
|
640 |
msgid "We think you might have a mail plugin installed."
|
641 |
msgstr ""
|
642 |
|
643 |
-
#: Includes/Page.php:
|
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 "
|
@@ -648,25 +666,25 @@ msgid ""
|
|
648 |
"permission to mail them."
|
649 |
msgstr ""
|
650 |
|
651 |
-
#: Includes/Page.php:
|
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:
|
658 |
msgid "Select an option"
|
659 |
msgstr ""
|
660 |
|
661 |
-
#: Includes/Page.php:
|
662 |
msgid "Link text"
|
663 |
msgstr ""
|
664 |
|
665 |
-
#: Includes/Page.php:
|
666 |
msgid "Request User Data"
|
667 |
msgstr ""
|
668 |
|
669 |
-
#: Includes/Page.php:
|
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,34 +692,34 @@ msgid ""
|
|
674 |
"data anonymised."
|
675 |
msgstr ""
|
676 |
|
677 |
-
#: Includes/Page.php:
|
678 |
msgid "Activate"
|
679 |
msgstr ""
|
680 |
|
681 |
-
#: Includes/Page.php:
|
682 |
msgid "Activate page"
|
683 |
msgstr ""
|
684 |
|
685 |
-
#: Includes/Page.php:
|
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:
|
693 |
msgid "Page"
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: Includes/Page.php:
|
697 |
msgid "Click here to edit this page"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: Includes/Page.php:
|
701 |
msgid "Anonymise request explanation"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: Includes/Page.php:
|
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,101 +727,101 @@ msgid ""
|
|
709 |
"Consents. Once their settings are saved the bar disappears for 365 days."
|
710 |
msgstr ""
|
711 |
|
712 |
-
#: Includes/Page.php:
|
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:
|
720 |
msgid "Bar: Explanation"
|
721 |
msgstr ""
|
722 |
|
723 |
-
#: Includes/Page.php:
|
724 |
msgid "Modal: Title"
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: Includes/Page.php:
|
728 |
msgid "Modal: Explanation"
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: Includes/Page.php:
|
732 |
msgid "Add New Consent"
|
733 |
msgstr ""
|
734 |
|
735 |
-
#: Includes/Page.php:
|
736 |
msgid "Active"
|
737 |
msgstr ""
|
738 |
|
739 |
-
#: Includes/Page.php:
|
740 |
-
#: Includes/Page.php:
|
741 |
msgid "Yes"
|
742 |
msgstr ""
|
743 |
|
744 |
-
#: Includes/Page.php:
|
745 |
msgid "Title"
|
746 |
msgstr ""
|
747 |
|
748 |
-
#: Includes/Page.php:
|
749 |
msgid "e.g. \"Google Analytics\" or \"Advertising\""
|
750 |
msgstr ""
|
751 |
|
752 |
-
#: Includes/Page.php:
|
753 |
msgid "Description"
|
754 |
msgstr ""
|
755 |
|
756 |
-
#: Includes/Page.php:
|
757 |
msgid "Describe your consent script as thoroughly as possible."
|
758 |
msgstr ""
|
759 |
|
760 |
-
#: Includes/Page.php:
|
761 |
msgid "Code Snippet"
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: Includes/Page.php:
|
765 |
msgid "Code snippets for Google Analytics, Facebook Pixel, etc."
|
766 |
msgstr ""
|
767 |
|
768 |
-
#: Includes/Page.php:
|
769 |
msgid "Code Wrap"
|
770 |
msgstr ""
|
771 |
|
772 |
-
#: Includes/Page.php:
|
773 |
msgid "Placement"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: Includes/Page.php:
|
777 |
msgid "Snippet will be added to the HEAD section."
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: Includes/Page.php:
|
781 |
msgid "Snippet will be added to the FOOTER section."
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: Includes/Page.php:
|
785 |
msgid "Required"
|
786 |
msgstr ""
|
787 |
|
788 |
-
#: Includes/Page.php:
|
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:
|
795 |
msgid "Update"
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: Includes/Page.php:
|
799 |
msgid "Add"
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: Includes/Page.php:
|
803 |
msgid "Back to overview"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: Includes/Page.php:
|
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,104 +829,113 @@ msgid ""
|
|
811 |
"given."
|
812 |
msgstr ""
|
813 |
|
814 |
-
#: Includes/Page.php:
|
815 |
msgctxt "consent"
|
816 |
msgid "Add New"
|
817 |
msgstr ""
|
818 |
|
819 |
-
#: Includes/Page.php:
|
820 |
msgid "Consent"
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: Includes/Page.php:
|
824 |
msgid "Modified at"
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: Includes/Page.php:
|
828 |
msgid "Created at"
|
829 |
msgstr ""
|
830 |
|
831 |
-
#: Includes/Page.php:
|
832 |
msgid "Action"
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: Includes/Page.php:
|
836 |
-
#: wp-gdpr-compliance.php:
|
837 |
msgid "No"
|
838 |
msgstr ""
|
839 |
|
840 |
-
#: Includes/Page.php:
|
841 |
msgid "Edit"
|
842 |
msgstr ""
|
843 |
|
844 |
-
#: Includes/Page.php:
|
845 |
msgid "Remove"
|
846 |
msgstr ""
|
847 |
|
848 |
-
#: Includes/Page.php:
|
849 |
#, php-format
|
850 |
msgid "%d of %d results found"
|
851 |
msgstr ""
|
852 |
|
853 |
-
#: Includes/Page.php:
|
854 |
msgid "No consents found."
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: Includes/Page.php:
|
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:
|
864 |
msgid "WordPress Users"
|
865 |
msgstr ""
|
866 |
|
867 |
-
#: Includes/Page.php:
|
|
|
|
|
|
|
|
|
|
|
868 |
msgid "Request"
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: Includes/Page.php:
|
872 |
msgid "Type"
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: Includes/Page.php:
|
876 |
msgid "Date"
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: Includes/Page.php:
|
880 |
msgid "Processed"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: Includes/Page.php:
|
884 |
msgid "View"
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: Includes/Page.php:
|
|
|
|
|
|
|
|
|
888 |
msgid "Anonymise selected request(s)"
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: Includes/Page.php:
|
892 |
msgid "No requests found."
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: Includes/Page.php:
|
896 |
msgid "ID"
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: Includes/Page.php:
|
900 |
msgid "Requests to Process"
|
901 |
msgstr ""
|
902 |
|
903 |
-
#: Includes/Page.php:
|
904 |
msgid "Status"
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: Includes/Page.php:
|
908 |
msgid "Manage"
|
909 |
msgstr ""
|
910 |
|
911 |
-
#: Includes/Page.php:
|
912 |
msgid "Expired"
|
913 |
msgstr ""
|
914 |
|
@@ -952,18 +979,18 @@ msgstr ""
|
|
952 |
msgid "If needed you can put in a new request after 24 hours here: %s."
|
953 |
msgstr ""
|
954 |
|
955 |
-
#: Includes/Shortcode.php:
|
956 |
msgid "This request is expired or doesn't exist."
|
957 |
msgstr ""
|
958 |
|
959 |
-
#: Includes/Shortcode.php:
|
960 |
msgid "Your Email Address"
|
961 |
msgstr ""
|
962 |
|
963 |
-
#: Includes/Shortcode.php:
|
964 |
msgid "Send"
|
965 |
msgstr ""
|
966 |
|
967 |
-
#: wp-gdpr-compliance.php:
|
968 |
msgid "View WP GDPR Compliance settings"
|
969 |
msgstr ""
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: WP GDPR Compliance\n"
|
5 |
+
"POT-Creation-Date: 2018-11-12 14:17+0100\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: Van Ons <info@van-ons.nl>\n"
|
8 |
"MIME-Version: 1.0\n"
|
29 |
msgid "Retry"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: Includes/Action.php:152 Includes/Page.php:396 Includes/Shortcode.php:160
|
33 |
msgid "My settings"
|
34 |
msgstr ""
|
35 |
|
37 |
msgid "Accept"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: Includes/Action.php:183 Includes/Page.php:594
|
41 |
msgid "(no title)"
|
42 |
msgstr ""
|
43 |
|
44 |
#: Includes/Action.php:196 Includes/Helper.php:116 Includes/Helper.php:171
|
45 |
+
#: Includes/Page.php:240 Includes/Page.php:340 Includes/Page.php:391
|
46 |
+
#: Includes/Page.php:678 Includes/Page.php:781
|
47 |
msgid "Note"
|
48 |
msgstr ""
|
49 |
|
65 |
msgid "Close modal"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: Includes/Ajax.php:26 Includes/Ajax.php:95 Includes/Ajax.php:291
|
69 |
msgid "Missing data."
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: Includes/Ajax.php:36
|
73 |
+
msgid "Missing option name."
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: Includes/Ajax.php:40
|
77 |
+
msgid "You're not allowed to manage settings."
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#: Includes/Ajax.php:44
|
81 |
+
msgid "You're not allowed to manage this setting."
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: Includes/Ajax.php:48
|
85 |
msgid "Missing value."
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: Includes/Ajax.php:99
|
89 |
+
msgid "Missing type."
|
90 |
+
msgstr ""
|
91 |
+
|
92 |
+
#: Includes/Ajax.php:110
|
93 |
msgid "Missing or incorrect email address."
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: Includes/Ajax.php:114
|
97 |
msgid "You need to accept the privacy checkbox."
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: Includes/Ajax.php:139
|
101 |
msgid "page"
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: Includes/Ajax.php:146
|
105 |
#, php-format
|
106 |
msgid "%s - Your data request"
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: Includes/Ajax.php:152
|
110 |
#, php-format
|
111 |
msgid "You have requested to access your data on %s."
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: Includes/Ajax.php:156
|
115 |
#, php-format
|
116 |
msgid "Please visit this %s to view the data linked to the email address %s."
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: Includes/Ajax.php:160
|
120 |
msgid ""
|
121 |
"This page is available for 24 hours and can only be reached from the same "
|
122 |
"device, IP address and browser session you requested from."
|
123 |
msgstr ""
|
124 |
|
125 |
+
#: Includes/Ajax.php:162
|
126 |
#, php-format
|
127 |
msgid ""
|
128 |
"If your link is invalid you can fill in a new request after 24 hours: %s."
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: Includes/Ajax.php:176
|
132 |
msgid "Success. You will receive an email with your data shortly."
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: Includes/Ajax.php:180
|
136 |
msgid "Something went wrong while saving the request. Please try again."
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: Includes/Ajax.php:183
|
140 |
msgid ""
|
141 |
"You have already requested your data. Please check your mailbox. After 24 "
|
142 |
"hours you can put in a new request."
|
143 |
msgstr ""
|
144 |
|
145 |
+
#: Includes/Ajax.php:196
|
146 |
+
msgid "Missing token."
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: Includes/Ajax.php:200
|
150 |
msgid "Missing or invalid type."
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: Includes/Ajax.php:204
|
154 |
msgid "No value selected."
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: Includes/Ajax.php:224
|
158 |
msgid "Something went wrong while saving this request. Please try again."
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: Includes/Ajax.php:232 Includes/Page.php:71
|
162 |
msgid "Requests"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: Includes/Ajax.php:236
|
166 |
#, php-format
|
167 |
msgid "%s - New anonymise request"
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: Includes/Ajax.php:241
|
171 |
#, php-format
|
172 |
msgid "You have received a new anonymise request on %s."
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: Includes/Ajax.php:245
|
176 |
#, php-format
|
177 |
msgid "You can manage this request in the admin panel: %s"
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: Includes/Ajax.php:256
|
181 |
msgid "Session doesn't match."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: Includes/Ajax.php:259
|
185 |
msgid "No session found."
|
186 |
msgstr ""
|
187 |
|
188 |
+
#: Includes/Ajax.php:281
|
189 |
msgid "The access request functionality is not enabled."
|
190 |
msgstr ""
|
191 |
|
192 |
+
#: Includes/Ajax.php:295
|
193 |
msgid "This request doesn't exist."
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: Includes/Ajax.php:315
|
197 |
msgid "This user doesn't exist."
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: Includes/Ajax.php:321
|
201 |
msgid "You're not allowed to edit users."
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: Includes/Ajax.php:334
|
205 |
msgid "This comment doesn't exist."
|
206 |
msgstr ""
|
207 |
|
208 |
+
#: Includes/Ajax.php:340
|
209 |
msgid "You're not allowed to edit comments."
|
210 |
msgstr ""
|
211 |
|
212 |
+
#: Includes/Ajax.php:384
|
213 |
msgid "You're not allowed to edit WooCommerce orders."
|
214 |
msgstr ""
|
215 |
|
216 |
+
#: Includes/Ajax.php:396
|
217 |
#, php-format
|
218 |
msgid "%s - Your request"
|
219 |
msgstr ""
|
220 |
|
221 |
+
#: Includes/Ajax.php:401
|
222 |
#, php-format
|
223 |
msgid ""
|
224 |
"We have successfully processed your request and your data has been "
|
225 |
"anonymised on %s."
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: Includes/Ajax.php:404
|
229 |
msgid "The following has been processed:"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: Includes/Ajax.php:413
|
233 |
msgid "Successfully sent an confirmation mail to the user."
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: Includes/Ajax.php:417
|
237 |
msgid "This request has already been processed."
|
238 |
msgstr ""
|
239 |
|
263 |
msgid "Do not wrap my code snippet"
|
264 |
msgstr ""
|
265 |
|
266 |
+
#: Includes/Consent.php:281 Includes/Page.php:528
|
267 |
msgid "Head"
|
268 |
msgstr ""
|
269 |
|
270 |
+
#: Includes/Consent.php:282 Includes/Page.php:533
|
271 |
msgid "Footer"
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: Includes/Cron.php:21
|
275 |
+
msgid "Once a month"
|
276 |
+
msgstr ""
|
277 |
+
|
278 |
#: Includes/Data.php:27 Includes/Extensions/WP.php:34 Includes/Shortcode.php:85
|
279 |
+
#: Includes/Shortcode.php:105
|
280 |
#, php-format
|
281 |
msgid "<strong>ERROR</strong>: %s"
|
282 |
msgstr ""
|
294 |
msgstr ""
|
295 |
|
296 |
#: Includes/Data.php:54 Includes/Data.php:63 Includes/Data.php:70
|
297 |
+
#: Includes/Page.php:791
|
298 |
msgid "Email Address"
|
299 |
msgstr ""
|
300 |
|
314 |
msgid "Content"
|
315 |
msgstr ""
|
316 |
|
317 |
+
#: Includes/Data.php:64 Includes/Page.php:691 Includes/Page.php:792
|
318 |
msgid "IP Address"
|
319 |
msgstr ""
|
320 |
|
343 |
msgid "Anonymise selected %s(s)"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: Includes/DeleteRequest.php:234
|
347 |
+
msgid "Unknown"
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: Includes/DeleteRequest.php:237
|
351 |
msgid "User"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: Includes/DeleteRequest.php:240
|
355 |
msgid "Comment"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: Includes/DeleteRequest.php:243
|
359 |
msgid "WooCommerce Order"
|
360 |
msgstr ""
|
361 |
|
493 |
msgstr ""
|
494 |
|
495 |
#: Includes/Integration.php:121 Includes/Integration.php:165
|
496 |
+
#: Includes/Integration.php:200 Includes/Page.php:371
|
497 |
msgid "Checkbox text"
|
498 |
msgstr ""
|
499 |
|
524 |
msgid "You need to accept this checkbox."
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: Includes/Integration.php:282 Includes/Page.php:307 Includes/Page.php:309
|
528 |
msgid "Privacy Policy"
|
529 |
msgstr ""
|
530 |
|
537 |
"request. When your data is anonymised you will receive an email confirmation."
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: Includes/Integration.php:347 Includes/Page.php:672
|
541 |
msgid "WordPress Comments"
|
542 |
msgstr ""
|
543 |
|
559 |
msgid "Gravity Forms"
|
560 |
msgstr ""
|
561 |
|
562 |
+
#: Includes/Integration.php:376 Includes/Page.php:673
|
563 |
msgid "WooCommerce"
|
564 |
msgstr ""
|
565 |
|
573 |
msgid "Integrations"
|
574 |
msgstr ""
|
575 |
|
576 |
+
#: Includes/Page.php:57 Includes/Page.php:384
|
577 |
msgid "Consents"
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: Includes/Page.php:81
|
581 |
msgid "Checklist"
|
582 |
msgstr ""
|
583 |
|
584 |
+
#: Includes/Page.php:82 wp-gdpr-compliance.php:201
|
585 |
msgid "Settings"
|
586 |
msgstr ""
|
587 |
|
588 |
+
#: Includes/Page.php:122
|
589 |
msgid ""
|
590 |
"This plugin assists website and webshop owners to comply with European "
|
591 |
"privacy regulations known as GDPR. By May 25th, 2018 your site or shop has "
|
592 |
"to comply."
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: Includes/Page.php:125
|
596 |
#, php-format
|
597 |
msgid ""
|
598 |
"%s currently supports %s. Please visit %s for frequently asked questions and "
|
599 |
"our development roadmap."
|
600 |
msgstr ""
|
601 |
|
602 |
+
#: Includes/Page.php:133
|
603 |
msgid ""
|
604 |
"Disclaimer: The creators of this plugin do not have a legal background "
|
605 |
"please contact a law firm for rock solid legal advice."
|
606 |
msgstr ""
|
607 |
|
608 |
+
#: Includes/Page.php:138
|
609 |
msgid "Rate us"
|
610 |
msgstr ""
|
611 |
|
612 |
+
#: Includes/Page.php:140
|
613 |
#, php-format
|
614 |
msgid "Did %s help you out? Please leave a 5-star review. Thank you!"
|
615 |
msgstr ""
|
616 |
|
617 |
+
#: Includes/Page.php:141
|
618 |
msgid "Write a review"
|
619 |
msgstr ""
|
620 |
|
621 |
+
#: Includes/Page.php:145
|
622 |
msgid "Support"
|
623 |
msgstr ""
|
624 |
|
625 |
+
#: Includes/Page.php:147
|
626 |
#, php-format
|
627 |
msgid ""
|
628 |
"Need a helping hand? Please ask for help on the %s. Be sure to mention your "
|
629 |
"WordPress version and give as much additional information as possible."
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: Includes/Page.php:148
|
633 |
msgid "Support forum"
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: Includes/Page.php:181
|
637 |
msgid "Enable:"
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: Includes/Page.php:207
|
641 |
#, php-format
|
642 |
msgid "This plugin is outdated. %s supports version %s and up."
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: Includes/Page.php:216
|
646 |
msgid "Couldn't find any supported plugins installed."
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: Includes/Page.php:217
|
650 |
msgid "The following plugins are supported as of now:"
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: Includes/Page.php:223
|
654 |
msgid "More plugins will be added in the future."
|
655 |
msgstr ""
|
656 |
|
657 |
+
#: Includes/Page.php:241
|
658 |
msgid "We think you might have a mail plugin installed."
|
659 |
msgstr ""
|
660 |
|
661 |
+
#: Includes/Page.php:244
|
662 |
msgid ""
|
663 |
"Do you know where you got your email database from? Did you ask all the "
|
664 |
"people on your newsletter(s) if they consent to receiving it? GDPR requires "
|
666 |
"permission to mail them."
|
667 |
msgstr ""
|
668 |
|
669 |
+
#: Includes/Page.php:247
|
670 |
msgid ""
|
671 |
"Below we ask you what private data you currently collect and provide you "
|
672 |
"with tips to comply."
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: Includes/Page.php:314 Includes/Page.php:358
|
676 |
msgid "Select an option"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: Includes/Page.php:322
|
680 |
msgid "Link text"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: Includes/Page.php:327
|
684 |
msgid "Request User Data"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: Includes/Page.php:329
|
688 |
msgid ""
|
689 |
"Allow your site's visitors to request their data stored in the WordPress "
|
690 |
"database (comments, WooCommerce orders etc.). Data found is send to their "
|
692 |
"data anonymised."
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: Includes/Page.php:332
|
696 |
msgid "Activate"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: Includes/Page.php:334
|
700 |
msgid "Activate page"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: Includes/Page.php:342
|
704 |
#, php-format
|
705 |
msgid ""
|
706 |
"Enabling this will create one private page containing the necessary "
|
707 |
"shortcode: %s. You can determine when and how to publish this page yourself."
|
708 |
msgstr ""
|
709 |
|
710 |
+
#: Includes/Page.php:353
|
711 |
msgid "Page"
|
712 |
msgstr ""
|
713 |
|
714 |
+
#: Includes/Page.php:365
|
715 |
msgid "Click here to edit this page"
|
716 |
msgstr ""
|
717 |
|
718 |
+
#: Includes/Page.php:377
|
719 |
msgid "Anonymise request explanation"
|
720 |
msgstr ""
|
721 |
|
722 |
+
#: Includes/Page.php:386
|
723 |
msgid ""
|
724 |
"Your visitors can give permission to all of the created Consents (scripts) "
|
725 |
"through a Consent bar at the bottom of their screen. There they can also "
|
727 |
"Consents. Once their settings are saved the bar disappears for 365 days."
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: Includes/Page.php:393
|
731 |
#, php-format
|
732 |
msgid ""
|
733 |
"Let your visitors re-access their settings by placing a link to the modal "
|
734 |
"with the shortcode %s or add the \"%s\" class to a menu item."
|
735 |
msgstr ""
|
736 |
|
737 |
+
#: Includes/Page.php:405
|
738 |
msgid "Bar: Explanation"
|
739 |
msgstr ""
|
740 |
|
741 |
+
#: Includes/Page.php:411
|
742 |
msgid "Modal: Title"
|
743 |
msgstr ""
|
744 |
|
745 |
+
#: Includes/Page.php:417
|
746 |
msgid "Modal: Explanation"
|
747 |
msgstr ""
|
748 |
|
749 |
+
#: Includes/Page.php:458
|
750 |
msgid "Add New Consent"
|
751 |
msgstr ""
|
752 |
|
753 |
+
#: Includes/Page.php:460 Includes/Page.php:579 Includes/Page.php:821
|
754 |
msgid "Active"
|
755 |
msgstr ""
|
756 |
|
757 |
+
#: Includes/Page.php:462 Includes/Page.php:543 Includes/Page.php:598
|
758 |
+
#: Includes/Page.php:618 wp-gdpr-compliance.php:210 wp-gdpr-compliance.php:228
|
759 |
msgid "Yes"
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: Includes/Page.php:466 Includes/Page.php:574
|
763 |
msgid "Title"
|
764 |
msgstr ""
|
765 |
|
766 |
+
#: Includes/Page.php:470
|
767 |
msgid "e.g. \"Google Analytics\" or \"Advertising\""
|
768 |
msgstr ""
|
769 |
|
770 |
+
#: Includes/Page.php:475
|
771 |
msgid "Description"
|
772 |
msgstr ""
|
773 |
|
774 |
+
#: Includes/Page.php:479
|
775 |
msgid "Describe your consent script as thoroughly as possible."
|
776 |
msgstr ""
|
777 |
|
778 |
+
#: Includes/Page.php:484
|
779 |
msgid "Code Snippet"
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: Includes/Page.php:488
|
783 |
msgid "Code snippets for Google Analytics, Facebook Pixel, etc."
|
784 |
msgstr ""
|
785 |
|
786 |
+
#: Includes/Page.php:493
|
787 |
msgid "Code Wrap"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: Includes/Page.php:510
|
791 |
msgid "Placement"
|
792 |
msgstr ""
|
793 |
|
794 |
+
#: Includes/Page.php:529
|
795 |
msgid "Snippet will be added to the HEAD section."
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: Includes/Page.php:534
|
799 |
msgid "Snippet will be added to the FOOTER section."
|
800 |
msgstr ""
|
801 |
|
802 |
+
#: Includes/Page.php:541 Includes/Page.php:575
|
803 |
msgid "Required"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: Includes/Page.php:545
|
807 |
msgid ""
|
808 |
"Ticking this checkbox means this Consent will always be triggered so users "
|
809 |
"cannot opt-in or opt-out."
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: Includes/Page.php:550
|
813 |
msgid "Update"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: Includes/Page.php:550
|
817 |
msgid "Add"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: Includes/Page.php:551
|
821 |
msgid "Back to overview"
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: Includes/Page.php:566
|
825 |
msgid ""
|
826 |
"Ask your visitors for permission to enable certain scripts for tracking or "
|
827 |
"advertising purposes. Add a Consent for each type of script you are "
|
829 |
"given."
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: Includes/Page.php:567
|
833 |
msgctxt "consent"
|
834 |
msgid "Add New"
|
835 |
msgstr ""
|
836 |
|
837 |
+
#: Includes/Page.php:573
|
838 |
msgid "Consent"
|
839 |
msgstr ""
|
840 |
|
841 |
+
#: Includes/Page.php:576
|
842 |
msgid "Modified at"
|
843 |
msgstr ""
|
844 |
|
845 |
+
#: Includes/Page.php:577
|
846 |
msgid "Created at"
|
847 |
msgstr ""
|
848 |
|
849 |
+
#: Includes/Page.php:578 Includes/Page.php:694
|
850 |
msgid "Action"
|
851 |
msgstr ""
|
852 |
|
853 |
+
#: Includes/Page.php:598 Includes/Page.php:618 wp-gdpr-compliance.php:211
|
854 |
+
#: wp-gdpr-compliance.php:229
|
855 |
msgid "No"
|
856 |
msgstr ""
|
857 |
|
858 |
+
#: Includes/Page.php:608
|
859 |
msgid "Edit"
|
860 |
msgstr ""
|
861 |
|
862 |
+
#: Includes/Page.php:613
|
863 |
msgid "Remove"
|
864 |
msgstr ""
|
865 |
|
866 |
+
#: Includes/Page.php:641 Includes/Page.php:752 Includes/Page.php:844
|
867 |
#, php-format
|
868 |
msgid "%d of %d results found"
|
869 |
msgstr ""
|
870 |
|
871 |
+
#: Includes/Page.php:645
|
872 |
msgid "No consents found."
|
873 |
msgstr ""
|
874 |
|
875 |
+
#: Includes/Page.php:669
|
876 |
msgid ""
|
877 |
"Anonymise a request by ticking the checkbox and clicking on the green "
|
878 |
"anonymise button below."
|
879 |
msgstr ""
|
880 |
|
881 |
+
#: Includes/Page.php:671
|
882 |
msgid "WordPress Users"
|
883 |
msgstr ""
|
884 |
|
885 |
+
#: Includes/Page.php:679 Includes/Page.php:782
|
886 |
+
#, php-format
|
887 |
+
msgid "Requests are automatically anonymised after %d days."
|
888 |
+
msgstr ""
|
889 |
+
|
890 |
+
#: Includes/Page.php:689
|
891 |
msgid "Request"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: Includes/Page.php:690
|
895 |
msgid "Type"
|
896 |
msgstr ""
|
897 |
|
898 |
+
#: Includes/Page.php:692 Includes/Page.php:793
|
899 |
msgid "Date"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: Includes/Page.php:693
|
903 |
msgid "Processed"
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: Includes/Page.php:712
|
907 |
msgid "View"
|
908 |
msgstr ""
|
909 |
|
910 |
+
#: Includes/Page.php:714
|
911 |
+
msgid "N/A"
|
912 |
+
msgstr ""
|
913 |
+
|
914 |
+
#: Includes/Page.php:733
|
915 |
msgid "Anonymise selected request(s)"
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: Includes/Page.php:758 Includes/Page.php:850
|
919 |
msgid "No requests found."
|
920 |
msgstr ""
|
921 |
|
922 |
+
#: Includes/Page.php:789
|
923 |
msgid "ID"
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: Includes/Page.php:790
|
927 |
msgid "Requests to Process"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: Includes/Page.php:794
|
931 |
msgid "Status"
|
932 |
msgstr ""
|
933 |
|
934 |
+
#: Includes/Page.php:813
|
935 |
msgid "Manage"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: Includes/Page.php:821
|
939 |
msgid "Expired"
|
940 |
msgstr ""
|
941 |
|
979 |
msgid "If needed you can put in a new request after 24 hours here: %s."
|
980 |
msgstr ""
|
981 |
|
982 |
+
#: Includes/Shortcode.php:106
|
983 |
msgid "This request is expired or doesn't exist."
|
984 |
msgstr ""
|
985 |
|
986 |
+
#: Includes/Shortcode.php:126
|
987 |
msgid "Your Email Address"
|
988 |
msgstr ""
|
989 |
|
990 |
+
#: Includes/Shortcode.php:140
|
991 |
msgid "Send"
|
992 |
msgstr ""
|
993 |
|
994 |
+
#: wp-gdpr-compliance.php:201
|
995 |
msgid "View WP GDPR Compliance settings"
|
996 |
msgstr ""
|
readme.txt
CHANGED
@@ -4,21 +4,27 @@ Tags: gdpr, law, regulations, compliance, data, protection, privacy, data protec
|
|
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 |
|
11 |
-
This plugin assists website owners to comply with European privacy regulations (GDPR).
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
-
ACTIVATING THIS PLUGIN DOES NOT GUARANTEE YOU FULLY COMPLY WITH GDPR. PLEASE CONTACT A GDPR CONSULTANT OR LAW FIRM TO ASSESS NECESSARY MEASURES.
|
16 |
|
17 |
-
This plugin assists website and webshop owners to comply with European privacy regulations known as GDPR.
|
18 |
|
19 |
-
|
|
|
|
|
|
|
|
|
20 |
|
21 |
-
|
|
|
|
|
|
|
22 |
|
23 |
== Installation ==
|
24 |
|
@@ -28,7 +34,7 @@ We constantly update this plugin to take care of more GDPR related issues. To ch
|
|
28 |
|
29 |
== Frequently Asked Questions ==
|
30 |
|
31 |
-
You'll find answers to many of your questions on [wpgdprc.com](https://www.wpgdprc.com/faq/ "Frequently Asked Questions")
|
32 |
|
33 |
== Screenshots ==
|
34 |
|
@@ -39,6 +45,15 @@ You'll find answers to many of your questions on [wpgdprc.com](https://www.wpgdp
|
|
39 |
|
40 |
== Changelog ==
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
= 1.4.3 =
|
43 |
*Release date: November 7th, 2018*
|
44 |
* Security fix: Removed base64_decode() function.
|
@@ -135,36 +150,36 @@ You'll find answers to many of your questions on [wpgdprc.com](https://www.wpgdp
|
|
135 |
|
136 |
= 1.2.4 =
|
137 |
*Release date: April 3rd, 2018*
|
138 |
-
* Show a notice when Jetpack is installed
|
139 |
-
* Fixed a bug with WordPress Comments
|
140 |
|
141 |
= 1.2.3 =
|
142 |
*Release date: March 29th, 2018*
|
143 |
-
* Storage of explicit consent timestamp
|
144 |
-
* Return of the settings tab
|
145 |
-
* Added ability to include your privacy policy page
|
146 |
-
* Added a couple of apply_filters()
|
147 |
-
* Small styling changes
|
148 |
-
* Added .POT file to translate this plugin (Thanks for translating!)
|
149 |
|
150 |
= 1.2.2 =
|
151 |
*Release date: March 2nd, 2018*
|
152 |
-
* Fixed a bug with WordPress Comments
|
153 |
-
* Added countdown to GDPR deadline (May 25, 2018)
|
154 |
-
* Added ability to add custom error messages to Contact Form 7 and Gravity Forms
|
155 |
-
* Added ability to add HTML tags to the texts and error messages
|
156 |
|
157 |
= 1.2.1 =
|
158 |
*Release date: February 26th, 2018*
|
159 |
-
* Fixed a bug with WordPress comments
|
160 |
-
* Fixed a bug with default checkbox texts
|
161 |
|
162 |
= 1.2 =
|
163 |
*Release date: February 23rd, 2018*
|
164 |
* Limit data shared with WordPress when updating the core.
|
165 |
-
* Added minimum supported version for Contact Form 7 (version 4.6)
|
166 |
-
* Added minimum supported version for Gravity Forms (version 1.9)
|
167 |
-
* Added minimum supported version for WooCommerce (version 2.5.0)
|
168 |
* Delete all data created by the plugin after deactivating integrations or uninstalling the plugin.
|
169 |
* Moved the position of the GDPR checkbox in the WordPress Comments form. (directly above the submit button)
|
170 |
* Moved the position of the GDPR checkbox in WooCommerce. (directly above the submit button)
|
4 |
Requires at least: 4.5
|
5 |
Tested up to: 4.9.4
|
6 |
Requires PHP: 5.3
|
7 |
+
Stable tag: 1.4.4
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
+
This plugin assists website owners to comply with European privacy regulations (GDPR).
|
12 |
|
13 |
== Description ==
|
14 |
|
|
|
15 |
|
16 |
+
This plugin assists website and webshop owners to comply with European privacy regulations known as GDPR. Activating this plugin does not guarantee your site fully complies with GDPR.
|
17 |
|
18 |
+
- Add Consents and give your visitors full control.
|
19 |
+
- Keeping a consent log for supported plugins.
|
20 |
+
- Adding checkboxes to supported plugins for explicit visitor consent.
|
21 |
+
- 'Right to access' through encrypted audit logs and double opt-in mail.
|
22 |
+
- 'Right to be forgotten' by anonymising user data.
|
23 |
|
24 |
+
WP GDPR Compliance supports Contact Form 7 (>= 4.6), Gravity Forms (>= 1.9), WooCommerce (>= 2.5.0) and WordPress Comments.
|
25 |
+
|
26 |
+
Documentation
|
27 |
+
[https://www.wpgdprc.com/documentation/](https://www.wpgdprc.com/documentation/ "WP GDPR Compliance documentation")
|
28 |
|
29 |
== Installation ==
|
30 |
|
34 |
|
35 |
== Frequently Asked Questions ==
|
36 |
|
37 |
+
You'll find answers to many of your questions on [https://www.wpgdprc.com/faq/](https://www.wpgdprc.com/faq/ "Frequently Asked Questions")
|
38 |
|
39 |
== Screenshots ==
|
40 |
|
45 |
|
46 |
== Changelog ==
|
47 |
|
48 |
+
= 1.4.4 =
|
49 |
+
*Release date: November 28th, 2018*
|
50 |
+
* Anonymise requests after 30 days. This also removes the ability to process delete requests.
|
51 |
+
* Small bugfix to correctly strip slashes from 'Consent' titles.
|
52 |
+
* Added possibility to use external URL's for the privacy policy.
|
53 |
+
* Added auto opt-in for admin's when adding a comment.
|
54 |
+
* Fixed bug that added attachment to the consent bar when viewing an attachment.
|
55 |
+
* Fixed bug with token.
|
56 |
+
|
57 |
= 1.4.3 =
|
58 |
*Release date: November 7th, 2018*
|
59 |
* Security fix: Removed base64_decode() function.
|
150 |
|
151 |
= 1.2.4 =
|
152 |
*Release date: April 3rd, 2018*
|
153 |
+
* Show a notice when Jetpack is installed.
|
154 |
+
* Fixed a bug with WordPress Comments.
|
155 |
|
156 |
= 1.2.3 =
|
157 |
*Release date: March 29th, 2018*
|
158 |
+
* Storage of explicit consent timestamp.
|
159 |
+
* Return of the settings tab.
|
160 |
+
* Added ability to include your privacy policy page.
|
161 |
+
* Added a couple of apply_filters().
|
162 |
+
* Small styling changes.
|
163 |
+
* Added .POT file to translate this plugin. (Thanks for translating!)
|
164 |
|
165 |
= 1.2.2 =
|
166 |
*Release date: March 2nd, 2018*
|
167 |
+
* Fixed a bug with WordPress Comments.
|
168 |
+
* Added countdown to GDPR deadline. (May 25, 2018)
|
169 |
+
* Added ability to add custom error messages to Contact Form 7 and Gravity Forms.
|
170 |
+
* Added ability to add HTML tags to the texts and error messages.
|
171 |
|
172 |
= 1.2.1 =
|
173 |
*Release date: February 26th, 2018*
|
174 |
+
* Fixed a bug with WordPress comments.
|
175 |
+
* Fixed a bug with default checkbox texts.
|
176 |
|
177 |
= 1.2 =
|
178 |
*Release date: February 23rd, 2018*
|
179 |
* Limit data shared with WordPress when updating the core.
|
180 |
+
* Added minimum supported version for Contact Form 7. (version 4.6)
|
181 |
+
* Added minimum supported version for Gravity Forms. (version 1.9)
|
182 |
+
* Added minimum supported version for WooCommerce. (version 2.5.0)
|
183 |
* Delete all data created by the plugin after deactivating integrations or uninstalling the plugin.
|
184 |
* Moved the position of the GDPR checkbox in the WordPress Comments form. (directly above the submit button)
|
185 |
* Moved the position of the GDPR checkbox in WooCommerce. (directly above the submit button)
|
uninstall.php
CHANGED
@@ -29,6 +29,7 @@ $wpdb->query("DROP TABLE IF EXISTS `{$wpdb->base_prefix}wpgdprc_consents`");
|
|
29 |
|
30 |
// Cronjobs
|
31 |
wp_clear_scheduled_hook('wpgdprc_deactivate_access_requests');
|
|
|
32 |
|
33 |
// Clear any cached data that has been removed
|
34 |
wp_cache_flush();
|
29 |
|
30 |
// Cronjobs
|
31 |
wp_clear_scheduled_hook('wpgdprc_deactivate_access_requests');
|
32 |
+
wp_clear_scheduled_hook('wpgdprc_anonymise_requests');
|
33 |
|
34 |
// Clear any cached data that has been removed
|
35 |
wp_cache_flush();
|
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
|
@@ -94,6 +94,7 @@ class WPGDPRC {
|
|
94 |
add_action('wp_enqueue_scripts', array($this, 'loadAssets'), 999);
|
95 |
add_action('admin_enqueue_scripts', array($this, 'loadAdminAssets'), 999);
|
96 |
add_action('core_version_check_query_args', array(Action::getInstance(), 'onlySendEssentialDataDuringUpdateCheck'));
|
|
|
97 |
add_action('wp_ajax_wpgdprc_process_settings', array(Ajax::getInstance(), 'processSettings'));
|
98 |
add_action('wp_ajax_wpgdprc_process_action', array(Ajax::getInstance(), 'processAction'));
|
99 |
add_action('wp_ajax_nopriv_wpgdprc_process_action', array(Ajax::getInstance(), 'processAction'));
|
@@ -103,15 +104,22 @@ class WPGDPRC {
|
|
103 |
add_action('init', array(Action::getInstance(), 'processEnableAccessRequest'));
|
104 |
add_action('admin_notices', array(Action::getInstance(), 'showNoticesRequestUserData'));
|
105 |
add_action('wpgdprc_deactivate_access_requests', array(Cron::getInstance(), 'deactivateAccessRequests'));
|
|
|
106 |
add_action('wp_ajax_wpgdprc_process_delete_request', array(Ajax::getInstance(), 'processDeleteRequest'));
|
107 |
add_shortcode('wpgdprc_access_request_form', array(Shortcode::getInstance(), 'accessRequestForm'));
|
108 |
if (!wp_next_scheduled('wpgdprc_deactivate_access_requests')) {
|
109 |
wp_schedule_event(time(), 'hourly', 'wpgdprc_deactivate_access_requests');
|
110 |
}
|
|
|
|
|
|
|
111 |
} else {
|
112 |
if (wp_next_scheduled('wpgdprc_deactivate_access_requests')) {
|
113 |
wp_clear_scheduled_hook('wpgdprc_deactivate_access_requests');
|
114 |
}
|
|
|
|
|
|
|
115 |
}
|
116 |
if (Consent::databaseTableExists()) {
|
117 |
add_shortcode('wpgdprc_consents_settings_link', array(Shortcode::getInstance(), 'consentsSettingsLink'));
|
@@ -126,13 +134,12 @@ class WPGDPRC {
|
|
126 |
add_filter('wpgdprc_the_content', 'convert_smilies', 20);
|
127 |
add_filter('wpgdprc_the_content', 'wpautop');
|
128 |
add_filter('wpgdprc_the_content', 'shortcode_unautop');
|
129 |
-
add_filter('wpgdprc_the_content', 'prepend_attachment');
|
130 |
add_filter('wpgdprc_the_content', 'wp_make_content_images_responsive');
|
131 |
}
|
132 |
|
133 |
public static function handleDatabaseTables() {
|
134 |
$dbVersion = get_option('wpgdprc_db_version', 0);
|
135 |
-
if (version_compare($dbVersion, '1.
|
136 |
return;
|
137 |
}
|
138 |
|
@@ -176,11 +183,17 @@ class WPGDPRC {
|
|
176 |
}
|
177 |
|
178 |
// Add column 'token' to 'Access Requests' table
|
179 |
-
if (version_compare($dbVersion, '1.
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
}
|
185 |
}
|
186 |
|
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.4
|
8 |
Author: Van Ons
|
9 |
Author URI: https://www.van-ons.nl/
|
10 |
License: GPL2
|
94 |
add_action('wp_enqueue_scripts', array($this, 'loadAssets'), 999);
|
95 |
add_action('admin_enqueue_scripts', array($this, 'loadAdminAssets'), 999);
|
96 |
add_action('core_version_check_query_args', array(Action::getInstance(), 'onlySendEssentialDataDuringUpdateCheck'));
|
97 |
+
add_filter('cron_schedules', array(Cron::getInstance(), 'addCronSchedules'));
|
98 |
add_action('wp_ajax_wpgdprc_process_settings', array(Ajax::getInstance(), 'processSettings'));
|
99 |
add_action('wp_ajax_wpgdprc_process_action', array(Ajax::getInstance(), 'processAction'));
|
100 |
add_action('wp_ajax_nopriv_wpgdprc_process_action', array(Ajax::getInstance(), 'processAction'));
|
104 |
add_action('init', array(Action::getInstance(), 'processEnableAccessRequest'));
|
105 |
add_action('admin_notices', array(Action::getInstance(), 'showNoticesRequestUserData'));
|
106 |
add_action('wpgdprc_deactivate_access_requests', array(Cron::getInstance(), 'deactivateAccessRequests'));
|
107 |
+
add_action('wpgdprc_anonymise_requests', array(Cron::getInstance(), 'anonymiseRequests'));
|
108 |
add_action('wp_ajax_wpgdprc_process_delete_request', array(Ajax::getInstance(), 'processDeleteRequest'));
|
109 |
add_shortcode('wpgdprc_access_request_form', array(Shortcode::getInstance(), 'accessRequestForm'));
|
110 |
if (!wp_next_scheduled('wpgdprc_deactivate_access_requests')) {
|
111 |
wp_schedule_event(time(), 'hourly', 'wpgdprc_deactivate_access_requests');
|
112 |
}
|
113 |
+
if (!wp_next_scheduled('wpgdprc_anonymise_requests')) {
|
114 |
+
wp_schedule_event(time(), 'wpgdprc-monthly', 'wpgdprc_anonymise_requests');
|
115 |
+
}
|
116 |
} else {
|
117 |
if (wp_next_scheduled('wpgdprc_deactivate_access_requests')) {
|
118 |
wp_clear_scheduled_hook('wpgdprc_deactivate_access_requests');
|
119 |
}
|
120 |
+
if (wp_next_scheduled('wpgdprc_anonymise_requests')) {
|
121 |
+
wp_clear_scheduled_hook('wpgdprc_anonymise_requests');
|
122 |
+
}
|
123 |
}
|
124 |
if (Consent::databaseTableExists()) {
|
125 |
add_shortcode('wpgdprc_consents_settings_link', array(Shortcode::getInstance(), 'consentsSettingsLink'));
|
134 |
add_filter('wpgdprc_the_content', 'convert_smilies', 20);
|
135 |
add_filter('wpgdprc_the_content', 'wpautop');
|
136 |
add_filter('wpgdprc_the_content', 'shortcode_unautop');
|
|
|
137 |
add_filter('wpgdprc_the_content', 'wp_make_content_images_responsive');
|
138 |
}
|
139 |
|
140 |
public static function handleDatabaseTables() {
|
141 |
$dbVersion = get_option('wpgdprc_db_version', 0);
|
142 |
+
if (version_compare($dbVersion, '1.4', '==')) {
|
143 |
return;
|
144 |
}
|
145 |
|
183 |
}
|
184 |
|
185 |
// Add column 'token' to 'Access Requests' table
|
186 |
+
if (version_compare($dbVersion, '1.4', '<')) {
|
187 |
+
if ($wpdb->get_var("SHOW TABLES LIKE '" . AccessRequest::getDatabaseTableName() . "'") === AccessRequest::getDatabaseTableName()) {
|
188 |
+
if (!$wpdb->get_var("SHOW COLUMNS " . AccessRequest::getDatabaseTableName() ." LIKE 'token';")) {
|
189 |
+
$query = "ALTER TABLE `" . AccessRequest::getDatabaseTableName() . "`
|
190 |
+
ADD column `token` text NOT NULL AFTER `ip_address`;";
|
191 |
+
$wpdb->query($query);
|
192 |
+
update_option('wpgdprc_db_version', '1.4');
|
193 |
+
} else {
|
194 |
+
update_option('wpgdprc_db_version', '1.4');
|
195 |
+
}
|
196 |
+
}
|
197 |
}
|
198 |
}
|
199 |
|