Approuver le crochet de commentaire?

8

Je cherche à envoyer des e-mails aux abonnés lorsqu'un commentaire a été approuvé.

Les deux actions du Codex sont:

1.

add_action('comment_post', 'callback', $priority, $accepted_args);

Où sont les arguments comment_IDet approval status(0 ou 1).

2.

add_action('edit_comment', 'callback', $priority, $accepted_args);

Avec argument comment_ID

Par défaut, les commentaires ne sont pas approuvés lorsqu'ils sont publiés, je pense donc que je les modifierais lorsque je les approuverais, mais ce n'est pas clair dans le Codex. Quelle option dois-je utiliser lorsque j'approuve un commentaire?

AlxVallejo
la source

Réponses:

14

Tout comme les publications, un commentaire peut avoir un tableau de différents statuts, donc au lieu de nommer un hook avec chaque statut, ils ont des hooks de transition, qui vous indiquent quel statut il avait avant et quel est le nouveau statut. Dans votre cas, cela pourrait faire l'affaire:

add_action('transition_comment_status', 'my_approve_comment_callback', 10, 3);
function my_approve_comment_callback($new_status, $old_status, $comment) {
    if($old_status != $new_status) {
        if($new_status == 'approved') {
            // Your code here
        }
    }
}

Tiens nous au courant de comment ça se passe?

Tomas Buteler
la source
La balise ne serait-elle pas comment_ (ancien statut) _à_ (nouveau statut), également trouvé dans le Codex?
AlxVallejo
2
Peut-être aussi, mais cela implique que vous connaissez l'ancien statut. Vous pouvez approuver un commentaire marqué comme spam ou approuver un commentaire non approuvé, vous devrez donc utiliser deux crochets pour déclencher votre fonction. Je dirais que vous allez avec la transition, car cela rend votre code plus facile à maintenir.
Tomas Buteler
testé avec une wp_mail();fonction simple , mais n'a pas reçu le message de test. ça marche pour vous? J'utilise wp 3.5.1
Attila
@ user9909 vient de le tester sous 3.5.1 et cela fonctionne. Commencez avec un code plus simple (error_log () dans mon cas) et déboguez à partir de là, peut-être? L'utilisation de wp_mail () signifie des endroits supplémentaires où les choses peuvent mal tourner, y compris beaucoup qui n'ont rien à voir avec WP.
Tomas Buteler
1
Utilisez le crochet wp_insert_comment pour intercepter les commentaires qui sont automatiquement approuvés à la volée.
Joseph Persie