PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Classes / GDPR.php
wp-user-avatar / src / Classes Last commit date
Installer 3 years ago AdminNotices.php 1 month ago AjaxHandler.php 1 year ago Autologin.php 9 months ago BlockRegistrations.php 10 months ago BuddyPressBbPress.php 3 years ago DisableConcurrentLogins.php 2 years ago EditUserProfile.php 5 months ago ExtensionManager.php 1 month ago FileUploader.php 3 months ago FormPreviewHandler.php 5 months ago FormRepository.php 1 year ago FormShortcodeDefaults.php 1 month ago GDPR.php 3 years ago Geolocation.php 3 years ago GlobalSiteAccess.php 3 years ago ImageUploader.php 1 year ago LoginAuth.php 1 year ago Miscellaneous.php 3 years ago ModifyRedirectDefaultLinks.php 5 months ago PPRESS_Session.php 1 year ago PROFILEPRESS_sql.php 1 year ago PasswordReset.php 1 year ago ProfileUrlRewrite.php 4 years ago RegistrationAuth.php 1 week ago SendEmail.php 3 years ago ShortcodeThemeFactory.php 5 years ago UserAvatar.php 1 year ago UserSignupLocationListingPage.php 3 years ago UsernameEmailRestrictLogin.php 4 years ago WPProfileFieldParserTrait.php 1 year ago WelcomeEmailAfterSignup.php 1 year ago default-email-template.php 1 year ago index.php 3 years ago
GDPR.php
117 lines
1 <?php
2
3 namespace ProfilePress\Core\Classes;
4
5 class GDPR
6 {
7 public function __construct()
8 {
9 add_filter('wp_privacy_personal_data_exporters', [$this, 'wp_export_data']);
10 add_filter('wp_privacy_personal_data_erasers', [$this, 'wp_erase_data']);
11 }
12
13 public function wp_erase_data($erasers)
14 {
15 $erasers['profilepress'] = [
16 'eraser_friendly_name' => esc_html__('User Extra Information', 'wp-user-avatar'),
17 'callback' => [$this, 'erase_data']
18 ];
19
20 return $erasers;
21 }
22
23 public function erase_data($email_address)
24 {
25 $user = get_user_by('email', $email_address);
26 $user_id = $user->ID;
27 $custom_fields = ppress_custom_fields_key_value_pair(true);
28
29 $items_removed = false;
30 $items_retained = false;
31
32 if ( ! empty($custom_fields) && is_array($custom_fields)) {
33
34 foreach ($custom_fields as $field_key => $field_label) {
35
36 $get_meta_value = get_user_meta($user_id, $field_key);
37 if (empty($get_meta_value)) continue;
38
39 $deleted = delete_user_meta($user_id, $field_key);
40
41 if ($deleted) {
42 $items_removed = true;
43 } else {
44 $items_retained = true;
45 }
46 }
47 }
48
49 return [
50 'items_removed' => $items_removed,
51 'items_retained' => $items_retained,
52 'messages' => [],
53 'done' => true,
54 ];
55 }
56
57 public function wp_export_data($exporters)
58 {
59 $exporters[] = array(
60 'exporter_friendly_name' => esc_html__('User Extra Information', 'wp-user-avatar'),
61 'callback' => function ($email_address) {
62
63 $user = get_user_by('email', $email_address);
64 $user_id = $user->ID;
65
66 $data_to_export = [];
67
68 $lead_data_to_export = [];
69
70 $x_custom_fields = ppress_custom_fields_key_value_pair(true);
71
72 if ( ! empty($x_custom_fields) && is_array($x_custom_fields)) {
73
74 foreach ($x_custom_fields as $field_key => $field_label) {
75
76 $usermeta_value = get_user_meta($user_id, $field_key, true);
77
78 if ( ! empty($usermeta_value)) {
79 $lead_data_to_export[] = [
80 'name' => $field_label,
81 'value' => get_user_meta($user_id, $field_key, true)
82 ];
83 }
84 }
85
86 $data_to_export[] = [
87 'group_id' => 'profilepress',
88 'group_label' => esc_html__('User Extra Information', 'wp-user-avatar'),
89 'item_id' => "profilepress-{$user_id}",
90 'data' => $lead_data_to_export
91 ];
92 }
93
94 return [
95 'data' => $data_to_export,
96 'done' => true,
97 ];
98 }
99 );
100
101 return $exporters;
102 }
103
104 /**
105 * @return GDPR
106 */
107 public static function get_instance()
108 {
109 static $instance = null;
110
111 if (is_null($instance)) {
112 $instance = new self();
113 }
114
115 return $instance;
116 }
117 }