Erase Custom Profile Fields on Erasure Requests
Deletes the custom user fields you list when you run a personal data erasure request under Tools > Erase Personal Data, so they are not left behind.
Opens WPIDE on
Code
// User meta keys removed by an erasure request.
$wpide_erase_user_meta = array( 'phone', 'company', 'date_of_birth' );
add_filter( 'wp_privacy_personal_data_erasers', function ( $erasers ) use ( $wpide_erase_user_meta ) {
$erasers['wpide-user-meta'] = array(
'eraser_friendly_name' => 'Extra profile fields',
'callback' => function ( $email ) use ( $wpide_erase_user_meta ) {
$user = get_user_by( 'email', $email );
$removed = false;
if ( $user ) {
foreach ( $wpide_erase_user_meta as $key ) {
if ( metadata_exists( 'user', $user->ID, $key ) ) {
$removed = delete_user_meta( $user->ID, $key ) || $removed;
}
}
}
return array(
'items_removed' => $removed,
'items_retained' => false,
'messages' => array(),
'done' => true,
);
},
);
return $erasers;
} );
Notes
Only the listed keys are removed; the account itself is not deleted.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.