The delete_comment WordPress PHP action is used when a comment is about to be deleted from the database.
Usage
add_action('delete_comment', 'your_function_name', 10, 2); function your_function_name($comment_id, $comment) { // your custom code here }
Parameters
$comment_id
: string – The ID of the comment as a numeric string.$comment
: WP_Comment – The comment object to be deleted.
More information
See WordPress Developer Resources: delete_comment
Examples
Log comment deletion
Log the comment deletion to a custom log file.
function log_comment_deletion($comment_id, $comment) { $log_message = "Comment ID {$comment_id} was deleted.\n"; error_log($log_message, 3, "/var/www/html/wp-content/comment_deletion.log"); } add_action('delete_comment', 'log_comment_deletion', 10, 2);
Notify admin of comment deletion
Send an email to the admin when a comment is deleted.
function notify_admin_comment_deletion($comment_id, $comment) { $admin_email = get_option('admin_email'); $subject = "Comment ID {$comment_id} deleted"; $message = "The following comment was deleted:\n\n"; $message .= "Author: {$comment->comment_author}\n"; $message .= "Content: {$comment->comment_content}\n"; wp_mail($admin_email, $subject, $message); } add_action('delete_comment', 'notify_admin_comment_deletion', 10, 2);
Update comment count for author
Update the total number of comments for the author when a comment is deleted.
function update_author_comment_count($comment_id, $comment) { $user_id = $comment->user_id; if ($user_id) { $comment_count = get_user_meta($user_id, 'total_comments', true); $comment_count = max(0, $comment_count - 1); update_user_meta($user_id, 'total_comments', $comment_count); } } add_action('delete_comment', 'update_author_comment_count', 10, 2);
Delete user’s custom data associated with the comment
Delete custom data associated with the comment when the comment is deleted.
function delete_comment_custom_data($comment_id, $comment) { $meta_key = 'custom_data_key'; delete_comment_meta($comment_id, $meta_key); } add_action('delete_comment', 'delete_comment_custom_data', 10, 2);
Remove comment from custom cache
Remove the deleted comment from a custom cache.
function remove_comment_from_cache($comment_id, $comment) { $cache_key = 'custom_comment_cache'; $comment_cache = get_transient($cache_key); if ($comment_cache && isset($comment_cache[$comment_id])) { unset($comment_cache[$comment_id]); set_transient($cache_key, $comment_cache); } } add_action('delete_comment', 'remove_comment_from_cache', 10, 2);