Задача: сделать кнопку "В избранное" и страницу с отображением избранных товаров.
Делал с помощью cookie-js и jquery-json
Код отображения количества избранных материалов, счетчик избранных и передача ajax запроса на admin-ajax.php
if ($.cookie("liked"))
$('#data-ids').text($.evalJSON($.cookie("liked")).length + " шт");
$('.add-to-my-favorites').each(function(e) {
var id = parseFloat($(this).attr('data-id')),
liked = $.cookie("liked");
if (liked == null)
return false;
else
liked = $.evalJSON(liked);
for (var i in liked) {
if (!liked.hasOwnProperty(i))
continue;
if (liked[i] == id)
$(this).addClass('liked');
}
});
$('.add-to-my-favorites').click(function() {
var id = 0,
count = 0,
liked = $.cookie("liked");
if (liked == null) {
liked = [];
} else {
liked = $.evalJSON(liked);
}
id = parseFloat($(this).attr('data-id'));
if (!$(this).hasClass('liked')) {
liked[liked.length] = id;
$(this).addClass('liked');
$.ajax({
type: "GET",
url: ajaxurl,
data: {
action: 'ids',
id: id
},
success: function(response) {
console.log('AJAX response : ', response);
}
});
} else {
for (var i in liked) {
if (!liked.hasOwnProperty(i))
continue;
if (liked[i] == id)
liked.splice(i, 1);
}
$(this).removeClass('liked');
}
i = 0
for (i in liked) {
if (!liked.hasOwnProperty(i))
continue;
count = count + 1
}
$('#data-ids').text(count + " шт");
$.cookie("liked", $.toJSON(liked), {
expires: 365,
path: '/'
});
return false;
});
Код HTML кнопки с текущим id поста
<div class="add-to-my-favorites" data-id="<? echo get_the_ID();?>" title="Добавить в избранное">В избранное</div>
HTML вывод количества избранных товаров
<div class="one"><a href="/favorits/" id="data-ids" title="Избранные товары">0 шт</a></div>
Ajax обработчик на бэкенде, код из functions.php
add_action('wp_ajax_ids', 'ids_function'); // If called from admin panel
add_action('wp_ajax_nopriv_ids', 'ids_function'); // If called from front end
function ids_function() {
echo $_REQUEST;
wp_die();
}
В итоге получаю пустой массив...как получить json массив с id избранных постов на любой странице сайта?