Using WordPress ‘deleted_{$meta_type}_meta’ PHP action

The deleted_{$meta_type}_meta WordPress PHP action fires immediately after deleting metadata of a specific type. The dynamic portion of the hook name, $meta_type, refers to the meta object type (post, comment, term, user, or any other type with an associated meta table).

Usage

add_action('deleted_{$meta_type}_meta', 'your_custom_function', 10, 4);

function your_custom_function($meta_ids, $object_id, $meta_key, $_meta_value) {
    // your custom code here
}

Parameters

  • $meta_ids: string[] – An array of metadata entry IDs to delete.
  • $object_id: int – ID of the object metadata is for.
  • $meta_key: string – Metadata key.
  • $_meta_value: mixed – Metadata value.

More information

See WordPress Developer Resources: deleted_{$meta_type}_meta

Examples

Log deleted post metadata

Log the deleted post metadata to a custom log file.

add_action('deleted_post_meta', 'log_deleted_post_meta', 10, 4);

function log_deleted_post_meta($meta_ids, $object_id, $meta_key, $_meta_value) {
    // Log the deleted post meta information
    error_log("Deleted post meta (ID: {$object_id}, Key: {$meta_key}, Value: {$_meta_value})");
}

Update comment count when deleting a specific meta key

Update the comment count for a post when a specific comment meta key is deleted.

add_action('deleted_comment_meta', 'update_comment_count_on_meta_delete', 10, 4);

function update_comment_count_on_meta_delete($meta_ids, $object_id, $meta_key, $_meta_value) {
    if ($meta_key === 'my_custom_key') {
        $comment = get_comment($object_id);
        $post_id = $comment->comment_post_ID;
        wp_update_comment_count($post_id);
    }
}

Clear user cache when user metadata is deleted

Clear user cache when any user metadata is deleted.

add_action('deleted_user_meta', 'clear_user_cache_on_meta_delete', 10, 4);

function clear_user_cache_on_meta_delete($meta_ids, $object_id, $meta_key, $_meta_value) {
    wp_cache_delete($object_id, 'users');
}

Delete term thumbnail when term metadata is deleted

Remove term thumbnail when term metadata is deleted.

add_action('deleted_term_meta', 'remove_term_thumbnail_on_meta_delete', 10, 4);

function remove_term_thumbnail_on_meta_delete($meta_ids, $object_id, $meta_key, $_meta_value) {
    if ($meta_key === 'thumbnail_id') {
        wp_delete_attachment($_meta_value, true);
    }
}

Send notification when custom metadata is deleted

Send a notification email to the admin when a specific custom metadata is deleted.

add_action('deleted_post_meta', 'send_notification_on_custom_meta_delete', 10, 4);

function send_notification_on_custom_meta_delete($meta_ids, $object_id, $meta_key, $_meta_value) {
    if ($meta_key === 'my_custom_metadata') {
        $admin_email = get_option('admin_email');
        wp_mail($admin_email, 'Custom Metadata Deleted', "Custom metadata (ID: {$object_id}, Key: {$meta_key}, Value: {$_meta_value}) has beendeleted.");
    }
}

Log deleted post metadata

Log deleted post metadata to a custom log file.

add_action('deleted_post_meta', 'log_deleted_postmeta', 10, 1);

function log_deleted_postmeta($meta_id) {
  // Log the deleted post metadata ID
  error_log("Deleted post metadata ID: " . $meta_id);
}

Clear cache after deleting comment metadata

Clear a custom cache when comment metadata is deleted.

add_action('deleted_comment_meta', 'clear_commentmeta_cache', 10, 1);

function clear_commentmeta_cache($meta_id) {
  // Clear the custom cache
  your_cache_clear_function();
}

Notify admin when term metadata is deleted

Send an email notification to the admin when term metadata is deleted.

add_action('deleted_term_meta', 'notify_admin_on_termmeta_deletion', 10, 1);

function notify_admin_on_termmeta_deletion($meta_id) {
  // Send an email notification to the admin
  wp_mail(get_option('admin_email'), 'Term Metadata Deleted', 'Term metadata with ID ' . $meta_id . ' has been deleted.');
}

Update user activity when user metadata is deleted

Update user activity records when user metadata is deleted.

add_action('deleted_user_meta', 'update_user_activity_on_usermeta_deletion', 10, 1);

function update_user_activity_on_usermeta_deletion($meta_id) {
  // Update the user activity records
  your_update_user_activity_function($meta_id);
}

Perform custom action after deleting post metadata

Perform a custom action after post metadata is deleted.

add_action('deleted_post_meta', 'perform_custom_action_on_postmeta_deletion', 10, 1);

function perform_custom_action_on_postmeta_deletion($meta_id) {
  // Perform your custom action here
}