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.
13 Commentaires
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 ;)
Oui remplace :
if( $approved ):
par
if( $approved && !current_user_can( ‘administrator’ ) ):
Et voilà !
Il vaut mieux dans ce cas rajouter le champ URL unique pour éviter du spam du genre http://discodog.fr/top-commentators-jacking.html
Eh bien merci, tu me fais gagner des précieuses minutes là.
Tip top merci beaucoup !!!
@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 :)
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.
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.
Merci Tony !
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.
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.
Une astuce sympa, merci.
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