普通视图

发现新文章,点击刷新页面。
昨天以前首页
  • ✇新锐博客
  • WordPress添加回复评论邮件通知莫忘
    前言 之前就想要弄这个功能了,但是主题不支持,今天果核更新了主题终于支持了 教程 将如下代码放到子主题的function.php 中即可 /** * 新评论回复邮件通知函数(带按钮,美化界面) */ function comment_mail_notify($comment_id) { // 获取评论对象 $comment = get_comment($comment_id); if (!$comment || $comment->comment_approved === 'spam') { return; // 如果评论不存在或标记为垃圾评论,直接返回 } // 获取父评论 ID $parent_id = $comment->comment_parent ? $comment->comment_parent : ''; if (empty($parent_id)) { return; // 如果没有父评论,直接返回 } // 获取父评论对象 $pa
     

WordPress添加回复评论邮件通知

作者 莫忘
2025年1月11日 00:27

前言

之前就想要弄这个功能了,但是主题不支持,今天果核更新了主题终于支持了

教程

将如下代码放到子主题的function.php 中即可

/**
 * 新评论回复邮件通知函数(带按钮,美化界面)
 */
function comment_mail_notify($comment_id) {
    // 获取评论对象
    $comment = get_comment($comment_id);
    if (!$comment || $comment->comment_approved === 'spam') {
        return; // 如果评论不存在或标记为垃圾评论,直接返回
    }

    // 获取父评论 ID
    $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
    if (empty($parent_id)) {
        return; // 如果没有父评论,直接返回
    }

    // 获取父评论对象
    $parent_comment = get_comment($parent_id);
    if (!$parent_comment || empty($parent_comment->comment_author_email)) {
        return; // 如果父评论不存在或邮箱为空,直接返回
    }

    // 获取收件人邮箱
    $to = trim($parent_comment->comment_author_email);

    // 构造邮件内容
    $wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME']));
    $subject  = '您在 [' . get_option("blogname") . '] 的留言有了回复';
    $comment_link = get_comment_link($comment_id);
    $message  = '
    <div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; padding: 20px; border: 1px solid #e0e0e0; border-radius: 8px; background-color: #f9f9f9;">
        <h2 style="color: #333; font-size: 24px; margin-bottom: 20px;">' . trim($parent_comment->comment_author) . ', 您好!</h2>
        <p style="color: #555; font-size: 16px; line-height: 1.6;">
            您曾在文章《' . get_the_title($comment->comment_post_ID) . '》中留言:
        </p>
        <blockquote style="margin: 20px 0; padding: 10px 20px; background-color: #fff; border-left: 4px solid #0073aa; color: #666; font-style: italic;">
            ' . trim($parent_comment->comment_content) . '
        </blockquote>
        <p style="color: #555; font-size: 16px; line-height: 1.6;">
            ' . trim($comment->comment_author) . ' 给您的回复:
        </p>
        <blockquote style="margin: 20px 0; padding: 10px 20px; background-color: #fff; border-left: 4px solid #0073aa; color: #666; font-style: italic;">
            ' . trim($comment->comment_content) . '
        </blockquote>
        <p style="color: #555; font-size: 16px; line-height: 1.6; text-align: center;">
            点击下方按钮查看完整回复内容:
        </p>
        <div style="text-align: center; margin: 20px 0;">
            <a href="' . $comment_link . '" style="display: inline-block; padding: 12px 24px; font-size: 16px; color: #fff; background-color: #0073aa; border-radius: 4px; text-decoration: none;">
                查看回复
            </a>
        </div>
        <p style="color: #555; font-size: 16px; line-height: 1.6;">
            感谢您对 ' . get_option('blogname') . ' 的支持!
        </p>
        <p style="color: #999; font-size: 14px; margin-top: 20px; text-align: center;">
            此邮件由系统自动发送,请勿直接回复。
        </p>
    </div>';

    // 设置邮件头
    $headers = [
        'From: "' . get_option('blogname') . '" <' . $wp_email . '>',
        'Content-Type: text/html; charset=' . get_option('blog_charset'),
    ];

    // 发送邮件
    wp_mail($to, $subject, $message, $headers);
}

// 挂载钩子
add_action('comment_post', 'comment_mail_notify', 5, 1);
add_action('wp_insert_comment', 'comment_mail_notify', 5, 1);
  • ✇新锐博客
  • WordPress添加评论邮箱通知莫忘
    前言 一直很想用评论邮件通知功能,但是一直都没有实现,今天突然有了些思路,于是就尝试一下。 截图 教程 首先下载PHPMailer邮件库,然后在function.php里添加如下代码: // 创建一个函数来发送邮件通知管理员 function send_comment_notification($comment_ID) { // 这是评论请求,执行评论邮件通知功能 // 检查是否是评论的 AJAX 请求 if (defined('DOING_AJAX') && isset($_POST['action']) && $_POST['action'] == 'add-comment') { return; // 如果是评论的 AJAX 请求,直接返回,不执行邮件发送 } // 引入PHPMailer库 require '/www/wwwroot/你的域名/PHPMailer/src/Exception.php';
     

WordPress添加评论邮箱通知

作者 莫忘
2024年4月23日 20:02

前言

一直很想用评论邮件通知功能,但是一直都没有实现,今天突然有了些思路,于是就尝试一下。

截图

图片[1]-新锐博客

教程

首先下载PHPMailer邮件库,然后在function.php里添加如下代码:

// 创建一个函数来发送邮件通知管理员
function send_comment_notification($comment_ID) {
        // 这是评论请求,执行评论邮件通知功能

        // 检查是否是评论的 AJAX 请求
        if (defined('DOING_AJAX') && isset($_POST['action']) && $_POST['action'] == 'add-comment') {
             return; // 如果是评论的 AJAX 请求,直接返回,不执行邮件发送
         }

        // 引入PHPMailer库
        require '/www/wwwroot/你的域名/PHPMailer/src/Exception.php';
        require '/www/wwwroot/你的域名/PHPMailer/src/PHPMailer.php';
        require '/www/wwwroot/你的域名/PHPMailer/src/SMTP.php';

        // 获取评论对象
        $comment = get_comment($comment_ID);

        // 获取文章对象
        $post = get_post($comment->comment_post_ID);

        // 设置管理员邮箱
        $admin_email = '收件人邮箱';

        // 创建邮件对象
        $mail = new PHPMailerPHPMailerPHPMailer;
        $mail->isSMTP();
        $mail->Host = '发件人邮箱服务器';
        $mail->SMTPAuth = true;
        $mail->Username = '发件人邮箱';
        $mail->Password = '邮箱密码';
        $mail->SMTPSecure = 'ssl';
        $mail->Port = 465;
        $mail->CharSet = 'UTF-8'; // 设置字符集为UTF-8
        $mail->setFrom('发件人邮箱', '邮箱名字');
        $mail->addAddress($admin_email);
        $mail->Subject = '有新的评论: ' . $post->post_title;
        $mail->Body = "姓名: " . $comment->comment_author . "n邮箱: " . $comment->comment_author_email . "n评论内容: " . $comment->comment_content . "nn文章链接: " . get_permalink($post);

        // 发送邮件
        if (!$mail->send()) {
            // 记录邮件发送失败状态到文件
            $log_message = date('Y-m-d H:i:s') . " - 邮件发送失败。错误信息: " . $mail->ErrorInfo . PHP_EOL;
            file_put_contents('/www/wwwroot/你的域名/PHPMailer/email_logs.txt', $log_message, FILE_APPEND);
        } else {
            // 记录邮件发送成功状态到文件
            $log_message = date('Y-m-d H:i:s') . " - 邮件已发送" . PHP_EOL;
            file_put_contents('/www/wwwroot/你的域名/PHPMailer/email_logs.txt', $log_message, FILE_APPEND);
        }
    }
// 钩子函数,当有新评论时调用send_comment_notification函数
add_action('wp_insert_comment', 'send_comment_notification');

最后在域名根目录创建一个email_logs.txt 用来记录发送记录,这样就不会影响系统对于评论成功与否的判断。

如果提示发送失败,可以尝试把ssl改成tls。

下载地址

PHPMailer
❌
❌