wordpress创建自定义后台评论,并且发送邮件

由于客户需要定义一个举报系统,所以我就使用了wordpress自带的评论系统进行修改。是后台能够显示用户想要的字段。后台显示效果如下:


含有填写人的姓名,内容(评论),电话,身份证,地址。当然这些都用js检验。

前台的页面如下所示:


将表单填写完成后,进行提交。然后就能在后台进行显示。在页面处引用评论的模板。

<?php comments_template(); ?>

然后在functions.php中引用自定义的后台字段:

require_once( TEMPLATEPATH . '/inc/comment_custom.php' );

然后在相应的文件夹下面进行comment_custom.php的编写:

<?php
/**
 *添加评论自定义评论字段
 *
 */
add_filter('comment_form_default_fields','comment_form_add_tel');
function comment_form_add_tel($fields) {
  $label = __( '电话' ); 
  $value = isset($_POST['tel']) ? $_POST['tel'] : false;
 
  $fields['tel'] =<<<HTML
<p class="comment-form-tel">
<label for="tel">{$label}</label>
<input id="tel" name="tel" type="text" value="{$value}" size="30" />
</p>
HTML;
  return $fields;
}
add_filter('comment_form_default_fields','comment_form_add_sfz');
function comment_form_add_sfz($fields) {
  $label = __( '身份证' ); 
  $value = isset($_POST['sfz']) ? $_POST['sfz'] : false;
 
  $fields['sfz'] =<<<HTML
<p class="comment-form-sfz">
<label for="sfz">{$label}</label>
<input id="sfz" name="sfz" type="text" value="{$value}" size="30" />
</p>
HTML;
  return $fields;
}

add_filter('comment_form_default_fields','comment_form_add_dz');
function comment_form_add_dz($fields) {
  $label = __( '地址' ); 
  $value = isset($_POST['dz']) ? $_POST['dz'] : false;
 
  $fields['dz'] =<<<HTML
<p class="comment-form-dz">
<label for="dz">{$label}</label>
<input id="dz" name="dz" type="text" value="{$value}" size="30" />
</p>
HTML;
  return $fields;
}

add_filter('comment_form_default_fields','comment_form_add_yb');
function comment_form_add_yb($fields) {
  $label = __( '邮编' ); 
  $value = isset($_POST['yb']) ? $_POST['yb'] : false;
 
  $fields['yb'] =<<<HTML
<p class="comment-form-yb">
<label for="yb">{$label}</label>
<input id="yb" name="yb" type="text" value="{$value}" size="30" />
</p>
HTML;
  return $fields;
}

/**
 *添加评论自定义评论字段写入数据库
 *
 */
add_action('wp_insert_comment','wp_insert_tel',10,2);
function wp_insert_tel($comment_ID,$commmentdata) {
  $tel = isset($_POST['tel']) ? $_POST['tel'] : false;
  update_comment_meta($comment_ID,'_tel',$tel);
}
add_action('wp_insert_comment','wp_insert_sfz',10,2);
function wp_insert_sfz($comment_ID,$commmentdata) {
  $sfz = isset($_POST['sfz']) ? $_POST['sfz'] : false;
  update_comment_meta($comment_ID,'_sfz',$sfz);
}
add_action('wp_insert_comment','wp_insert_dz',10,2);
function wp_insert_dz($comment_ID,$commmentdata) {
  $dz = isset($_POST['dz']) ? $_POST['dz'] : false;
  update_comment_meta($comment_ID,'_dz',$dz);
}
add_action('wp_insert_comment','wp_insert_yb',10,2);
function wp_insert_yb($comment_ID,$commmentdata) {
  $yb = isset($_POST['yb']) ? $_POST['yb'] : false;
  update_comment_meta($comment_ID,'_yb',$yb);
}
/**
 *后台管理页面显示自定义字段
 *
 */
