php 使用AJAX更新评论自定义字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 使用AJAX更新评论自定义字段相关的知识,希望对你有一定的参考价值。

jQuery(document).ready(function($){
	$(document).on('click', '.btn-featured', function(e) {
		e.preventDefault();

		var element = $(this);
		var comment_id = $(this).data('comment');
		var comment_value = $(this).data('value');

		$.ajax({
			url : object.ajax_url,
			type : 'post',
			data : {
				action : 'update_featured_comment',
				comment_id : comment_id,
				comment_value : comment_value
			},
			success : function(response) {
				location.reload(true);
			}
		});
	});

	$(document).on('click', '.btn-thumb', function(e) {
		e.preventDefault();

		var element = $(this);
		var comment_id = $(this).data('comment');

		$.ajax({
			url : object.ajax_url,
			type : 'post',
			data : {
				action : 'update_viewed_comment',
				comment_id : comment_id
			},
			success : function(response) {
				location.reload(true);
			}
		});
	});

	$(document).on('mouseover, mouseleave', '.btn-thumb', function(e) {
		$(this).parent().toggleClass('show');
	});

	$(document).on({
		mouseenter: function() {
			$(this).parent().addClass('show');
		},
		mouseleave: function() {
			$(this).parent().removeClass('show');
		}
	}, '.btn-thumb');
});
/* Update Comment Fields */

function update_featured_comment() {
    update_field('featured', $_POST['comment_value'], $_POST['comment_id']);
    die();
}

add_action('wp_ajax_nopriv_update_featured_comment', 'update_featured_comment');
add_action('wp_ajax_update_featured_comment', 'update_featured_comment');

function update_viewed_comment() {
    $user_id = get_current_user_id();
    $viewed = get_field('viewed_by', $_POST['comment_id'], false);

    if (!in_array($user_id, $viewed)) {
        $viewed[] = $user_id;
    }

    update_field('viewed_by', $viewed, $_POST['comment_id']);
    die();
}

add_action('wp_ajax_nopriv_update_viewed_comment', 'update_viewed_comment');
add_action('wp_ajax_update_viewed_comment', 'update_viewed_comment');
<div class="reply">
    <?php
        $id = 'comment_' . $comment->comment_ID;
        $user_id = apply_filters('determine_current_user', false);

        $views = get_field('viewed_by', $comment, false);

        if (in_array($user_id, $views)) {
            $class = 'active';
        }
    ?>

    <div class="seen-by">
        <p>
            <?php _e('Seen via web: '); ?>
        </p>

        <?php foreach ($views as $view) : ?>
            <img src="<?php the_field('user_avatar', 'user_' . $view); ?>" />
        <?php endforeach; ?>
    </div>

    <?php if(get_field('featured', $comment) == 'No'): ?>
        <?php $featured = 'Yes'; ?>
    <?php else: ?>
        <?php $featured = 'No'; ?>
    <?php endif; ?>

    <span class="btn-featured <?php the_field('featured', $comment); ?>" data-comment="<?php echo $id; ?>" data-value="<?php echo $featured; ?>"></span>

    <span class="sep"></span>

    <span class="btn-thumb <?php echo $class; ?>" data-comment="<?php echo $id; ?>"></span>

    <span class="sep"></span>

    <?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>

以上是关于php 使用AJAX更新评论自定义字段的主要内容,如果未能解决你的问题,请参考以下文章

用 ajax 更新而不是替换 wordpress 自定义字段

使用 AJAX 和 PHP 更新表单字段

尝试使用复选框将评论定义为私有或不私有。使用 AJAX 发布到 PHP MySQL

多个使用ajax动态创建的同名按钮

在Wordpress上提交评论后自定义“成功”消息

复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql