web-dev-qa-db-ja.com

返信時にコメント投稿者に通知する

ゲストのコメント投稿者と投稿者間のコミュニケーションを改善するために、返信を受け取ったときにコメントの投稿者に電子メールを送信するスクリプトをいじっています。

これまでのコードの外観は次のとおりです。

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

?>

それはうまくいきます、試してみてください。追加したいことが2つあります。メッセージの名前とメールアドレスを調整したいです。そのため、Blog名を送信者の名前として、カスタムEメールを送信者のメールとして設定する必要があります(たとえば、no-reply @ domain.com)。どうすればいいのですか?

1

あなたは送信者を実行するためにヘッダを使用する必要があると思います...デフォルトで送信者は[email protected]です。

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

...

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

編集しました...出典: http://codex.wordpress.org/Function_Reference/wp_mail

0
jose pacheco