it-swarm.com.de

So ändern Sie die E-Mail-Benachrichtigung für Kommentare

Wie können Sie den Benutzer ändern, der die Benachrichtigung per E-Mail für neue Kommentare und die Kommentarmoderation erhält?

WordPress sendet die Benachrichtigungen an den Admin-Benutzer. Mein Kunde ist der Herausgeber der Website. Ich möchte, dass die Kommentarbekanntmachungen an den Bearbeiter und nicht an den Administrator gesendet werden.

Wie machst du das?

3
user93385

Unter http://www.sourcexpress.com/customize-wordpress-comment-notification-emails/ wird in einem großartigen Artikel erklärt, wie man sich in zwei Filter einfügt.

Versuchen Sie Folgendes für einen Benutzer mit der ID 123, um Ihre Benachrichtigungen an einen bestimmten Benutzer und nicht an den Site-Administrator zu senden:

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

    // Return only the post author if the author can modify.
    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 );
3

Ich kenne keinen Haken, der nur den Empfänger einer Kommentarbenachrichtigung ändern könnte. Sie müssten wahrscheinlich eine Art Kernfunktion überschreiben, aber hier ist eine kleine Problemumgehung, die Sie verwenden könnten:

1. Deaktiviere die E-Mail-Funktion in den WordPress-Kommentareinstellungen ( es sei denn, du möchtest auch benachrichtigt werden )

2. Sende es manuell mit comment_post action hook, füge diese Funktion einfach zu functions.php hinzu


add_filter( 'comment_post', 'comment_notification' ); 

function comment_notification( $comment_ID, $comment_approved ) {

    // Send email only when it's not approved
    if( $comment_approved == 0 ) {

        $subject = 'subject here';
        $message = 'message here';

        wp_mail( '[email protected]' , $subject, $message );
    }
}

// Remove if statement if you want to recive email even if it doesn't require moderation

comment_post ist eine Aktion, die unmittelbar nach dem Einfügen eines Kommentars in die Datenbank ausgelöst wird.

2
N00b

Es gibt einen Filter zum Ändern des Texts der Kommentar-Moderations-E-Mail:

function change_comment_email( $body, $comment_id ) {
    $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;
}

add_filter( 'comment_moderation_text', 'change_comment_email', 20, 2 );
add_filter( 'comment_notification_text', 'change_comment_email', 20, 2 );
1
Ric Johnson

Für den Fall, dass jemand über diese Frage stolpert und das Hacken von Code in den anderen Antworten nicht mag, biete ich diese Alternative an, die ich weitaus flexibler finde.

Erstellen Sie eine E-Mail-Adresse für das Administratorkonto des Blogs. z.B. [email protected] unterscheidet sich von [email protected] und techn[email protected]

Option A. Leiten Sie site @ email sowohl an den Redakteur als auch an den technischen Administrator weiter. Ich erstelle die Site @ als Alias. Dies funktioniert, wenn Ihr Editor eine Kopie aller von der Site generierten automatischen E-Mails erhalten kann. Sie filtern nur irrelevante E-Mails heraus oder erfahren, was mit einer Website tatsächlich passiert. Dies ist gut für kleine Kunden.

Option B Richten Sie einen Mail-Filter für site @ ein, um E-Mails mit Kommentaren automatisch an den Editor und alle E-Mails an den technischen Administrator weiterzuleiten. Der technische Administrator kann dann filtern, um alle Kommentarmeldungen zu archivieren/löschen, sodass sie niemals in seinem Posteingang erscheinen. Diese erste Weiterleitung an den Editor @ kann auf dem Mailserver mit etwas wie procmail erfolgen. Alternativ können Sie dies auf Ihrem E-Mail-Client tun, wenn er rund um die Uhr verfügbar ist, oder Sie können sogar gmail/hotmail/etc verwenden und den Filter manuell erstellen.

0
paulzag