Come cambiare il destinatario delle notifiche email per nuovi commenti?
Come si modifica l'utente che riceve l'email di notifica per i nuovi commenti e la moderazione dei commenti?
WordPress invia le notifiche all'utente admin. Il mio cliente è l'editore del sito. Vorrei che le notifiche dei commenti vengano inviate all'utente editore e non all'admin.
Come si può fare?

C'è un ottimo articolo che spiega come agganciarsi a 2 filtri per questo su https://web.archive.org/web/20200216075253/http://www.sourcexpress.com/customize-wordpress-comment-notification-emails/
Per inviare le tue notifiche a un utente specifico e non all'amministratore del sito, prova questo per un utente con ID 123:
function se_comment_moderation_recipients( $emails, $comment_id ) {
$comment = get_comment( $comment_id );
$post = get_post( $comment->comment_post_ID );
$user = get_user_by( 'id', '123' );
// Restituisce solo l'autore del post se l'autore può modificare.
if ( user_can( $user->ID, 'edit_published_posts' ) && ! empty( $user->user_email ) ) {
$emails = array( $user->user_email );
}
return $emails;
}
add_filter( 'comment_moderation_recipients', 'se_comment_moderation_recipients', 11, 2 );
add_filter( 'comment_notification_recipients', 'se_comment_moderation_recipients', 11, 2 );

Non sono a conoscenza di alcun hook che possa modificare solo il destinatario della notifica dei commenti... Probabilmente dovresti sovrascrivere qualche funzione core, ma ecco una piccola soluzione alternativa che potresti usare:
1. Disabilita l'invio di email dalle impostazioni dei commenti di WordPress (a meno che tu non voglia ricevere comunque le notifiche)
2. Invia manualmente l'email usando l'hook di azione comment_post
. Aggiungi questa funzione al file functions.php
add_filter( 'comment_post', 'comment_notification' );
function comment_notification( $comment_ID, $comment_approved ) {
// Invia l'email solo quando il commento non è approvato
if( $comment_approved == 0 ) {
$subject = 'oggetto qui';
$message = 'messaggio qui';
wp_mail( 'email.del.redattore@qui.com' , $subject, $message );
}
}
// Rimuovi l'istruzione if se vuoi ricevere l'email anche quando non richiede moderazione
`comment_post` è un'azione attivata immediatamente dopo l'inserimento di un commento nel database.

Esiste un filtro per modificare il testo dell'email di moderazione dei commenti:
function change_comment_email( $body, $comment_id ) {
// Sostituisce "comment" con "review" nel testo dell'email
$body = preg_replace( "/(A new )comment/s", "$1review", $body );
$body = preg_replace( "/(Currently \d+ )comment/s", "$1review", $body );
$body = preg_replace( "/Comment:/", "Review:", $body );
return $body;
}
// Applica il filtro sia per la notifica di moderazione che per la notifica standard
add_filter( 'comment_moderation_text', 'change_comment_email', 20, 2 );
add_filter( 'comment_notification_text', 'change_comment_email', 20, 2 );

Se vuoi inviare questa email a più persone, utilizza il codice qui sotto nel file functions.php -
function se_comment_moderation_recipients( $emails, $comment_id ) {
$comment = get_comment( $comment_id );
$post = get_post( $comment->comment_post_ID );
$emails = array();
// $users = array(insieme di ID utente a cui vuoi inviare le email)
$users = array( 1, 16628, 15983 );
foreach($users as $uid){
$user = get_user_by( 'id', $uid );
// Restituisce le email degli utenti.
if ( !empty( $user->user_email ) ) {
$emails[] = $user->user_email;
}
}
$emails_list = array(implode(",",$emails));
return $emails_list;
}
add_filter( 'comment_moderation_recipients', 'se_comment_moderation_recipients', 11, 2 );
add_filter( 'comment_notification_recipients', 'se_comment_moderation_recipients', 11, 2 );

Un'alternativa più flessibile rispetto alla modifica del codice nelle altre risposte è:
Creare un indirizzo email dedicato per l'account amministratore del blog. Ad esempio, site@your-blog.tld diverso da editor@your-blog.tld e technical@your-blog.tld.
Opzione A: Inoltrare le email di site@ sia all'editor che all'amministratore tecnico. Creo site@ come alias. Questo funziona se il tuo editor è d'accordo nel ricevere una copia di tutte le email automatiche generate dal sito. Possono semplicemente filtrare le email irrilevanti o imparare cosa succede realmente con un sito. È una buona soluzione per clienti piccoli.
Opzione B: Configurare un filtro email per site@ che inoltra automaticamente le notifiche di commenti all'editor e tutte le email all'amministratore tecnico. L'amministratore tecnico può poi filtrare per archiviare/eliminare tutte le notifiche di commenti così che non appaiano mai nella sua casella di posta. Questo inoltro iniziale a editor@ può essere fatto sul mail server usando qualcosa come procmail. In alternativa puoi farlo sul tuo client email se è attivo 24/7 o puoi persino usare Gmail, Hotmail, ecc. e creare manualmente il filtro.
