How can I limit the number of comments per registered user per day?

I found this code on WPSE:

global $current_user, $post;
$args = array( 'user_id' => $current_user->ID, 'post_id' => $post->ID );
$usercomment = get_comments( $args );
if ( 1 <= count( $usercomment ) ) {
    echo 'disabled';
} else {
    comment_form();
}

Note: It seems to limit the number of comments per post per user.

I want to limit the number of comments per registered user per day.

I would like to be able to change the amount of comments allowed per day in the code, please.


If someone could help me with the correct code it would be very much appreciated. Also where would I put this code in the comments.php file?

Thank you.

2 s
2

You could pull all of the comments by current user and loop over them to see how may where today or you can create a custom sql Query to select just the count of comments for the last 24 hours, something like this:

global $wpdb,$current_user;
$sql = $wpdb->prepare("
    SELECT count(*)
    FROM wp_comments 
    WHERE comment_author="%s"
    AND comment_date >= DATE_SUB(NOW(),INTERVAL 1 DAY);"
    ,$current_user);
$count = $wpdb->get_results($sql);

Leave a Comment