| | 3167 | |
| | 3168 | /** |
| | 3169 | * Registers the personal data exporter for users. |
| | 3170 | * |
| | 3171 | * @since 4.9.6 |
| | 3172 | * |
| | 3173 | * @param array $exporters An array of personal data exporters. |
| | 3174 | * @return array An array of personal data exporters. |
| | 3175 | */ |
| | 3176 | function wp_register_user_personal_data_exporter( $exporters ) { |
| | 3177 | $exporters[] = array( |
| | 3178 | 'exporter_friendly_name' => __( 'WordPress User' ), |
| | 3179 | 'callback' => 'wp_user_personal_data_exporter', |
| | 3180 | ); |
| | 3181 | |
| | 3182 | return $exporters; |
| | 3183 | } |
| | 3184 | |
| | 3185 | /** |
| | 3186 | * Finds and exports personal data associated with an email address from the user and user_meta table. |
| | 3187 | * |
| | 3188 | * @since 4.9.6 |
| | 3189 | * |
| | 3190 | * @param string $email_address The users email address. |
| | 3191 | * @param int $page |
| | 3192 | * @return array An array of personal data. |
| | 3193 | */ |
| | 3194 | function wp_user_personal_data_exporter( $email_address, $page = 1 ) { |
| | 3195 | $email_address = trim( strtolower( $email_address ) ); |
| | 3196 | |
| | 3197 | $data_to_export = array(); |
| | 3198 | |
| | 3199 | $user = get_user_by( 'email', $email_address ); |
| | 3200 | $user_meta = get_user_meta( $user->ID ); |
| | 3201 | |
| | 3202 | $user_prop_to_export = array( |
| | 3203 | 'ID' => __( 'User ID' ), |
| | 3204 | 'user_login' => __( 'User Login Name' ), |
| | 3205 | 'user_nicename' => __( 'User Nice Name' ), |
| | 3206 | 'user_email' => __( 'User Email' ), |
| | 3207 | 'user_url' => __( 'User URL' ), |
| | 3208 | 'user_registered' => __( 'User Registered At'), |
| | 3209 | 'user_status' => __( 'User Status'), |
| | 3210 | 'display_name' => __( 'User Display Name'), |
| | 3211 | 'nickname' => __( 'User Nickname' ), |
| | 3212 | 'first_name' => __( 'User First Name' ), |
| | 3213 | 'last_name' => __( 'User Last Name' ), |
| | 3214 | 'description' => __( 'User Description' ), |
| | 3215 | ); |
| | 3216 | |
| | 3217 | $user_data_to_export = array(); |
| | 3218 | |
| | 3219 | foreach ( $user_prop_to_export as $key => $name ) { |
| | 3220 | $value = ''; |
| | 3221 | |
| | 3222 | switch ( $key ) { |
| | 3223 | case 'ID': |
| | 3224 | case 'user_login': |
| | 3225 | case 'user_nicename': |
| | 3226 | case 'user_email': |
| | 3227 | case 'user_url': |
| | 3228 | case 'user_registered': |
| | 3229 | case 'display_name': |
| | 3230 | $value = $user->data->$key; |
| | 3231 | break; |
| | 3232 | case 'user_status': |
| | 3233 | if ( '0' == $user->data->user_status ) { |
| | 3234 | $value = __( 'Active' ); |
| | 3235 | } elseif ( '1' == $user->data->user_status ) { |
| | 3236 | $value = __( 'Inactive' ); |
| | 3237 | } else { |
| | 3238 | $value = $user->data->user_status; |
| | 3239 | } |
| | 3240 | break; |
| | 3241 | case 'nickname': |
| | 3242 | case 'first_name': |
| | 3243 | case 'last_name': |
| | 3244 | case 'description': |
| | 3245 | $value = $user_meta[ $key ][0]; |
| | 3246 | } |
| | 3247 | |
| | 3248 | if ( ! empty( $value ) ) { |
| | 3249 | $user_data_to_export[] = array( |
| | 3250 | 'name' => $name, |
| | 3251 | 'value' => $value, |
| | 3252 | ); |
| | 3253 | } |
| | 3254 | } |
| | 3255 | |
| | 3256 | $data_to_export[] = array( |
| | 3257 | 'group_id' => 'user', |
| | 3258 | 'group_label' => __( 'User' ), |
| | 3259 | 'item_id' => "user-{$user->ID}", |
| | 3260 | 'data' => $user_data_to_export, |
| | 3261 | ); |
| | 3262 | |
| | 3263 | $done = true; |
| | 3264 | |
| | 3265 | return array( |
| | 3266 | 'data' => $data_to_export, |
| | 3267 | 'done' => $done, |
| | 3268 | ); |
| | 3269 | } |