Избранное
Реализуем функционал Избранное. Нам надо сделать кнопку добавить в Избранное в шаблоне самой записи и в цикле вывода записей категории. И отдельная страница Избранное где выводятся избранные записи.
Плагин Favorites
По данному функционалу, пожалуй лучший плагин! Не сложные настройки. Отключил функцию счетчика избранных записей (здесь она не уместна, тем более если вы используете счетчик просмотра записей).
Можно отключить вставку кнопок по-умолчанию и вставить их кодом самому в шаблоны
$post_id — берется по-умолчанию (внутри цикла)
$site_id — берутся основной сайт (если сайт единственный), делаем переменную ID (если мультисайт)
Создаем страницу (называем ее как хотим, например Favorites) и вставляем в нее шорткоды (если отображаются двойные квадратные скобки — убрать)
В этой странице будут отображаться список избранных записей.
Отправку избранного можно реализовать дополнением к плагину Contact Form 7 — Dynamic Text Extension. Выводим форму на странице Favorites c динамическим полем (скрытым), внутри поля — шорткод с выводим избранных записей (единственный недостаток список будет приходить с экранированными тегами html).
Избранные товары
Подключим функционал плагина Favorites к интернет-магазину Woocommerce. В настройках Display & Post Types выберем тип записей — товары.
Настраиваем внешний вид кнопки Избранное, там же в настройках Display & Post Types. Если выбрать Custom Markup, то мы сами прописываем в полях необходимое содержание кнопок. Я предпочитаю:
Добавляем кнопку Избранное у товаров, в категории и в карточке:
Подобные функции лучше оборачивать в проверку
Если этого не сделать, то без плагина в шаблоне будет происходить ошибка.
Общее количество избранных товаров
Добавляем в шапку (либо в другое место на сайте) количество избранного товара:
Стили для отображения общего количества
Прописываем функции и создаем скрипт favorite.js для ajax-обновления количества
Страница избранных товаров
Создаем страницу Избранное с постоянной ссылкой favorite (во-первых для порядка, а во-вторых мы ранее указали в виде ссылки в шапке), вставляем в нее шорткоды (убрать двойные квадратные скобки) вывода списка избранных товаров:
Список товаров выглядит довольно скромно. Было бы куда удобнее вывести мини-карточки товаров.
Получаем массив id избранных товаров — get_user_favorites(); С помощью этого массива мы можем создать абсолютно любой шаблон вывода товаров. Например:
Плагин "Добавить в избранное" для интернет-магазина .
Эта публикация продолжает цикл статей, посвященных скриптам, кодам и плагинам для расширения возможностей интернет-магазина на конструкторе сайтов WebsiteX5. Сейчас пойдет речь о плагине для добавления понравившихся товаров в избранное. В данном случае — это не закладки браузера, а раздел сайта, в который пользователь сможет отобрать понравившиеся товары. В интеренет-магазинах этот раздел может называться по разному: «мои желания», «список желаний», «понравившиеся товары» и т.д.
Суть работы плагина заключается в следующем: для каждого товара на сайте будет добавлена ссылка для сохранения в Избранном. Пользователю не нужно будет засорять закладки своего браузера, чтобы сохранить ссылку на понравившийся товар, мы сохраним ее для него в данных сайта. Пользователю необязательно авторизоваться, ссылки, добавленные им, будут храниться на том компьютере и в том браузере, где он открыл данный интернет-магазин. В проекте Website X5 необходимо будет создать страницу, на которой будут выводиться карточки товаров, добавленных в Избранное.
Демонстрация работы скрипта находится здесь. Для добавления/удаления понравившихся товаров нажмите зведочку в левом верхнем углу карточки товара. Список ваших отобранных товаров можно посмотреть, перейдя по ссылке «Избранное» в меню.
Базовую версию плагина можно сачать бесплатно по ссылке внизу статьи.
Для установки скрипта надо сделать следующее.
-
Создать страницу для товаров, добавленных пользователем в Избранное, задать в свойствах страницы ее имя файла favourites и задать расширение php на вкладке «Эксперт».
(Использую немного усовершенствованный php — движок, который я сделал для скрипта «Живого поиска». Поэтому имя файла я оставил прежнее).
(Использую здесь также файлы движка скрипта «Живой поиск», поэтому имена их оставил прежние).
add_live_search.php — в корень сайта.
live_search_min.css , live_search_min.js , favourites_min.js — в папку /files
star_1.png , star_2.png — в папку /cart/images
Если у вас есть замечания и предложения, или что-то не получается, или есть идеи по созданию новых скриптов и плагинов для WebsiteX5, прошу писать об этом ниже в комментариях или на форуме .
Добавление в избранное или отложенные, на AJAX из карточки товара
В этой заметке рассакажу как добавлять товары в «Отложенные», для иммитации функционала «Избранное». Для этого будем использовать API 1С-Битрикс. Добавление будет происходить на AJAX- без перезагрузки страницы
Выводим количество отложенных товаров
В штатной корзине sale.basket есть отложить товар. Наша задача вывести количество отложенных товаров в шаблоне сайта, например в шапке и назвать «Избранное»- вот в таком виде:

Для этого, в нужном месте шаблона выводим следующий код:
В переменную $delaydBasketItems — мы передали и вывели количество отложенных товаров, отфильтровав их параметром «DELAY» => «Y». Если не использовать данный параметр- нам выведется общее количество товаров в корзине, вместе с готовыми к покупке.
Создаем обработчик для добавления товара из карточки.
Далее создаем файл wishlist.php и ложим его в директорию /local/ajax/. Внутри этого файла размещаем следующий код (подсказки по коду в комментриях)
Этот обработчик будет получать событие о добавлении товара в отложенные. В детальной карточке товара размещаем скрипт который будет обращаться, к созданному выше обработчику, точнее передавать в него параметры товара:
При клике, на эту ссылку, товар будет добавлен в отложенные и самой ссылке присвотся класс in_wishlist- что бы можно было ее стилизовать под дизайн
Обновление счетчика отложенных
И еще одна мелочь. Это обновление счетчика Избранных в шапке сайта. Что бы он обновлялся на лету- просто обворачиваем вывод счетчика (созданный выше) в div c id wishcount. Вот так
Что бы не сбрасывался стиль кнопки, в карточке товара- если данный товар есть в отложенных
Выше, мы просто проверили наличие данного товара (по его ID), есть ли он в отложенных. Если есть, загнали в переменную $itInDelay его ID. В самой кнопке-ссылке, проверили на существование переменной $itInDelay (точнее, что она не пустая)
Более наглядное применение в видео-инструкции.
Данное видео является одной из серий (19) курса по разработке интернет-магазина на Битрикс
На этом все. Заметка написана на базе темы на офицальном форуме Битрикс . Дополнена не достающими фактами.
Поддержать выпуски видео уроков, поблагодарить за полезную инструкцию или заметку можно через:
Добавление товара в избранное

Ссылку для добавления в избранное можно сделать в любом блоке. Если вы используете блок не из категории «Магазин», пропишите ссылку:
#addtofavorites:Название товара =1000
где «Название товара» — название товара, «1000» — цена.


Время хранения товара в избранном
Если покупатель добавил товар в избранное на одной странице, а потом перешел на другую или даже ушел с сайта, товар останется в избранном на 30 дней.
Это время можно изменить в Настройках блока → Дополнительные настройки → Количество дней хранения товара в избранном.