add_filter( 'manage_edit-comments_columns', 'my_comments_columns' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 );
function my_comments_columns( $columns ){
    $columns[ '_tel' ] = __( '电话' );        
    return $columns;
}
function  output_my_comments_columns( $column_name, $comment_id ){
    switch( $column_name ){
    case '_tel';
    echo get_comment_meta( $comment_id, '_tel', true );
    break;
}}

add_filter( 'manage_edit-comments_columns', 'my_comments_columns_sfz' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns_sfz', 10, 2 );
function my_comments_columns_sfz( $columns ){
    $columns[ '_sfz' ] = __( '身份证' );        
    return $columns;
}
function  output_my_comments_columns_sfz( $column_name, $comment_id ){
    switch( $column_name ){
    case '_sfz';
    echo get_comment_meta( $comment_id, '_sfz', true );
    break;
}}

add_filter( 'manage_edit-comments_columns', 'my_comments_columns_dz' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns_dz', 10, 2 );
function my_comments_columns_dz( $columns ){
    $columns[ '_dz' ] = __( '地址' );        
    return $columns;
}
function  output_my_comments_columns_dz( $column_name, $comment_id ){
    switch( $column_name ){
    case '_dz';
    echo get_comment_meta( $comment_id, '_dz', true );
    break;
}}

add_filter( 'manage_edit-comments_columns', 'my_comments_columns_yb' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns_yb', 10, 2 );
function my_comments_columns_yb( $columns ){
    $columns[ '_yb' ] = __( '邮编' );        
    return $columns;
}
function  output_my_comments_columns_yb( $column_name, $comment_id ){
    switch( $column_name ){
    case '_yb';
    echo get_comment_meta( $comment_id, '_yb', true );
    break;
}}
/**
 *删除url评论字段
 *
 */
add_filter('comment_form_default_fields', 'unset_url_field');
function unset_url_field($fields){
	if(isset($fields['url']))
	unset($fields['url']);
	return $fields;
}

在后台字段中添加了如上的字段。然后就是自定义评论表单的显示。我们编写comment.php文件:

<?php
/**
 * The template for displaying comments
 *
 * The area of the page that contains both current comments
 * and the comment form.
 *
 * @package WordPress
 * @subpackage Twenty_Sixteen
 * @since Twenty Sixteen 1.0
 */

/*
 * If the current post is protected by a password and
 * the visitor has not yet entered the password we will
 * return early without loading the comments.
 */
if ( post_password_required() ) {
	return;
}
?>

<div id="comments" class="comments-area">

	<?php if ( have_comments() ) : ?>
		<h2 class="comments-title">
			<?php
				$comments_number = get_comments_number();
				if ( 1 === $comments_number ) {
					/* translators: %s: post title */
					printf( _x( 'One thought on “%s”', 'comments title', 'twentysixteen' ), get_the_title() );
				} else {
					printf(
						/* translators: 1: number of comments, 2: post title */
						_nx(
							'%1$s thought on “%2$s”',
							'%1$s thoughts on “%2$s”',
							$comments_number,
							'comments title',
							'twentysixteen'
						),
						number_format_i18n( $comments_number ),
						get_the_title()
					);
				}
			?>
		</h2>

		<?php the_comments_navigation(); ?>

		<ol class="comment-list">
			<?php
				wp_list_comments( array(
					'style'       => 'ol',
					'short_ping'  => true,
					'avatar_size' => 42,
				) );
			?>
		</ol><!-- .comment-list -->

		<?php the_comments_navigation(); ?>

	<?php endif; // Check for have_comments(). ?>

	<?php
		// If comments are closed and there are comments, let's leave a little note, shall we?
		if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) :
	?>
		<p class="no-comments"><?php _e( 'Comments are closed.', 'twentysixteen' ); ?></p>
	<?php endif; ?>

	<?php
		
	/*	$args = array(
			'title_reply_before' => '<h2 id="reply-title" class="comment-reply-title">',
			'title_reply_after'  => '</h2>',
			'title_reply'=>'内容',
			'label_submit' => '确认举报'
		);
		
		comment_form( $args );*/
		
	

	?>
		
	<?php get_template_part('comment-field'); ?>
		
		
	

</div><!-- .comments-area -->

上面的comment.php中,我们调用了comment-field.php,我们需要在编写这个文件,来显示页面中的评论表单。

<div id="cancel_comment_reply"><?php //cancel_comment_reply_link() ?></div>
		<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
			<p><?php printf(__('You must be <a href="%s">logged in</a> to post a comment.'), get_option('siteurl')."/wp-login.php?redirect_to=".urlencode(get_permalink()));?></p>
		<?php else : ?>
		<form class="form-horizontal" id="form-horizontal" action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform" name="commentform">
        
        
		<!--<p><label for="author"><?php //_e('Name'); ?> <?php //if ($req) _e('(required)'); ?></label>
        <input type="text" name="author" id="author" value="<?php //echo $comment_author; ?>" size="22" tabindex="1" /></p>-->
		<div class="col-lg-6">
			<div class="input-group form-group">
			  <span class="input-group-btn">
				<button class="btn btn-default" type="button">姓 名   </button>
			  </span>
			  <input type="text" class="form-control" name="author" id="author" placeholder="输入姓名" value="<?php echo $comment_author; ?>" required data-msg-required="不能为空" data-rule-gt="true" data-gt="0">
			</div><!-- /input-group -->
		</div><!-- /.col-lg-6 -->
		
		<div class="col-lg-6">
			<div class="input-group form-group">
			  <span class="input-group-btn">
				<button class="btn btn-default" type="button">邮 箱   </button>
			  </span>
			   <input type="email" value="<?php echo $comment_author_email; ?>" name="email" class="form-control" placeholder="请输入email地址" required data-rule-email="true" data-msg-required="请输入email地址" data-msg-email="请输入正确的email地址" />
			</div><!-- /input-group -->
		</div><!-- /.col-lg-6 -->
		<div />
		
        
		<div class="col-lg-6">
			<div class="input-group form-group">
			  <span class="input-group-btn">
				<button class="btn btn-default" type="button">手机号</button>
			  </span>
			    <input type="tel" value="<?php echo $tel; ?>" name="tel" class="form-control" placeholder="手机号" required data-rule-tel="true" data-msg-required="请输入手机号" data-msg-tel="请输入正确格式" />
				
			</div><!-- /input-group -->
		</div><!-- /.col-lg-6 -->
		
		<div class="col-lg-6">
			<div class="input-group form-group">
			  <span class="input-group-btn">
				<button class="btn btn-default" required type="button">身份证</button>
			  </span>
			  <input type="idCard" class="form-control" name="sfz" id="sfz" placeholder="身份证" value="<?php echo $sfz; ?>" required data-rule-idCard="true" data-msg-required="请输入身份证" data-msg-idCard="请输入正确格式" minlength="18" data-msg-minlength="至少输入正确身份证">
			</div><!-- /input-group -->
		</div><!-- /.col-lg-6 -->
		
		<div class="col-lg-6">
			<div class="input-group form-group">
			  <span class="input-group-btn">
				<button class="btn btn-default" type="button">地 址   </button>
			  </span>
			  <input type="text" class="form-control" name="dz" id="dz" placeholder="输入地址" value="<?php echo $dz; ?>">
			</div><!-- /input-group -->
		</div><!-- /.col-lg-6 -->
		
		<div class="col-lg-6">
			<div class="input-group form-group">
			  <span class="input-group-btn">
				<button class="btn btn-default" type="button">邮 编   </button>
			  </span>
			  <input type="text" class="form-control" name="yb" id="yb" placeholder="输入邮编" value="<?php echo $yb; ?>">
			</div><!-- /input-group -->
		</div><!-- /.col-lg-6 -->
		
		
		<p><textarea name="comment" id="comment" rows="8" class="form-control" tabindex="4" required></textarea></p>
		
		<center><br><div id="drag"></div><br></center>


        <p><button class="btn btn-primary  btn-group-justified"/><?php echo attribute_escape(__('确认举报')); ?></p>
        <?php comment_id_fields(); ?>
        <?php do_action('comment_form', $post->ID, $comment_id); ?>
    </form>
    <?php endif; // If registration required and not logged in ?>
	</div>

<script>
$('#drag').drag();

$(function(){
    //jquery.validate
	$("#jsForm").validate({
		submitHandler: function() {
			//验证通过后 的js代码写在这里
		}
	})
		
})


//下面是一些常用的验证规则扩展

/*-------------验证插件配置-------------*/

//配置错误提示的节点,默认为label,这里配置成 span (errorElement:'span')
$.validator.setDefaults({
	errorElement:'span'
});

//配置通用的默认提示语
$.extend($.validator.messages, {
	required: '必填',
    equalTo: "请再次输入相同的值"
});

/*-------------扩展验证规则-------------*/
//邮箱 
jQuery.validator.addMethod("mail", function (value, element) {
	var mail = /^[a-z0-9._%-]+@([a-z0-9-]+\.)+[a-z]{2,4}$/;
	return this.optional(element) || (mail.test(value));
}, "邮箱格式不对");

//电话验证规则
jQuery.validator.addMethod("phone", function (value, element) {
    var phone = /^0\d{2,3}-\d{7,8}$/;
    return this.optional(element) || (phone.test(value));
}, "电话格式如:0371-68787027");

//区号验证规则  
jQuery.validator.addMethod("ac", function (value, element) {
    var ac = /^0\d{2,3}$/;
    return this.optional(element) || (ac.test(value));
}, "区号如:010或0371");

//无区号电话验证规则  
jQuery.validator.addMethod("noactel", function (value, element) {
    var noactel = /^\d{7,8}$/;
    return this.optional(element) || (noactel.test(value));
}, "电话格式如:68787027");

//手机验证规则  
jQuery.validator.addMethod("mobile", function (value, element) {
    var mobile = /^1[3|4|5|7|8]\d{9}$/;
	return this.optional(element) || (mobile.test(value));
}, "手机格式不对");

//邮箱或手机验证规则  
jQuery.validator.addMethod("mm", function (value, element) {
    var mm = /^[a-z0-9._%-]+@([a-z0-9-]+\.)+[a-z]{2,4}$|^1[3|4|5|7|8]\d{9}$/;
	return this.optional(element) || (mm.test(value));
}, "格式不对");

//电话或手机验证规则  
jQuery.validator.addMethod("tm", function (value, element) {
    var tm=/(^1[3|4|5|7|8]\d{9}$)|(^\d{3,4}-\d{7,8}$)|(^\d{7,8}$)|(^\d{3,4}-\d{7,8}-\d{1,4}$)|(^\d{7,8}-\d{1,4}$)/;
    return this.optional(element) || (tm.test(value));
}, "格式不对");

//年龄
jQuery.validator.addMethod("age", function(value, element) {   
	var age = /^(?:[1-9][0-9]?|1[01][0-9]|120)$/;
	return this.optional(element) || (age.test(value));
}, "不能超过120岁"); 
/ 20-60   /^([2-5]\d)|60$/

//传真
jQuery.validator.addMethod("fax",function(value,element){
    var fax = /^(\d{3,4})?[-]?\d{7,8}$/;
    return this.optional(element) || (fax.test(value));
},"传真格式如:0371-68787027");

//验证当前值和目标val的值相等 相等返回为 false
jQuery.validator.addMethod("equalTo2",function(value, element){
    var returnVal = true;
    var id = $(element).attr("data-rule-equalto2");
    var targetVal = $(id).val();
    if(value === targetVal){
        returnVal = false;
    }
    return returnVal;
},"不能和原始密码相同");

//大于指定数
jQuery.validator.addMethod("gt",function(value, element){
    var returnVal = false;
    var gt = $(element).data("gt");
    if(value > gt && value != ""){
        returnVal = true;
    }
    return returnVal;
},"不能小于0 或空");

//汉字
jQuery.validator.addMethod("chinese", function (value, element) {
    var chinese = /^[\u4E00-\u9FFF]+$/;
    return this.optional(element) || (chinese.test(value));
}, "格式不对");

//指定数字的整数倍
jQuery.validator.addMethod("times", function (value, element) {
    var returnVal = true;
    var base=$(element).attr('data-rule-times');
    if(value%base!=0){
        returnVal=false;
    }
    return returnVal;
}, "必须是发布赏金的整数倍");

//身份证
jQuery.validator.addMethod("idCard", function (value, element) {
    var isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//(15位)
    var isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;//(18位)

    return this.optional(element) || (isIDCard1.test(value)) || (isIDCard2.test(value));
}, "格式不对");


</script>

其中包含了验证。然后就能进行正常的显示。

邮件的发送提醒:

由于举报写完,我们需要将所填写的信息通过邮件进行发送到指定的邮箱。我们自己写一个点击确认举报时发送邮件的代码。

首先我们在functions.php中应用我们将要编写的代码youjian.php

<?php
/**
 * Mail smtp setting
 */
add_action('phpmailer_init', 'mail_smtp');
function mail_smtp( $phpmailer , $comment_id) {
    {
        $mail_name = 'mail_name';
        $mail_host = 'smtp.163.com';;
        $mail_port = 465;
        $mail_username = '15****7@163.com';
        $mail_passwd = 'mima********';
        $mail_smtpsecure = 'ssl';
        $phpmailer->FromName = $mail_name ? $mail_name : 'wu'; 
        $phpmailer->Host = $mail_host ? $mail_host : 'smtp.163.com';
        $phpmailer->Port = $mail_port ? $mail_port : '994';
        $phpmailer->Username = $mail_username ? $mail_username : 'no_reply@wu.com';
        $phpmailer->Password = $mail_passwd ? $mail_passwd : '123456789';
        $phpmailer->From = $mail_username ? $mail_username : 'no_reply@wu.com';
        $phpmailer->SMTPAuth =  true  ;
        $phpmailer->SMTPSecure = $mail_smtpsecure ? $mail_smtpsecure : 'ssl';
        $phpmailer->IsSMTP();
		
		//测试发送邮件的内容
		$comment = get_comment($comment_id);
		$parent_id = $comment->comment_parent ? $comment->comment_parent : '';
		$spam_confirmed = $comment->comment_approved;
		
		               
        $message = '
		    <div style="background:#ececec;width: 100%;padding: 50px 0;text-align:center;">
            <div style="background:#fff;width:750px;text-align:left;position:relative;margin:0 auto;font-size:14px;line-height:1.5;">
                    <div style="zoom:1;padding:25px 40px;background:#518bcb; border-bottom:1px solid #467ec3;">
                        <h1 style="color:#fff; font-size:25px;line-height:30px; margin:0;"><a href="' . get_option('home') . '" style="text-decoration: none;color: #FFF;">' . htmlspecialchars_decode(get_option('blogname'), ENT_QUOTES) . '</a></h1>
                    </div>
                <div style="padding:35px 40px 30px;">
                    <h2 style="font-size:18px;margin:5px 0;">Hi ' . trim(get_comment($parent_id)->comment_author) . ':</h2>
                    <p style="color:#313131;line-height:20px;font-size:15px;margin:20px 0;">您有一条留言有了新的回复,摘要信息请见下表。</p>
                        <table cellspacing="0" style="font-size:14px;text-align:center;border:1px solid #ccc;table-layout:fixed;width:500px;">
                            <thead>
                                <tr>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="235px;">原文</th>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="235px;">回复</th>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="100px;">作者</th>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="90px;" >测试</th>
									<th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="90px;" >操作</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">' . (get_option('comment_author_email')) . '</td>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">'. (get_option('tel')) . '</td>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">' . trim($comment->comment_author) . '</td>
									<td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">' . $comment_id  . '</td>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"><a href="'.get_comment_link( $comment->comment_ID ).'" style="color:#1E5494;text-decoration:none;vertical-align:middle;" target="_blank">查看回复</a></td>
                                </tr>
                            </tbody>
                        </table>
                        <br>
                    <div style="font-size:13px;color:#a0a0a0;padding-top:10px">该邮件由系统自动发出,如果不是您本人操作,请忽略此邮件。</div>
                    <div class="qmSysSign" style="padding-top:20px;font-size:12px;color:#a0a0a0;">
                        <p style="color:#a0a0a0;line-height:18px;font-size:12px;margin:5px 0;">' . htmlspecialchars_decode(get_option('blogname'), ENT_QUOTES) . '</p>
                        <p style="color:#a0a0a0;line-height:18px;font-size:12px;margin:5px 0;"><span style="border-bottom:1px dashed #ccc;" t="5" times="">' . date("Y年m月d日",time()) . '</span></p>
                    </div>
                </div>
            </div>
        </div>';
		    
		$phpmailer->IsHTML( true );
		$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
		$phpmailer->Body = $message;
		
		
    }
}

/**
 * Comments email response system
 */
add_action('comment_unapproved_to_approved', 'kratos_comment_approved');
function kratos_comment_approved($comment) {
    if(is_email($comment->comment_author_email)) {
        $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
        $to = trim($comment->comment_author_email);
        $post_link = get_permalink($comment->comment_post_ID);
        $subject = '[通知]您的留言已经通过审核';
        $message = '
            <div style="background:#ececec;width: 100%;padding: 50px 0;text-align:center;">
            <div style="background:#fff;width:750px;text-align:left;position:relative;margin:0 auto;font-size:14px;line-height:1.5;">
                    <div style="zoom:1;padding:25px 40px;background:#518bcb; border-bottom:1px solid #467ec3;">
                        <h1 style="color:#fff; font-size:25px;line-height:30px; margin:0;"><a href="' . get_option('home') . '" style="text-decoration: none;color: #FFF;">' . htmlspecialchars_decode(get_option('blogname'), ENT_QUOTES) . '</a></h1>
                    </div>
                <div style="padding:35px 40px 30px;">
                    <h2 style="font-size:18px;margin:5px 0;">Hi ' . trim($comment->comment_author) . ':</h2>
                    <p style="color:#313131;line-height:20px;font-size:15px;margin:20px 0;">您有一条留言通过了管理员的审核并显示在文章页面,摘要信息请见下表。</p>
                        <table cellspacing="0" style="font-size:14px;text-align:center;border:1px solid #ccc;table-layout:fixed;width:500px;">
                            <thead>
                                <tr>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="280px;">文章</th>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="270px;">内容</th>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="110px;" >操作</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">《' . get_the_title($comment->comment_post_ID) . '》</td>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">'. trim($comment->comment_content) . '</td>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"><a href="'.get_comment_link( $comment->comment_ID ).'" style="color:#1E5494;text-decoration:none;vertical-align:middle;" target="_blank">查看留言</a></td>
                                </tr>
                            </tbody>
                        </table>
                        <br>
                    <div style="font-size:13px;color:#a0a0a0;padding-top:10px">该邮件由系统自动发出,如果不是您本人操作,请忽略此邮件。</div>
                    <div class="qmSysSign" style="padding-top:20px;font-size:12px;color:#a0a0a0;">
                        <p style="color:#a0a0a0;line-height:18px;font-size:12px;margin:5px 0;">' . htmlspecialchars_decode(get_option('blogname'), ENT_QUOTES) . '</p>
                        <p style="color:#a0a0a0;line-height:18px;font-size:12px;margin:5px 0;"><span style="border-bottom:1px dashed #ccc;" t="5" times="">' . date("Y年m月d日",time()) . '</span></p>
                    </div>
                </div>
            </div>
        </div>';
        $from = "From: \"" . htmlspecialchars_decode(get_option('blogname'), ENT_QUOTES) . "\" <$wp_email>";
        $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
        wp_mail( $to, $subject, $message, $headers );
    }
}
function comment_mail_notify($comment_id) {
    $comment = get_comment($comment_id);
    $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
    $spam_confirmed = $comment->comment_approved;
    if (($parent_id != '') && ($spam_confirmed != 'spam')) {
        $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
        $to = trim(get_comment($parent_id)->comment_author_email);
        $subject = '[通知]您的留言有了新的回复';
        $message = '
		    <div style="background:#ececec;width: 100%;padding: 50px 0;text-align:center;">
            <div style="background:#fff;width:750px;text-align:left;position:relative;margin:0 auto;font-size:14px;line-height:1.5;">
                    <div style="zoom:1;padding:25px 40px;background:#518bcb; border-bottom:1px solid #467ec3;">
                        <h1 style="color:#fff; font-size:25px;line-height:30px; margin:0;"><a href="' . get_option('home') . '" style="text-decoration: none;color: #FFF;">' . htmlspecialchars_decode(get_option('blogname'), ENT_QUOTES) . '</a></h1>
                    </div>
                <div style="padding:35px 40px 30px;">
                    <h2 style="font-size:18px;margin:5px 0;">Hi ' . trim(get_comment($parent_id)->comment_author) . ':</h2>
                    <p style="color:#313131;line-height:20px;font-size:15px;margin:20px 0;">您有一条留言有了新的回复,摘要信息请见下表。</p>
                        <table cellspacing="0" style="font-size:14px;text-align:center;border:1px solid #ccc;table-layout:fixed;width:500px;">
                            <thead>
                                <tr>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="235px;">原文</th>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="235px;">回复</th>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="100px;">作者</th>
                                    <th style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:normal;color:#a0a0a0;background:#eee;border-color:#dfdfdf;" width="90px;" >操作</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">' . trim(get_comment($parent_id)->comment_content) . '</td>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">'. trim($comment->comment_content) . '</td>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">' . trim($comment->comment_author) . '</td>
                                    <td style="padding:5px 0;text-indent:8px;border:1px solid #eee;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"><a href="'.get_comment_link( $comment->comment_ID ).'" style="color:#1E5494;text-decoration:none;vertical-align:middle;" target="_blank">查看回复</a></td>
                                </tr>
                            </tbody>
                        </table>
                        <br>
                    <div style="font-size:13px;color:#a0a0a0;padding-top:10px">该邮件由系统自动发出,如果不是您本人操作,请忽略此邮件。</div>
                    <div class="qmSysSign" style="padding-top:20px;font-size:12px;color:#a0a0a0;">
                        <p style="color:#a0a0a0;line-height:18px;font-size:12px;margin:5px 0;">' . htmlspecialchars_decode(get_option('blogname'), ENT_QUOTES) . '</p>
                        <p style="color:#a0a0a0;line-height:18px;font-size:12px;margin:5px 0;"><span style="border-bottom:1px dashed #ccc;" t="5" times="">' . date("Y年m月d日",time()) . '</span></p>
                    </div>
                </div>
            </div>
        </div>';
        $from = "From: \"" . htmlspecialchars_decode(get_option('blogname'), ENT_QUOTES) . "\" <$wp_email>";
        $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
        wp_mail( $to, $subject, $message, $headers );
    }
}
add_action('comment_post', 'comment_mail_notify');


?>


但是代码在发送邮件的时候出现问题,就是不能够得到前台评论的一些相关信息。mail_smtp( $phpmailer , $comment_id)不能够得到$comment_id的信息,这句是我自己添加的。等明天在找下原因。

还有就是这样不能进行后台订制一些邮箱的信息。明天再一起写一个后台的菜单,来让用户自己填写邮箱的一些信息。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值