子比评论区设置私密评论

迭代版本:

  • 2024.09.25:第一版
  • 2024.09.26:第二版

魔改改进:

  1. 复选框和文字间增加一段距离
  2. 设置私密等与原主题保持一致
  3. 设置复选框与主题保持一致

代码修改:

functions.php代码

//私密评论
function yxc_scripts(){
  if (!is_admin()) {
        $script = array(
            'smminjs' => 'https://cdn.catchyxc.com/wp-resource/js/private-comments.js',
        );
        foreach( $script as $k => $v ){
            wp_register_script( $k, $v, array(), '2.4.0', true);
        };

        wp_enqueue_script('smminjs');
        
        if (is_singular()) {
            wp_enqueue_script('smminjs');
        };

    }
}
add_action('wp_enqueue_scripts', 'yxc_scripts');

function yxc_private_message_hook( $comment_content , $comment){
    $comment_ID = $comment->comment_ID;
    $parent_ID = $comment->comment_parent ? $comment->comment_parent : '';
    $parent_email = get_comment_author_email($parent_ID);
    $is_private = get_comment_meta($comment_ID,'_private',true);
    $email = $comment->comment_author_email;
    $current_commenter = wp_get_current_commenter();
  $current_user = wp_get_current_user();
    $html = '<span style="color:#558E53"><i class="fa fa-lock fa-fw"></i>该评论为私密评论</span>';
  if ( $is_private ) {
      if ( !is_user_logged_in() && $current_commenter['comment_author_email'] == '' ) {
        return $comment_content = $html;
      }else
    if ($current_commenter['comment_author_email'] == '' && $current_user->user_email == $parent_email || current_user_can('delete_user') || $current_user->user_email == $email || $current_commenter['comment_author_email'] == $email || $parent_email == $current_commenter['comment_author_email'] && $current_commenter['comment_author_email'] !== ''){
      return $comment_content = '【私密评论】 ' . $comment_content;
    }
    return $comment_content = $html;
  }
    return $comment_content;
}
add_filter('get_comment_text','yxc_private_message_hook',10,2);

function yxc_mark_private_message( $comment_id ){
    if ( $_POST['is-private'] ) {
        update_comment_meta($comment_id,'_private','true');
    }
}
add_action('comment_post', 'yxc_mark_private_message');
//将某条评论设为私密评论
add_action('wp_ajax_nopriv_mrhe_private', 'yxc_private');
add_action('wp_ajax_mrhe_private', 'yxc_private');
function yxc_private(){
  $comment_id = $_POST["p_id"];
   $action = $_POST["p_action"];
  if ( $action == 'set_private'){
     update_comment_meta($comment_id, '_private', 'true');
    }
    if ($action == 'del_private'){
        delete_comment_meta($comment_id, '_private','true');
    }
    echo '设置成功';
   die;
}
//挂载到评论底部
function yxc_footer_info_add_private($info, $comment) {
    if ( current_user_can( 'manage_options' ) ) {
        $comment_ID = $comment->comment_ID;
        $i_private = get_comment_meta($comment_ID, '_private', true);
        $flag = ''; // 初始化 $flag 为空字符串
        if (empty($i_private)) {
            $flag .= '  <a href="javascript:;" rel="external nofollow"  rel="external nofollow"  data-actionp="set_private" data-idp="' . get_comment_id() . '" id="sp" class="sm"><span class="has_set_private">设为私密</span></a>';
            $info = $info . $flag;
        } else {
            $flag .= '  <a href="javascript:;" rel="external nofollow"  rel="external nofollow"  data-actionp="del_private" data-idp="' . get_comment_id() . '" id="sp" class="sm"><span class="has_set_private">删除私密</span></a>';
            $info = $info . $flag;
        }
    }
    return $info;
}
add_filter('comment_footer_info', 'yxc_footer_info_add_private', 99, 2);

js代码

$(function() {
	$(".links-card ul.list-inline img").each(function() {
		if ("" == $(this).attr("data-src")) {
			var a = "" + $(this).parent().attr("href");
			$(this).attr("src", a)
		}
	}), $(document).on("click", ".sm", function() {
		var a = $(this);
		if (a.hasClass("private_now")) return notyf("您之前已设置过私密评论", "warning"), !1;
		a.addClass("private_now");
		var t = a.data("idp"),
			e = a.data("actionp"),
			n = a.children(".has_set_private"),
			r = {
				action: "mrhe_private",
				p_id: t,
				p_action: e
			};
		return $.post("/wp-admin/admin-ajax.php", r, function(a) {
			n.html(a)
		}), !1
	})
});

/wp-content/themes/zibll/template/comments.php代码

<!--私密评论-->
									<label class="but c-blue pw-1em" data-placement="top" data-toggle="tooltip" title="你的评论仅评论双方可见。" style="margin-bottom: 0px; -moz-user-select: none; -ms-user-select: none; user-select: none; margin-right: 6px;">
                           			<input id="is-private-checkbox" name="is-private" type="checkbox" style= "margin: 1px 4px 1px 0; width: 12px; height: 12px; min-width: 0em;">私密</label>
图片[1] - 子比评论区设置私密评论 - 云晓晨 KaiQi.Wang

CSS代码

在后台主题设置[自定义CSS样式]添加下面CSS代码:

/*设置私密复选框样式*/
#is-private-checkbox::before {
    transition: transform 0.2s ease;
}

#is-private-checkbox:checked::before {
    transform: translateY(-50%) translateX(-5%) scale(0.5);
}

#is-private-checkbox:not(:checked)::before {
    transform: translateY(0) translateX(0) scale(1);
}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
访客头像 - 云晓晨 KaiQi.Wang
欢迎您留下宝贵的见解!
提交
访客头像 - 云晓晨 KaiQi.Wang

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容