The delete_usermeta WordPress PHP action is used to perform a task after a user’s metadata has been deleted.
Usage
add_action('delete_usermeta', 'my_custom_function', 10, 2); function my_custom_function($user_id, $meta_key) { // your custom code here }
Parameters
- $user_id (int) – The user ID of the user whose metadata is being deleted.
- $meta_key (string) – The metadata key that is being deleted.
More information
See WordPress Developer Resources: delete_usermeta
Examples
Log user meta deletion
Log the deletion of user metadata to a file.
add_action('delete_usermeta', 'log_user_meta_deletion', 10, 2); function log_user_meta_deletion($user_id, $meta_key) { $log_message = "User ID: {$user_id}, Meta Key: {$meta_key} deleted."; error_log($log_message, 3, "/var/log/user_meta_deletion.log"); }
Send email notification
Send an email notification to the admin when specific user metadata is deleted.
add_action('delete_usermeta', 'send_email_on_meta_delete', 10, 2); function send_email_on_meta_delete($user_id, $meta_key) { if ($meta_key === 'special_meta_key') { $to = '[email protected]'; $subject = 'User Meta Deleted'; $message = "User ID: {$user_id} - Meta Key: {$meta_key} has been deleted."; wp_mail($to, $subject, $message); } }
Update related meta
Update related metadata when a certain meta key is deleted.
add_action('delete_usermeta', 'update_related_meta', 10, 2); function update_related_meta($user_id, $meta_key) { if ($meta_key === 'primary_meta_key') { delete_user_meta($user_id, 'related_meta_key'); } }
Delete user posts
Delete all user posts when a specific metadata is deleted.
add_action('delete_usermeta', 'delete_user_posts_on_meta_delete', 10, 2); function delete_user_posts_on_meta_delete($user_id, $meta_key) { if ($meta_key === 'delete_all_posts_meta') { $args = array( 'author' => $user_id, 'post_type' => 'post', 'posts_per_page' => -1 ); $user_posts = get_posts($args); foreach ($user_posts as $post) { wp_delete_post($post->ID, true); } } }
Add admin notice
Display an admin notice when a specific metadata is deleted.
add_action('delete_usermeta', 'display_admin_notice_on_meta_delete', 10, 2); function display_admin_notice_on_meta_delete($user_id, $meta_key) { if ($meta_key === 'important_meta_key') { add_action('admin_notices', 'display_notice_after_meta_delete'); } } function display_notice_after_meta_delete() { echo '<div class="notice notice-warning is-dismissible">'; echo '<p><strong>Important Meta Key</strong> has been deleted.</p>'; echo '</div>'; }