Tout savoir sur WordPress
Tutoriel WordPress

Valider automatiquement les commentaires d’un auteur ayant plusieurs validations à son actif

Cette astuce permet de valider automatiquement les commentaires d’un membre à partir d’un certains de commentaires postés.

Il existe dans WordPress la possibilité de faire en sorte qu’un auteur de commentaires qui a déjà eu une validation antérieure, voit ses futurs commentaires approuvés automatiquement.

Mais qu’en est-il si je désire le faire à partir de 10 commentaires validés ? Et bien il suffit de modifier “l’approuvé” qui est envoyé dans le hook pre_comment_approved.

Exemple avec 10 commentaires validés précédemment :
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]


add_filter( 'pre_comment_approved', 'baw_auto_approve_comment', 999, 2 );
function baw_auto_approve_comment( $approved, $commentdata ) {

    if( $approved ):
	global $wpdb;
	$nb = $wpdb->get_var( 
                  $wpdb->prepare( 
                        'SELECT count(comment_ID) FROM ' . $wpdb->comments . ' 
                         WHERE comment_author = %s 
                               AND comment_author_email = %s 
                               AND comment_approved = 1', 
                        $commentdata['comment_author'], 
                        $commentdata['comment_author_email'] 
                  ) 
              );
	$approved = $nb >= 10 ? 1 : 0; // Modifiez ce "10"
    endif;
    
    return $approved;
}

[/pastacode]

Si le commentaire en cours de vérification est approuvé, alors je vérifie dans la base de données que cet auteur (couple nom/email) a déjà à son actif au moins 10 commentaires validés.

Puis je retourne la valeur de $approved. Ce hook a la priorité 999, ce qui signifie qu’il sera lancé en dernier pour être sûr que ce script soit le dernier à valider ou non le commentaire.

Cet article a été mis à jour il y a 4642 jours - Il n'est peut être plus à jour !

Article écrit par Julio P.

Fondateur de SecuPress, l’extension de sécurité WordPress, Julio Potier est un Expert WordPress, un Formateur Expérimenté et un Consultant en Sécurité Web.

Il aime partager ses compétences et ses réflexions sur WordPress, donnant des conférences partout dans le monde.

13 Commentaires

  1. Bonjour Julio.

    C’est “futur” sans E.

    Sinon, c’est sympathique ton astuce – que je teste en ce moment sur mon blog.

    Cependant, peut-on créer une voir plusieurs exceptions pour que le message d’un administrateur soit automatiquement validé ?

    Thanks ;)

  2. Oui remplace :
    if( $approved ):
    par
    if( $approved && !current_user_can( ‘administrator’ ) ):
    Et voilà !

  3. @vincent : l’article linké n’est pas complet ? Il faut s’inscrire ou je ne sais quoi pour lire ? Rédibitoire, désolé.
    @chiite : de rien :)
    @smileyfacebook : de rien :)

  4. Salut Julio,

    c’est marrant, je suis tombé sur ton blog justement parce que l’article sur Discodog était incomplet !

    Je pense que en gros la technique de discodog (par recoupement) c’est de faire valider le premier commentaire, puis de spammer jusqu’a être en commenters list.

  5. Simple et efficace. Pas besoin d’installer un lourd plugin pour faire quelque chose de si anodin. Merci pour ce bout de code bien utile.

  6. Bonjour,

    Je ne comprends pas trop un point. Il faut que le commentaire soit approuvé avant que l’on vérifie si l’on a déjà 10 commentaires approuvés ?
    cf votre phrase : “Si le commentaire en cours de vérification est approuvé, alors je vérifie dans la base de données ”

    Je voudrais que par exemple si un utilisateur a déjà posté 10 commentaires au moins, cela valide automatiquement ses prochains commentaires.

    Il pourrait y avoir une option gérable uniquement par l’administrateur dans chaque profil utilisateur, ce serait plus pratique.

  7. Thanks for the code snipet as it got me 2 days to search out all over the search engines and now her I am. At last I found the solution to my problem. Hope for some more posts.

  8. merci pour cet astuce, j’avais utilisé un code pour approuver automatiquement les commentaires d’une catégorie spécifique mais aprés la derniére mise à jour 4.4 le code ne fonctionne plus, savez-vous comment approuver automatiquement les commentaires dans les article d’une catégorie spécifique