WordPress通过代码实现评论回复进行邮件通知

我最近遇到了WordPress邮件发送的问题,在我印象中WordPress有评论回复是可以正常发送邮件的,经过我的排查发现twentytwentyfour主题,在文章评论页面没有如果有人回复我的评论,请通过电子邮件通知我这个功能,昨天翻阅了WordPress Developer Resources文档开始折腾这个功能,成功实现了

1. 编辑twentytwentyfour主题的 functions.php 文件

  1. 编辑到您当前使用的主题目录,通常位于 wp-content/themes/your-theme-name/
  2. 找到 functions.php 文件并使用文本编辑器打开它。

2. 添加代码

将代码粘贴到 functions.php 文件的末尾,确保不要覆盖任何现有的代码

// WordPress Comment Reply Notification
function wpdocs_notify_comment_reply( $comment_id ) {
    $comment = get_comment( $comment_id );
    $parent_comment = get_comment( $comment->comment_parent );

    // 只有当这是一个回复并且存在父级评论时才继续
    if ( $comment->comment_parent != 0 && $parent_comment ) {
        $parent_author_email = $parent_comment->comment_author_email;
        $parent_author_name  = $parent_comment->comment_author;
        $post_title           = get_the_title( $parent_comment->comment_post_ID );
        $post_link            = get_permalink( $parent_comment->comment_post_ID );
        $reply_author_name    = $comment->comment_author;
        $reply_content        = $comment->comment_content;
        $site_name            = get_bloginfo('name'); // 获取站点名称

        // 避免给自己回复发送通知
        if ( $parent_author_email != $comment->comment_author_email ) {
            $subject = sprintf( '[%s] 您的评论收到了新的回复 - %s', $site_name, $post_title );
            $message = sprintf(
                "您好 %s,\n\n" .
                "您在文章《%s》上的评论收到了新的回复。\n\n" .
                "回复人:%s\n" .
                "回复内容:\n%s\n\n" .
                "点击以下链接查看完整对话:\n%s#comment-%s\n\n" .
                "如果这封邮件不是由您回复的,请忽略。\n\n" .
                "感谢您的参与!\n\n" .
                "%s 团队",
                $parent_author_name,
                $post_title,
                $reply_author_name,
                $reply_content,
                $post_link,
                $comment->comment_parent,
                $site_name
            );

            wp_mail( $parent_author_email, $subject, $message );
        }
    }
}
add_action( 'comment_post', 'wpdocs_notify_comment_reply' );

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注