Index: src/wp-includes/default-filters.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/wp-includes/default-filters.php	(revision 42965)
+++ src/wp-includes/default-filters.php	(date 1523362986000)
@@ -329,6 +329,7 @@
 add_action( 'do_robots', 'do_robots' );
 add_action( 'set_comment_cookies', 'wp_set_comment_cookies', 10, 3 );
 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_comment_personal_data_exporter', 10 );
+add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_user_personal_data_exporter', 10);
 add_action( 'sanitize_comment_cookies', 'sanitize_comment_cookies' );
 add_action( 'admin_print_scripts', 'print_emoji_detection_script' );
 add_action( 'admin_print_scripts', 'print_head_scripts', 20 );
Index: src/wp-includes/user.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/wp-includes/user.php	(revision 42965)
+++ src/wp-includes/user.php	(date 1523423933000)
@@ -3096,4 +3096,104 @@
 	}
 
 	return $return;
+}
+
+/**
+ * Registers the personal data exporter for users.
+ *
+ * @param array   $exporters   An array of personal data exporters.
+ * @return array  An array of personal data exporters.
+ */
+function wp_register_user_personal_data_exporter( $exporters ) {
+    $exporters[] = array(
+        'exporter_friendly_name' => __( 'WordPress User' ),
+        'callback'               => 'wp_user_personal_data_exporter',
+    );
+
+    return $exporters;
+}
+
+/**
+ * Finds and exports personal data associated with an email address from the user and user_meta table.
+ *
+ * @param string  $email_address The users email address.
+ * @param int     $page
+ * @return array  An array of personal data.
+ */
+function wp_user_personal_data_exporter( $email_address, $page = 1 ) {
+    $email_address = trim( strtolower( $email_address ) );
+
+    $data_to_export = array();
+
+    $user = get_user_by( 'email', $email_address );
+    $user_meta = get_user_meta( $user->ID );
+
+    $user_prop_to_export = array(
+        'ID'                => __( 'User ID' ),
+        'user_login'        => __( 'User Login Name' ),
+//        'user_pass'         => __( 'User Password (hashed)'),
+        'user_nicename'     => __( 'User Nice Name' ),
+        'user_email'        => __( 'User Email' ),
+        'user_url'          => __( 'User URL' ),
+        'user_registered'   => __( 'User Registered At'),
+        'user_status'       => __( 'User Status'),
+        'display_name'      => __( 'User Display Name'),
+        'nickname'          => __( 'User Nickname' ),
+        'first_name'        => __( 'User First Name' ),
+        'last_name'         => __( 'User Last Name' ),
+        'description'       => __( 'User Description' ),
+    );
+
+    $user_data_to_export = array();
+
+    foreach ( $user_prop_to_export as $key => $name ) {
+        $value = '';
+
+        switch ( $key ) {
+            case 'ID':
+            case 'user_login':
+//            case 'user_pass':
+            case 'user_nicename':
+            case 'user_email':
+            case 'user_url':
+            case 'user_registered':
+            case 'display_name':
+                $value = $user->data->$key;
+                break;
+            case 'user_status':
+                if ($user->data->user_status == '0') {
+                    $value = __( 'Active' );
+                } elseif ($user->data->user_status = '1' ) {
+                    $value = __( 'Inactive' );
+                } else {
+                    $value = $user->data->user_status;
+                }
+                break;
+                //case ''
+            case 'nickname':
+            case 'first_name':
+            case 'last_name':
+            case 'description':
+                $value = $user_meta[ $key ][0];
+        }
+
+        if ( ! empty( $value ) ) {
+            $user_data_to_export[] = array( 'name' => $name, 'value' => $value);
+        }
+
+    }
+
+    $data_to_export[] = array(
+        'group_id' => 'user',
+        'group_label' => __( 'User' ),
+        'item_id' => "user-{$user->ID}",
+        'data' => $user_data_to_export,
+    );
+
+    $done = true;
+
+    return array(
+        'data' => $data_to_export,
+        'done' => $done,
+    );
 }
\ No newline at end of file
