Оглавление
WooCommerce
Самый распространённый интернет-магазин — плагин для WordPress: товары, корзина, заказы, оплата и доставка.
1.Начало работы
- Что такое WooCommerceЗнакомство с WooCommerce: плагин магазина для WordPress, что он добавляет на сайт, из чего состоит и что нужно знать перед началом.
- Установка и первая настройкаКак установить WooCommerce, пройти мастер настройки, добавить первый товар и проверить страницы магазина.
- Где хранятся данныеГде WooCommerce хранит товары, заказы, покупателей и настройки, что такое HPOS и как обращаться к данным через объект WC() и функции.
- Свой плагин для доработокКак создать плагин acme-shop для кода магазина: заголовок, проверка WooCommerce, раскладка файлов, объявление совместимости с HPOS и куда код писать нельзя.
- Хуки: действия и фильтрыНапоминание о хуках на примерах WooCommerce: чем действие отличается от фильтра, что такое приоритет и число аргументов и как найти нужный хук.
2.Товары
- Объект товара: чтениеКак получить товар в коде через wc_get_product и прочитать его свойства: название, цену, артикул, остаток, картинку и ссылку.
- Изменение и создание товаровКак менять товар методами set и save, создавать товары в коде и хранить собственные данные в метаданных товара.
- Виды товаров и вариацииПростой, вариативный, сгруппированный и внешний товар в WooCommerce: как узнать вид товара, прочитать вариации и создать вариацию в коде.
- Категории, метки и атрибутыТаксономии товаров WooCommerce: категории product_cat, метки product_tag, глобальные атрибуты pa_, чтение терминов через wc_get_product_terms и привязка к товару.
- Поиск товаровКак выбирать товары в коде: функция wc_get_products, её параметры, постраничный вывод, класс WC_Product_Query и поиск по собственным метаданным.
- Свои поля товара в панелиКак добавить собственное поле в редактор товара WooCommerce, сохранить его значение, вывести на витрине и показать столбцом в списке товаров.
3.Витрина
- Хуки каталога и страницы товараКак устроены страницы WooCommerce: карта хуков и приоритетов на странице товара и в каталоге, добавление, удаление и перестановка блоков.
- Тема: поддержка WooCommerce и стилиКак создать дочернюю тему для магазина, объявить поддержку WooCommerce, подключить свои стили и использовать классы body страниц магазина.
- Подмена шаблоновКак изменить шаблон WooCommerce копией в папке woocommerce темы, как выводить собственный шаблон плагина через wc_get_template и следить за устаревшими копиями.
- Блочные и классические корзина и оформлениеЧем блочные страницы корзины и оформления заказа WooCommerce отличаются от классических шорткодов, какие хуки где работают и как узнать и сменить вариант.
4.Корзина и оформление заказа
- КорзинаОбъект корзины WC()->cart: как прочитать позиции и суммы, добавить и удалить товар в коде и проверить добавление в корзину.
- Сборы, скидки и цена в корзинеКак добавить в корзину WooCommerce сбор или скидку через add_fee и изменить цену товара в корзине хуком woocommerce_before_calculate_totals.
- Данные позиции корзиныКак передать собственные данные со страницы товара в корзину и дальше в заказ: поле гравировки, фильтр woocommerce_add_cart_item_data и метаданные позиции заказа.
- Поля оформления заказа и проверкаКак убрать, изменить и добавить поля классической формы оформления заказа WooCommerce, проверить ввод, сохранить значение в заказ и что делать в блочном оформлении.
- КупоныКупоны WooCommerce в коде: объект WC_Coupon, создание купона программно, применение к корзине и собственное условие через фильтр woocommerce_coupon_is_valid.
- Формат цен и налогиКак выводить цены в WooCommerce: функция wc_price, валюта магазина, цена с налогом и без через wc_get_price_including_tax и настройки налогов.
5.Заказы и покупатели
- Заказы: чтениеОбъект заказа WC_Order: как получить заказ, прочитать суммы, адреса и позиции и найти заказы функцией wc_get_orders.
- Состояния заказаСостояния заказа WooCommerce, как менять состояние в коде, какие хуки срабатывают при смене и как добавить собственное состояние.
- Создание и изменение заказов, HPOSКак создать заказ в коде через wc_create_order, изменить его, хранить собственные данные в метаданных заказа и какие правила диктует хранилище HPOS.
- Покупатели и раздел «Мой аккаунт»Объект WC_Customer: чтение и изменение данных покупателя, собственные метаданные и добавление своей вкладки в раздел «Мой аккаунт».
- Письма магазинаКак устроены письма WooCommerce: настройка в панели, изменение темы и заголовка фильтрами, добавление содержимого через хуки и подмена шаблона письма.
- Собственное письмоКак добавить в WooCommerce своё письмо: класс на основе WC_Email, шаблон письма в плагине, регистрация и отправка при смене состояния заказа.
6.Настройки, оплата и доставка
- Свои настройки магазинаКак добавить раздел или собственную вкладку на страницу настроек WooCommerce, описать поля массивом и прочитать сохранённые значения через get_option.
- Способ оплатыКак написать платёжный шлюз WooCommerce: класс на основе WC_Payment_Gateway, настройки, метод process_payment, переход на страницу банка и обработка его уведомления.
- Способ доставкиКак написать свой способ доставки WooCommerce: класс на основе WC_Shipping_Method, зоны доставки, настройки экземпляра, метод calculate_shipping и фильтр стоимости.
7.Интеграции и запуск
- REST APIREST API WooCommerce: ключи доступа, адреса товаров и заказов, чтение и изменение данных по HTTP, своё поле в ответе и собственный маршрут.
- ВебхукиВебхуки WooCommerce: как настроить отправку событий магазина на внешний адрес, что приходит в запросе, как проверить подпись и создать вебхук в коде.
- Фоновые задачи: Action SchedulerКак выполнять долгую работу в фоне с Action Scheduler в WooCommerce: разовые, отложенные и повторяющиеся задачи, просмотр очереди в панели и запуск из консоли.
- Команды WP-CLIУправление магазином WooCommerce из консоли: команды wp wc для товаров, заказов и покупателей, служебные инструменты и собственная команда плагина.
- Производительность, кеш и запускЧто проверить перед запуском магазина на WooCommerce: какие страницы нельзя кешировать, как не замедлить магазин своим кодом, системный планировщик и список проверок.