web-dev-qa-db-fra.com

Aviser l'auteur du commentaire lors de la réponse

Pour améliorer la communication entre les commentateurs invités et les auteurs, je bidouille un script qui envoie un courrier électronique à l'auteur d'un commentaire lorsqu'il reçoit une réponse.

Voici à quoi ressemble le code jusqu'à présent:

<?php
/* 
Plugin Name: Comment Reply Notifier
Plugin URI: http://wordpress.stackexchange.com/users/24875/christine-cooper
Version: 0.1
Author: Christine Cooper
Description: When someone replies to a comment, an email is sent to the writer of the replied comment.
Author URI: http://wordpress.stackexchange.com/users/24875/christine-cooper
*/

add_action('comment_post', 'comment');
function comment($comment_reply_id) 
{
    $comment = get_comment($comment_reply_id);
    if($comment->comment_parent != 0) 
    {
        $old_comment = get_comment($comment->comment_parent);
        if($old_comment->user_id == 0)
        {
            $email = $old_comment->comment_author_email;
            $name = $comment->comment_author;
            $content = $comment->comment_content;
            $post = get_post($comment->comment_post_ID);
            $title = $post->post_title;
            $link = get_permalink($comment->comment_post_ID);
            $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
            $subject = sprintf('Comment reply: "%2$s" at %1$s', $blogname, $title );
            $notify_message  = sprintf('Someone replied to a comment you left on: %s', $title ) . "\r\n";
            $notify_message .= sprintf( 'Reply by: %1$s ', $name ) . "\r\n";
            $notify_message .= 'Comment: ' . "\r\n" . $content . "\r\n\r\n";
            $notify_message .= 'You can reply to the comment here: ' . "\r\n";
            $notify_message .= $link . "#comments\r\n\r\n";
            $message_headers = "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
            wp_mail( $email, $subject, $notify_message, $message_headers );
        }
    } 
}

?>

Cela fonctionne bien, n'hésitez pas à l'essayer. Il y a deux choses que je veux ajouter. Je veux ajuster le nom et l'email du message. Je souhaite donc définir le nom du blog en tant que nom de l'expéditeur et un courrier électronique personnalisé en tant que courrier de l'expéditeur (par exemple, [email protected]). Comment fait-on ça?

1
Christine Cooper

Je suppose que vous devez utiliser l'en-tête pour effectuer l'expéditeur ... par défaut, l'expéditeur est [email protected]

$headers = 'From: My Name <[email protected]>' . "\r\n";

...

wp_mail( $email, $headers, $subject, $notify_message, $message_headers );

Edité ... source: http://codex.wordpress.org/Function_Reference/wp_mail

0
jose pacheco