关于子比主题评论后回复,收不到邮件问题

前段时间发现所用主题在不登陆情况下评论后,博主这边回复,留言人收不到邮件。因为我也没有这方面技术,只有一直在咨询相关的技术大佬。都先让我问文开发者这边,看看能不能解决。

关于这个问题我也问过社区,开发者好像说没打算开发这个功能。这件事就一直拖了很久,,,

但上次在登山亦有道博主的时候随口好奇就问了一下,没想到博主已经解决了该问题。还给我推荐了,他修改的代码文章。

一、邮件恢复更改

文章原文:折腾访客邮件回复

以下是他修改的代码,我仅做摘抄记录留档。将此代码放在主题根目录的functions.php即可。

//访客评论邮件回复
add_action('comment_post', 'comment_mail_notify', 99);
add_action('comment_unapproved_to_approved', 'comment_mail_notify', 99);
function comment_mail_notify($comment_id) {
    $comment = get_comment($comment_id);
    if ($comment->comment_approved != '1') return;//如果评论未通过审核,return
    $admin_email = get_bloginfo ('admin_email'); // $admin_email 可改为你指定的 e-mail.
    $comment_author_email = trim($comment->comment_author_email);
    $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
    $to = $parent_id ? trim(get_comment($parent_id)->comment_author_email) : '';
    $spam_confirmed = $comment->comment_approved;
    
    if (($parent_id != '') && ($spam_confirmed != 'spam') && ($to != $admin_email)) {
    /* 上面的if判断是决定是否发出邮件的关键:
    ($parent_id != '') && ($spam_confirmed != 'spam'): 评论是被回复的, 而且不是 spam 才可以发(必需!!)
    ($to != $admin_email) : 不给 admin发邮件(可选).
    ($comment_author_email == $admin_email) : 只有 admin 的回复才发邮件(可选).
    可根据个人需要修改上面的条件.
    */
    $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));//发件人 e-mail 地址,no-reply 可改为可用的 e-mail
    $to = trim(get_comment($parent_id)->comment_author_email);
    $subject = '您在 [' . get_option("blogname") . '] 的留言有了新的回复';//邮件主题
    $message = '您好!' . trim(get_comment($parent_id)->comment_author) . ',';//邮件内容
    $message .= '您于'. trim(get_comment($parent_id)->comment_date) .  ' ';
    $message .= '在《' . get_the_title($comment->comment_post_ID) . '》中发表评论:' . '</br>';
    $message .= '<div style="padding: 10px 15px; border-radius: 8px; background: rgba(141, 141, 141, 0.05); line-height: 1.7;">'  . nl2br(get_comment($parent_id)->comment_content) . '</div>';
    $message .= '</br>';
    
    $message .= '' . trim($comment->comment_author) . '';
    $message .= ' 于'. trim($comment->comment_date) . ' 给您的回复如下:</br>';
    $message .= '<div style="padding: 10px 15px; border-radius: 8px; background: rgba(141, 141, 141, 0.05); line-height: 1.7;">' . nl2br($comment->comment_content) . '</div>';
    $message .= '</br>';
    
    $message .= '您可以点击下方按钮查看回复内容</br>';
    $message .= '<a target="_blank" style="margin-top: 20px;padding:5px 20px" class="but jb-blue" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看回复</a>' . "</br>";
    $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
    $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
    //wp_mail发送邮件
    wp_mail( $to, $subject, $message, $headers );
    }
}

二、添加网址填写框

在路径/www/wwwroot/jingxin18.cn/wp-content/themes/zibll/template/comments.php找到comments.php文件,在文件的113后边输入以下代码即可。

//自己加的网址填写框
echo '<li class="line-form">';
echo '<input type="text" name="url" class="line-form-input" tabindex="3" value="' . esc_attr($comment_author_url) . '" placeholder="">';
echo '<div class="scale-placeholder">网址' . $o_t . '</div>';
echo '<div class="abs-right muted-color"><i class="fa fa-fw fa-sitemap"></i></div>';
echo '<i class="line-form-line"></i>';
echo '</li>';
关于子比主题评论后回复,收不到邮件问题

最后感谢登山亦有道博主,帮我解决了相关问题。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 等人在此发表了4条热情洋溢的评论
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

在 WordPress 上使用 Sticker Heo 增添互动时的乐趣吧 !

取消
昵称表情代码图片快捷回复
    • 晨岩的头像-二猫blog
      晨岩徽章-资深玩家-二猫blog等级-LV2-二猫blog Windows Edge 112.0.1722.58
      0
      • 二猫的头像-二猫blog
        二猫徽章-资深玩家-二猫blog等级-LV9-二猫blog作者 Windows Edge 112.0.1722.58
        0
    • 小熊的头像-二猫blog
      小熊 iPhone Safari 16.0
      0
      • 二猫的头像-二猫blog
        二猫徽章-资深玩家-二猫blog等级-LV9-二猫blog作者 Windows Edge 112.0.1722.34
        0