Make WordPress Core


Ignore:
Timestamp:
05/01/2018 01:58:02 PM (8 years ago)
Author:
azaozz
Message:

Privacy: add user information to the personal data export file.

Props TZ-Media, desrosj.
See #43547.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/user.php

    r43014 r43055  
    28272827
    28282828/**
     2829 * Registers the personal data exporter for users.
     2830 *
     2831 * @since 4.9.6
     2832 *
     2833 * @param array $exporters  An array of personal data exporters.
     2834 * @return array An array of personal data exporters.
     2835 */
     2836function wp_register_user_personal_data_exporter( $exporters ) {
     2837        $exporters[] = array(
     2838                'exporter_friendly_name' => __( 'WordPress User' ),
     2839                'callback'               => 'wp_user_personal_data_exporter',
     2840        );
     2841
     2842        return $exporters;
     2843}
     2844
     2845/**
     2846 * Finds and exports personal data associated with an email address from the user and user_meta table.
     2847 *
     2848 * @since 4.9.6
     2849 *
     2850 * @param string $email_address  The users email address.
     2851 * @return array An array of personal data.
     2852 */
     2853function wp_user_personal_data_exporter( $email_address ) {
     2854        $email_address = trim( $email_address );
     2855
     2856        $data_to_export = array();
     2857
     2858        $user = get_user_by( 'email', $email_address );
     2859
     2860        if ( ! $user ) {
     2861                return array(
     2862                        'data' => array(),
     2863                        'done' => true,
     2864                );
     2865        }
     2866
     2867        $user_meta = get_user_meta( $user->ID );
     2868
     2869        $user_prop_to_export = array(
     2870                'ID'              => __( 'User ID' ),
     2871                'user_login'      => __( 'User Login Name' ),
     2872                'user_nicename'   => __( 'User Nice Name' ),
     2873                'user_email'      => __( 'User Email' ),
     2874                'user_url'        => __( 'User URL' ),
     2875                'user_registered' => __( 'User Registration Date' ),
     2876                'display_name'    => __( 'User Display Name' ),
     2877                'nickname'        => __( 'User Nickname' ),
     2878                'first_name'      => __( 'User First Name' ),
     2879                'last_name'       => __( 'User Last Name' ),
     2880                'description'     => __( 'User Description' ),
     2881        );
     2882
     2883        $user_data_to_export = array();
     2884
     2885        foreach ( $user_prop_to_export as $key => $name ) {
     2886                $value = '';
     2887
     2888                switch ( $key ) {
     2889                        case 'ID':
     2890                        case 'user_login':
     2891                        case 'user_nicename':
     2892                        case 'user_email':
     2893                        case 'user_url':
     2894                        case 'user_registered':
     2895                        case 'display_name':
     2896                                $value = $user->data->$key;
     2897                                break;
     2898                        case 'nickname':
     2899                        case 'first_name':
     2900                        case 'last_name':
     2901                        case 'description':
     2902                                $value = $user_meta[ $key ][0];
     2903                                break;
     2904                }
     2905
     2906                if ( ! empty( $value ) ) {
     2907                        $user_data_to_export[] = array(
     2908                                'name'  => $name,
     2909                                'value' => $value,
     2910                        );
     2911                }
     2912        }
     2913
     2914        $data_to_export[] = array(
     2915                'group_id'    => 'user',
     2916                'group_label' => __( 'User' ),
     2917                'item_id'     => "user-{$user->ID}",
     2918                'data'        => $user_data_to_export,
     2919        );
     2920
     2921        return array(
     2922                'data' => $data_to_export,
     2923                'done' => true,
     2924        );
     2925}
     2926
     2927/**
    28292928 * Update log when privacy request is confirmed.
    28302929 *
Note: See TracChangeset for help on using the changeset viewer.