Using WordPress ‘comment_closed’ PHP action

The comment_closed WordPress PHP action fires when a comment is attempted on a post that has comments closed.

Usage

add_action('comment_closed', 'my_custom_function', 10, 1);

function my_custom_function($comment_post_id) {
    // Your custom code here
}

Parameters

  • $comment_post_id (int): The ID of the post where the comment was attempted.

More information

See WordPress Developer Resources: comment_closed

Examples

Display a message when comments are closed

Display a custom message when a user tries to comment on a post with comments closed.

add_action('comment_closed', 'display_custom_message', 10, 1);

function display_custom_message($comment_post_id) {
    echo 'Comments are closed for this post. Please come back later.';
}

Log comment attempts on closed posts

Log the details of comment attempts on closed posts for further analysis.

add_action('comment_closed', 'log_comment_attempt', 10, 1);

function log_comment_attempt($comment_post_id) {
    // Log the comment attempt
    error_log("Comment attempted on closed post ID: {$comment_post_id}");
}

Send an email notification for comment attempts on closed posts

Notify the site administrator when a comment is attempted on a closed post.

add_action('comment_closed', 'notify_admin_comment_attempt', 10, 1);

function notify_admin_comment_attempt($comment_post_id) {
    $admin_email = get_option('admin_email');
    $subject = "Comment attempted on closed post ID: {$comment_post_id}";
    $message = "A comment was attempted on the closed post with ID: {$comment_post_id}.";

    wp_mail($admin_email, $subject, $message);
}

Redirect users after a comment attempt on a closed post

Redirect users to a custom page after they attempt to comment on a closed post.

add_action('comment_closed', 'redirect_user_after_comment_attempt', 10, 1);

function redirect_user_after_comment_attempt($comment_post_id) {
    $redirect_url = 'https://example.com/custom-page';
    wp_redirect($redirect_url);
    exit;
}

Add a comment_closed meta key to the post

Add a meta key to the post when a comment is attempted, to track closed comment attempts.

add_action('comment_closed', 'add_comment_closed_meta', 10, 1);

function add_comment_closed_meta($comment_post_id) {
    add_post_meta($comment_post_id, 'comment_closed_attempt', 1);
}