web-dev-qa-db-fra.com

Empêcher Wordpress d'envoyer des emails de modération

Cette question a été initialement posée à stackoverflow: https://stackoverflow.com/questions/11435952/stop-wordpress-from-sending-out-moderation-emails mais après un conseil de @MaxGherkins, je poste ici une version modifiée également pour vous aider.

J'ai des problèmes avec mon installation wordpress à envoyer des courriels à l'administrateur du site à chaque fois un commentaire doit être modéré.
Cela s’applique également aux commentaires de spam qui ont pour résultat que l’administrateur du site reçoit beaucoup de courriers indésirables dans sa boîte de réception.

Chaque fois que je recherche ce problème dans Google, je me retrouve avec la réponse "Allez simplement dans Paramètres -> Discussion et décochez la case" Un commentaire est réservé à la modération "" mais malheureusement, cela ne m'aide pas.

Donc, voici mes paramètres (certains d'entre eux peuvent être sans importance):

  1. J'utilise wordpress 'construit dans le système de commentaires. Pas de commentaires ou commentaires facebook.
  2. J'ai installé le plugin Akismet. J'ai essayé de désactiver le plugin, mais je reçois toujours les emails.
  3. Les options "Quiconque publie un commentaire" et "Un commentaire réservé pour modération" ne sont pas cochées sous "Paramètres" -> "Discussion" -> "M'envoyer un message électronique chaque fois" sur les sites.
  4. Vous n'avez pas besoin d'être connecté pour écrire un commentaire
  5. L'installation WP est à l'origine une installation Wordpress MU, mais j'ai mis à niveau vers la version 3.x, de sorte qu'elle est maintenant intégrée à l'installation Wordpress standard. L'installation exécute de nombreux blogs avec différents noms de domaine et le problème se produit sur tous les blogs autant que je sache.
  6. La plupart des blogs utilisent le "Yashfa BRANDED!" thème
  7. Quelques informations de la base de données:

    Tous les blogs sont dans la même base de données, avec le préfixe wp_X_

    Voici quelques résultats de blogs aléatoires:

    mysql> SELECT * FROM wp_1_options WHERE option_name LIKE "%notify";
    +-----------+---------+-------------------+--------------+----------+
    | option_id | blog_id | option_name       | option_value | autoload |
    +-----------+---------+-------------------+--------------+----------+
    |        10 |       0 | comments_notify   |              | yes      | 
    |        32 |       0 | moderation_notify |              | yes      | 
    +-----------+---------+-------------------+--------------+----------+
    2 rows in set (0.01 sec)
    
    mysql> SELECT * FROM wp_50_options WHERE option_name LIKE "%notify";
    +-----------+---------+-------------------+--------------+----------+
    | option_id | blog_id | option_name       | option_value | autoload |
    +-----------+---------+-------------------+--------------+----------+
    |        11 |       0 | comments_notify   |              | yes      | 
    |        31 |       0 | moderation_notify |              | yes      | 
    +-----------+---------+-------------------+--------------+----------+
    2 rows in set (0.00 sec)
    
    mysql> SELECT * FROM wp_100_options WHERE option_name LIKE "%notify";
    +-----------+---------+-------------------+--------------+----------+
    | option_id | blog_id | option_name       | option_value | autoload |
    +-----------+---------+-------------------+--------------+----------+
    |        10 |       0 | comments_notify   |              | yes      | 
    |        30 |       0 | moderation_notify |              | yes      | 
    +-----------+---------+-------------------+--------------+----------+
    2 rows in set (0.00 sec)
    

L'email de modération ressemble à ceci:


Subject: [SITENAME] Veuillez modérer: "Testez les commentaires de spam"


Corps:

A new comment on the post 78 "Test spam comments" is waiting for your approval

http://url/test-spam-comments/

Author : djqw21208ryfg23 (IP: XXX.XXX.XXX.XXX , XXX.XXX.XXX.XXX)  
E-mail :     [email protected]  
URL    : http://feg239r239f9fg7329rfg322379fg23f3  
Whois  : http://ws.arin.net/cgi-bin/whois.pl?queryinput=XXX.XXX.XXX.XXX


Comment:  
ugly spam comment goes here...


Approve it: http://url/wp-admin/comment.php?action=mac&c=XXXXX  
Delete it: http://url/wp-admin/comment.php?action=cdc&c=XXXXX  
Spam it: http://url/wp-admin/comment.php?action=cdc&dt=spam&c=XXXXX  
Currently 0 comments are waiting for approval.   

Please visit the moderation panel:
http://url/wp-admin/moderation.php

Pourquoi est-ce que je continue à recevoir ces courriels alors que j'ai désactivé les paramètres de messagerie sous "Paramètres" -> "Discussion" et que cela a l'air juste dans la base de données?

J'ai testé avec le blog qui appartient aux tables wp_1_ *.

3
mario

Je ne peux pas expliquer pourquoi cela se produit, mais je peux vous donner une solution rapide pour le faire taire.

La fonction responsable est wp_notify_moderator , qui est une fonction pluggable . Vous pouvez copier le contenu de la fonction dans votre propre plugin et le modifier en return true dans le cas d'un e-mail de modération de commentaire.

après la ligne:

$comment = get_comment($comment_id);

ajouter:

if( empty( $comment->comment_type ) ) return true;

Ce n'est peut-être pas une solution à long terme, mais cela laissera les boîtes de réception en attente jusqu'à ce qu'elles soient triées autrement.

1
Milo