Como posso limitar o número de comentários por usuário registrado por dia?

4

Eu encontrei este código no 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();
}

Observação: parece limitar o número de comentários por postagem por usuário.

Eu quero limitar o número de comentários por usuário registrado por dia.

Gostaria de poder alterar a quantidade de comentários permitidos por dia no código, por favor.

Se alguém pudesse me ajudar com o código correto, seria muito apreciado. Também onde eu colocaria esse código no arquivo comments.php?

Obrigado.

    
por Chad 03.08.2012 / 06:23

2 respostas

2

Você pode puxar todos os comentários feitos pelo usuário atual e fazer um loop sobre eles para ver como é possível hoje ou criar uma consulta sql personalizada para selecionar apenas a contagem de comentários das últimas 24 horas, algo assim:

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);
    
por Bainternet 03.08.2012 / 18:30
1

Aqui está a versão de trabalho, eu me referi a técnica por @Bainternet para fazê-lo. Apenas substitua <?php comment_form(); ?> por esse código

<?php 
    global $wpdb,$current_user;
    $limit = 5; //this is limit per day per user
    $comment_count = $wpdb->get_var( $wpdb->prepare("
        SELECT count(*)
        FROM wp_comments 
        WHERE comment_author = '%s'
        AND comment_date >= DATE_SUB(NOW(),INTERVAL 1 DAY);"
        ,$current_user->user_login) );

    if($comment_count < $limit) {
        comment_form();
    }   
    else {
        echo 'exceeded comments limit - '.$limit;
    }
?>

- Testado no Wordpress 3.4.1 com o tema TwentyTen instalado em _

Nota -

  
  • Simplesmente oculta o formulário de comentários de usuários com mais de cinco comentários para esse dia Regardless of comment status
  •   
  • Isso mostrará o formulário de comentários para usuários não registrados, a menos que o desativemos de - Discussion Settings
  •   
    
por amit 04.08.2012 / 00:56