Come cambiare il destinatario delle notifiche email per nuovi commenti?

3 mag 2016, 03:44:51
Visualizzazioni: 17.6K
Voti: 8

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?

1
Commenti

Ti è stata utile una delle risposte? Se sì, per favore considera di accettarne una.

Andy Macaulay-Brook Andy Macaulay-Brook
20 set 2016 15:42:59
Tutte le risposte alla domanda 5
0
11

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 );
19 mag 2016 16:57:08
1

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.
3 mag 2016 06:10:37
Commenti

Non modificare mai i file core. Le tue modifiche verranno sovrascritte con il prossimo aggiornamento di WP. I filtri sono ciò che serve per cambiare le cose.

Rick Hellewell Rick Hellewell
8 ott 2021 06:43:04
1
-1

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 );
12 apr 2018 23:47:21
Commenti

Non era questa la domanda.

wickywills wickywills
11 lug 2022 10:14:04
0
-1

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 );

28 ago 2020 15:19:09
1
-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.

3 mag 2018 09:00:26
Commenti

Adoro ricevere un voto negativo su una risposta di 2,5 anni fa senza un commento. Grazie a Peter Mortensen per la modifica

paulzag paulzag
29 ott 2020 05:10:48