PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.1
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
AdminNotices.php 5 years ago AjaxHandler.php 5 years ago Autologin.php 5 years ago BuddyPressBbPress.php 5 years ago EditUserProfile.php 5 years ago ExtensionManager.php 5 years ago FileUploader.php 5 years ago FormPreviewHandler.php 5 years ago FormRepository.php 5 years ago FormShortcodeDefaults.php 5 years ago GDPR.php 5 years ago GlobalSiteAccess.php 5 years ago ImageUploader.php 5 years ago LoginAuth.php 5 years ago Miscellaneous.php 5 years ago ModifyRedirectDefaultLinks.php 5 years ago PPRESS_Session.php 5 years ago PROFILEPRESS_sql.php 5 years ago PasswordReset.php 5 years ago ProfileUrlRewrite.php 5 years ago RegistrationAuth.php 5 years ago SendEmail.php 5 years ago ShortcodeThemeFactory.php 5 years ago UserAvatar.php 5 years ago UserSignupLocationListingPage.php 5 years ago UsernameEmailRestrictLogin.php 5 years ago WelcomeEmailAfterSignup.php 5 years ago default-email-template.php 5 years ago index.php 5 years ago
GDPR.php
137 lines
1 <?php
2
3 namespace ProfilePress\Core\Classes;
4
5
6 use ProfilePress\Core\Classes\PROFILEPRESS_sql as PROFILEPRESS_sql;
7
8 class GDPR
9 {
10 public function __construct()
11 {
12 add_filter('wp_privacy_personal_data_exporters', [$this, 'wp_export_data']);
13 add_filter('wp_privacy_personal_data_erasers', [$this, 'wp_erase_data']);
14 }
15
16 public function wp_erase_data($erasers)
17 {
18 $erasers['profilepress'] = [
19 'eraser_friendly_name' => esc_html__('User Extra Information', 'wp-user-avatar'),
20 'callback' => [$this, 'erase_data']
21 ];
22
23 return $erasers;
24 }
25
26 public function erase_data($email_address)
27 {
28 $user = get_user_by('email', $email_address);
29 $user_id = $user->ID;
30 $custom_fields = PROFILEPRESS_sql::get_profile_custom_fields();
31
32 $items_removed = false;
33 $items_retained = false;
34
35 if ( ! empty($custom_fields) && is_array($custom_fields)) {
36
37 foreach ($custom_fields as $custom_field) {
38
39 $get_meta_value = get_user_meta($user_id, $custom_field['field_key']);
40 if (empty($get_meta_value)) continue;
41
42 $deleted = delete_user_meta($user_id, $custom_field['field_key']);
43 if ($deleted) {
44 $items_removed = true;
45 } else {
46 $items_retained = true;
47 }
48 }
49 }
50
51 return [
52 'items_removed' => $items_removed,
53 'items_retained' => $items_retained,
54 'messages' => [],
55 'done' => true,
56 ];
57 }
58
59 public function wp_export_data($exporters)
60 {
61 $exporters[] = array(
62 'exporter_friendly_name' => esc_html__('User Extra Information', 'wp-user-avatar'),
63 'callback' => function ($email_address) {
64 $user = get_user_by('email', $email_address);
65 $user_id = $user->ID;
66
67 $data_to_export = [];
68
69 $custom_fields = PROFILEPRESS_sql::get_profile_custom_fields();
70 $db_contact_infos = PROFILEPRESS_sql::get_contact_info_fields();
71
72 if ( ! empty($db_contact_infos) || ! empty($custom_fields)) {
73
74 $lead_data_to_export = [];
75
76 if ( ! empty($db_contact_infos) && is_array($db_contact_infos)) {
77
78 foreach ($db_contact_infos as $key => $value) {
79
80 $usermeta_value = get_user_meta($user_id, $key, true);
81
82 if ( ! empty($usermeta_value)) {
83 $lead_data_to_export[] = [
84 'name' => $value,
85 'value' => $usermeta_value
86 ];
87 }
88 }
89 }
90
91 if ( ! empty($custom_fields) && is_array($custom_fields)) {
92
93 foreach ($custom_fields as $custom_field) {
94
95 $usermeta_value = get_user_meta($user_id, $custom_field['field_key'], true);
96
97 if ( ! empty($usermeta_value)) {
98 $lead_data_to_export[] = [
99 'name' => $custom_field['label_name'],
100 'value' => $usermeta_value
101 ];
102 }
103 }
104 }
105
106 $data_to_export[] = [
107 'group_id' => 'profilepress',
108 'group_label' => esc_html__('User Extra Information', 'wp-user-avatar'),
109 'item_id' => "profilepress-{$user_id}",
110 'data' => $lead_data_to_export
111 ];
112 }
113
114 return [
115 'data' => $data_to_export,
116 'done' => true,
117 ];
118 }
119 );
120
121 return $exporters;
122 }
123
124 /**
125 * @return GDPR
126 */
127 public static function get_instance()
128 {
129 static $instance = null;
130
131 if (is_null($instance)) {
132 $instance = new self();
133 }
134
135 return $instance;
136 }
137 }