@Blitzzz
учусь

Как получить массив с помощью ajax обработчика wordpress?

Задача: сделать кнопку "В избранное" и страницу с отображением избранных товаров.
Делал с помощью 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 избранных постов на любой странице сайта?
  • Вопрос задан
  • 495 просмотров
Решения вопроса 1
arizona
@arizona
а что я, собственно, здесь делаю?...
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы