Что вы можете сделать, это изменить поведение кнопки без ajax, а затем отправить запрос ajax.
Например, если у кнопки есть класс «понравился», измените его на «unliked», а затем отправьте запрос ajax в отличие от,Если кнопка «не понравилась», сначала установите ее в «понравившийся», когда пользователь нажимает на нее, а затем отправьте запрос ajax.Конечно, это будет означать, что в случае сбоя ajax-запроса ваш пользователь не узнает об этом и не узнает, что его действие не учитывается, но мгновенное обновление состояния кнопки того стоит.
(function ($) {
'use strict';
$(document).on('click', '.sl-button', function () {
var button = $(this);
var post_id = button.attr('data-post-id');
var security = button.attr('data-nonce');
var iscomment = button.attr('data-iscomment');
var allbuttons;
if (iscomment === '1') { /* Comments can have same id */
allbuttons = $('.sl-comment-button-' + post_id);
} else {
allbuttons = $('.sl-button-' + post_id);
}
// check if the button is liked, than mark it as unliked and vise versa
if (allbuttons.hasClass('liked')) {
var like_text = simpleLikes.like;
allbuttons.prop('title', like_text);
allbuttons.removeClass('liked');
} else {
var unlike_text = simpleLikes.unlike;
allbuttons.prop('title', unlike_text);
allbuttons.addClass('liked');
}
if (post_id !== '') {
$.ajax({
type: 'POST',
url: simpleLikes.ajaxurl,
data: {
action: 'process_simple_like',
post_id: post_id,
nonce: security,
is_comment: iscomment,
disabled : false
}
});
}
return false;
});
})(jQuery);