The deleted_usermeta WordPress PHP action is triggered after a user’s metadata is deleted from the database.
Usage
add_action('deleted_usermeta', 'your_custom_function');
function your_custom_function() {
// your custom code here
}
Parameters
- No parameters
More information
See WordPress Developer Resources: deleted_usermeta
Examples
Logging user metadata deletion
Log user metadata deletion in a custom log file.
add_action('deleted_usermeta', 'log_usermeta_deletion');
function log_usermeta_deletion($meta_ids) {
// Get the usermeta data from meta_ids
$usermeta_data = get_metadata_by_mid('user', $meta_ids[0]);
// Prepare log message
$log_message = sprintf(
'User ID %d - Meta Key "%s" has been deleted.',
$usermeta_data->user_id,
$usermeta_data->meta_key
);
// Log the message
error_log($log_message);
}
Send notification after specific metadata is deleted
Send an email notification to the admin when a user’s specific metadata is deleted.
add_action('deleted_usermeta', 'notify_admin_on_meta_deletion', 10, 2);
function notify_admin_on_meta_deletion($meta_ids, $user_id) {
$deleted_key = 'special_user_meta_key';
foreach ($meta_ids as $meta_id) {
$usermeta_data = get_metadata_by_mid('user', $meta_id);
if ($usermeta_data->meta_key === $deleted_key) {
$admin_email = get_option('admin_email');
$subject = 'User Meta Deleted';
$message = "The '{$deleted_key}' user meta has been deleted for user ID {$user_id}.";
wp_mail($admin_email, $subject, $message);
break;
}
}
}
Update user role when specific metadata is deleted
Change the user role when a specific metadata is deleted.
add_action('deleted_usermeta', 'update_user_role_on_meta_deletion', 10, 2);
function update_user_role_on_meta_deletion($meta_ids, $user_id) {
$deleted_key = 'change_user_role_meta';
foreach ($meta_ids as $meta_id) {
$usermeta_data = get_metadata_by_mid('user', $meta_id);
if ($usermeta_data->meta_key === $deleted_key) {
$user = get_userdata($user_id);
$user->set_role('new_role_name');
break;
}
}
}
Delete related metadata when a specific metadata is deleted
Delete related user metadata when a specific metadata is deleted.
add_action('deleted_usermeta', 'delete_related_user_meta', 10, 2);
function delete_related_user_meta($meta_ids, $user_id) {
$deleted_key = 'primary_user_meta_key';
$related_key = 'related_user_meta_key';
foreach ($meta_ids as $meta_id) {
$usermeta_data = get_metadata_by_mid('user', $meta_id);
if ($usermeta_data->meta_key === $deleted_key) {
delete_user_meta($user_id, $related_key);
break;
}
}
}
Perform cleanup after user metadata is deleted
Clean up data in a custom table when a specific user metadata is deleted.
add_action('deleted_usermeta', 'cleanup_custom_table_on_meta_deletion', 10, 2);
function cleanup_custom_table_on_meta_deletion($meta_ids, $user_id) {
global $wpdb;
$deleted_key = 'cleanup_related_meta_key';
$custom_table_name = $wpdb->prefix . 'custom_table_name';
foreach ($meta_ids as $meta_id) {
$usermeta_data = get_metadata_by_mid('user', $meta_id);
if ($usermeta_data->meta_key === $deleted_key) {
$wpdb->delete($custom_table_name, array('user_id' => $user_id));
break;
}
}
}