Как сделать избранные записи или корзину без плагинов

Как сделать избранные записи или корзину без плагинов
С помощью данного примера можно сделать не только избранные записи, но и что-то типа корзины на WordPress, если «прикрутить» функцию к форме заказа.

Например если нужно создать простой каталог товаров, но вы не хотите ставить для этого громоздкие плагины.

В приведенном примере, избранные записи хранятся в браузере пользователя 30 дней, данный параметр можно изменить по своему усмотрению.

Начнем.

1) Добавляем 3 функции в файл functions.php

2) Добавляем ссылку «Добавить в избранное» в шаблон. Для обычных постов это single.php

3) Добавляем в шаблон темы js код, можно добавить в footer.php или лучше вынести в отдельный файл

4) Теперь нужно добавить ссылку на страницу с избранными записями. Можно добавить где нибудь в шапке в меню.

5) Теперь необходимо создать страницу для вывода избранных записей.
Создаем в папке с темой файл favorite.php, далее открываем файл page.php копируем там весь код и переносим его в favorite.php, в самое начало добавляем

6) Необходимо создать страницу избранное со слагом favorite и выбрать созданный шаблон.

7) Заменить стандартный цикл на:

Это конечно все сокращенный вариант и без css оформления, но для наглядности думаю пойдет.

27 ответов к «Как сделать избранные записи или корзину без плагинов»

  1. Добрый день, у меня не работает ( я создал пользовательский тип записи «product» и ваше код не работает, даже счетчик в header не считает, а когда захожу в раздел «Избранное» то там пусто, хотя при клике добавляется ( . Если пробывать на записях «post» то вроде бы работает. Подскажите плиз как мне подправить ваш код, что бы работал с пользовательский типом записи «product»

    1. Здравствуйте.
      пункт 7

      Библиотека jQuery подключена?

      1. Да подключена, и менял как вы написали.
        посмотрите что происходит, может поможете ( очень надо

        1. Могу ошибаться, но попробуйте поменять пути в скрипте
          /wp-admin/admin-ajax.php на /web/wp-admin/admin-ajax.php.
          у вас двиг в отдельной папке видимо установлен

          1. Счетчик стал считать, но когда захожу в по ссылки избранное то там пусто не чего нету ( просто надпись пусто. Такая проблема наблюдалась на локальном сервере

  2. код 7 , вначале добавьте

    посмотрите выводит ид постов.
    Примерно так должно

  3. Понятно, не передаются переменные между шаблонами.
    нужно перед $obj=json_decode($favorite_id); (код 4) добавить global $obj;
    тоесть так
    global $obj;
    $obj=json_decode($favorite_id);

    Потом также global $obj; нужно добавить и в самое начало кода 7, и в то место где добавлена кнопка «добавить в избранное» , те в начало цикла.

    Рекомендую переменную $obj потом заменить на что нибудь более уникальное, на всякий случай.

  4. Убрал выводит все записи в корзине, а не избранные, посмотрите
    foradmins.pp.ua/web/

    1. сейчас еще на один сайт поставил и работает:

  5. у вас правильно тип записи указан, а то заголовки где кнопка «добавить в избранное «одни, а на странице с избранными товарами заголовки другие.
    Проверьте
    $gggg = get_post(’39’);
    echo $gggg->post_type;

    Что покажет

  6. Спасибо, скажите я теперь могу по циклу проходить и выбрать то что мне надо ?

  7. Когда я добавляю свой класс, то почему то через раз работает AJAX добавление

  8. Посмотрите пожалуйста.
    Как только добавлю стили перестает работать AJAX добавление в корзину

  9. —-Когда я добавляю свой класс, то почему то через раз работает AJAX добавление.—
    что на что поменяли?

  10. Подскажите удаление из корзине не происходит средствами AJAX

    Подскажите как решить проблему

    1. удаляет, просто нет уведомления так как вы поменяли все названия классов.

      вот это все должно быть

      Также счетчик перестал работать, опят же из-за смены названия классов.

      Если поменяли, то их нужно и в скрипте (код 3) на аналогичное поменять .

      Можно сделать , чтобы не просто уведомление было как сейчас, а сразу полностью удаление блока с этим товаром из корзины.

  11. Не работает. Добавил код: в цикл вывода записей, но выводить: Warning: in_array() expects parameter 2 to be array, null given in C:\OpenServer\domains\avis.local\wp-content\themes\avis\page-searchresources.php on line 149, хотя в header.php добавил код из пункта 4.

  12. И самая большая проблема, это то, что не работает когда пользователь авторизован.

  13. Супер. Все работает. Отлично!
    Только как бы теперь вывести посты в избранном по дате добавления в избранное?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


доступен плагин ATs Privacy Policy ©