Сохранить данные пользователя и ответ в cookie WordPress

Реализую простой блок кнопок нравится/не нравится пост. Не нужен ни какой замудрённый функционал, только сохранить ответ пользователя. С этим проблем не возникло, использую такой код. Но вот никак не могу сообразить, как запомнить действия пользователя, чтобы исключить возможность повторного голосования - ни да, ни нет, именно в этой статье.

<span class="article__footer_btn article__footer_btn--yes" data-id="<?php echo $post->ID ?>">Да</span>
<span class="article__footer_btn article__footer_btn--no" data-id="<?php echo $post->ID ?>">Нет</span>


$('.article__footer_btn--yes').click(function(){
    var $this = $(this);
    var id_post = $this.attr('data-id')
    var originalText = $this.text();
    $.ajax({
        url: myajax.url,
        type: 'POST',
        data: {
                action: 'my_action',
                nonce_code : myajax.nonce,
                param: 'yes',
                param2: id_post
              }, 
        success: function( data ) {
            $this.text('+1');
            setTimeout(function() {
                $this.text(originalText)
            }, 5000);
                //$('.article__footer_btn--yes').text('Да').fadeIn(100).delay(4999);
            //alert( data );
        }
    });
});

$('.article__footer_btn--no').one('click', function(){
    var $this = $(this);
    var id_post = $this.attr('data-id')
    var originalText = $this.text();
    $.ajax({
        url: myajax.url,
        type: 'POST',
        data: {
                action: 'my_action',
                nonce_code : myajax.nonce,
                param: 'no',
                param2: id_post
              }, 
        success: function( data ) {
            $this.text('+1');
            setTimeout(function() {
                $this.text(originalText)
            }, 5000);   
            //alert( data );
        }
    });
});


if( wp_doing_ajax() ){
add_action( 'wp_ajax_my_action', 'yes_no_function' ); // wp_ajax_{ЗНАЧЕНИЕ ПАРАМЕТРА ACTION!!}
add_action( 'wp_ajax_nopriv_my_action', 'yes_no_function' );  // wp_ajax_nopriv_{ЗНАЧЕНИЕ ACTION!!}
// первый хук для авторизованных, второй для не авторизованных пользователей
}

function yes_no_function(){
    if (isset($_POST['param']) && isset($_POST["param2"]) ) {
        check_ajax_referer( 'myajax-nonce', 'nonce_code' );
        if ($_POST['param'] == 'yes'){
            $meta_key = 'like_post';
        } elseif ($_POST['param'] == 'no'){
            $meta_key = 'dislike_post';
        }
        $id = $_POST['param2'];
        $post_views = (int)get_post_meta($id,$meta_key, true);
        
        if( !update_post_meta($id, $meta_key, ($post_views+1)) ) add_post_meta($id, $meta_key, 1, true);
    
    }
 
    die; // даём понять, что обработчик закончил выполнение
} 

Дополню вопрос. Подскажите, хотя бы куда копать, где посмотреть и вообще насколько это возможно?


Ответы (0 шт):