Last active
January 29, 2017 10:58
-
-
Save ZE3kr/8c51a6349462935cefd2e636e96e93f8 to your computer and use it in GitHub Desktop.
Add Reply Notify via Email on WordPress, no configuration is needed. 中文介绍:https://ze3kr.com/2016/08/back-to-wordpress-builtin-comment-system/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function tlo_comment_mail_notify($comment_id) { | |
global $comment_author; | |
$comment = get_comment($comment_id); | |
$parent_id = $comment->comment_parent ? $comment->comment_parent : ''; | |
$spam_confirmed = $comment->comment_approved; | |
$from = $comment->comment_author_email; | |
$to = get_comment($parent_id)->comment_author_email; | |
if (($parent_id != '') && ($spam_confirmed != 'spam') && $from != $to && $to != get_bloginfo('admin_email') ) { | |
$blog_name = get_option('blogname'); | |
$blog_url = site_url(); | |
$post_url = get_permalink( $comment->comment_post_ID ); | |
$comment_author = $comment->comment_author; | |
$subject = 'Re: '.html_entity_decode(get_the_title($comment->comment_post_ID)); | |
$headers[] = 'Reply-To: '.$comment_author.' <'.$comment->comment_author_email.'>'; | |
$comment_parent = get_comment($parent_id); | |
$comment_parent_date = tlo_get_comment_date( $comment_parent ); | |
$comment_parent_time = tlo_get_comment_time( $comment_parent ); | |
$message = <<<HTML | |
<!DOCTYPE html> | |
<html lang="zh"> | |
<head> | |
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> | |
<title>$blog_name</title> | |
</head> | |
<body> | |
<style type="text/css"> | |
img { | |
max-width: 100%; height: auto; | |
} | |
</style> | |
<div class="content"> | |
<div> | |
<p>$comment->comment_content</p> | |
</div> | |
</div> | |
<div class="footer" style="margin-top: 10px"> | |
<p style="color: #777; font-size: small"> | |
— | |
<br> | |
Reply to this email to communicate with replier directly, or <a href="$post_url#comment-$comment_id">view it on $blog_name</a>. | |
<br> | |
You're receiving this email because of your comment got replied. | |
</p> | |
</div> | |
<blockquote type="cite"> | |
<div>On {$comment_parent_date}, {$comment_parent_time},$comment_parent->comment_author <<a href="mailto: $comment_parent->comment_author_email">$comment_parent->comment_author_email</a>> wrote:</div> | |
<br> | |
<div class="content"> | |
<div> | |
<p>$comment_parent->comment_content</p> | |
</div> | |
</div> | |
</blockquote> | |
</body> | |
</html> | |
HTML; | |
add_filter( 'wp_mail_content_type', 'tlo_mail_content_type' ); | |
add_filter( 'wp_mail_from_name', 'tlo_mail_from_name' ); | |
wp_mail( $to, $subject, $message, $headers ); | |
} | |
} | |
add_action('tlo_comment_post_async', 'tlo_comment_mail_notify'); | |
function tlo_comment_mail_notify_async($comment_id) { | |
wp_schedule_single_event( time(), 'tlo_comment_post_async', [$comment_id] ); | |
} | |
add_action('comment_post', 'tlo_comment_mail_notify_async'); | |
// add_action('comment_post', 'tlo_comment_mail_notify'); | |
function tlo_mail_content_type() { | |
return 'text/html'; | |
} | |
function tlo_mail_from_name() { | |
global $comment_author; | |
return $comment_author; | |
} | |
function tlo_get_comment_time( $comment ) { | |
$date = mysql2date(get_option('time_format'), $comment->comment_date, true); | |
return apply_filters( 'tlo_get_comment_time', $date, $comment ); | |
} | |
function tlo_get_comment_date( $comment ) { | |
$date = mysql2date(get_option('date_format'), $comment->comment_date); | |
return apply_filters( 'tlo_get_comment_date', $date, $comment ); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @package Reply Notify | |
* @version 0.1.1 | |
*/ | |
/* | |
Plugin Name: Reply Notify | |
Description: Add Reply Notify via Email. | |
Author: ZE3kr | |
Version: 0.1.1 | |
Author URI: https://ze3kr.com/ | |
*/ | |
$tlo_reply_path = dirname(__FILE__) . '/en.php'; // Change Language Code, now support "en", "zh". | |
if( file_exists( $tlo_reply_path ) ){ | |
require_once( $tlo_reply_path ); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function tlo_comment_mail_notify($comment_id) { | |
global $comment_author; | |
$comment = get_comment($comment_id); | |
$parent_id = $comment->comment_parent ? $comment->comment_parent : ''; | |
$spam_confirmed = $comment->comment_approved; | |
$from = $comment->comment_author_email; | |
$to = get_comment($parent_id)->comment_author_email; | |
if (($parent_id != '') && ($spam_confirmed != 'spam') && $from != $to && $to != get_bloginfo('admin_email') ) { | |
$blog_name = get_option('blogname'); | |
$blog_url = site_url(); | |
$post_url = get_permalink( $comment->comment_post_ID ); | |
$comment_author = $comment->comment_author; | |
$subject = 'Re: '.html_entity_decode(get_the_title($comment->comment_post_ID)); | |
$headers[] = 'Reply-To: '.$comment_author.' <'.$comment->comment_author_email.'>'; | |
$comment_parent = get_comment($parent_id); | |
$comment_parent_date = tlo_get_comment_date( $comment_parent ); | |
$comment_parent_time = tlo_get_comment_time( $comment_parent ); | |
$message = <<<HTML | |
<!DOCTYPE html> | |
<html lang="zh"> | |
<head> | |
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> | |
<title>$blog_name</title> | |
</head> | |
<body> | |
<style type="text/css"> | |
img { | |
max-width: 100%; height: auto; | |
} | |
</style> | |
<div class="content"> | |
<div> | |
<p>$comment->comment_content</p> | |
</div> | |
</div> | |
<div class="footer" style="margin-top: 10px"> | |
<p style="color: #777; font-size: small"> | |
— | |
<br> | |
直接回复此邮件可单独与回复者交流,或者<a href="$post_url#comment-$comment_id">在 $blog_name 上查看</a>。 | |
<br> | |
你收到这封邮件是因为你在 $blog_name 上的评论得到了回复。 | |
</p> | |
</div> | |
<blockquote type="cite"> | |
<div>在 {$comment_parent_date},{$comment_parent_time},$comment_parent->comment_author <<a href="mailto: $comment_parent->comment_author_email">$comment_parent->comment_author_email</a>> 写到:</div> | |
<br> | |
<div class="content"> | |
<div> | |
<p>$comment_parent->comment_content</p> | |
</div> | |
</div> | |
</blockquote> | |
</body> | |
</html> | |
HTML; | |
add_filter( 'wp_mail_content_type', 'tlo_mail_content_type' ); | |
add_filter( 'wp_mail_from_name', 'tlo_mail_from_name' ); | |
wp_mail( $to, $subject, $message, $headers ); | |
} | |
} | |
add_action('tlo_comment_post_async', 'tlo_comment_mail_notify'); | |
function tlo_comment_mail_notify_async($comment_id) { | |
wp_schedule_single_event( time(), 'tlo_comment_post_async', [$comment_id] ); | |
} | |
add_action('comment_post', 'tlo_comment_mail_notify_async'); | |
// add_action('comment_post', 'tlo_comment_mail_notify'); | |
function tlo_mail_content_type() { | |
return 'text/html'; | |
} | |
function tlo_mail_from_name() { | |
global $comment_author; | |
return $comment_author; | |
} | |
function tlo_get_comment_time( $comment ) { | |
$date = mysql2date(get_option('time_format'), $comment->comment_date, true); | |
return apply_filters( 'tlo_get_comment_time', $date, $comment ); | |
} | |
function tlo_get_comment_date( $comment ) { | |
$date = mysql2date(get_option('date_format'), $comment->comment_date); | |
return apply_filters( 'tlo_get_comment_date', $date, $comment ); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment