В прошлых статьях мы изменили внешний вид главной станицы интернет-магазина с помощью дочерней темы Storefront. Мы научились добавлять новые элементы и менять уже существующие с помощью action и filter hooks. Для этого установили плагины Simply Show Hooks и Query Monitor. Сегодня узнаем, какие изменения можно внести на страницу магазина и как это сделать (на примерах).
Настройка страницы магазина – вывод кода валюты рядом с символом
Это изменение касается не только страницы магазин, но и остальных страниц. Часто возникает необходимость отображать не только значок, но и символ валюты, которая используется в магазине.
Список подобных символов можно найти в википедии https://en.wikipedia.org/wiki/ISO_4217
Чтобы вывести кода валюты рядом с символом, добавим в functions.php следующий код
/* вывод названия валюты рядом с символом */ function carolinaspa_usd($symbol, $currency){ $symbol = $currency . " $"; return $symbol; } add_filter('woocommerce_currency_symbol', 'carolinaspa_usd', 10, 2);
Как поменять количество колонок на странице магазина
По умолчанию woocommerce выводит 10 продуктов на странице. Чтобы поменять количество товаров нужно прописать следующие строки в functions.php
/* поменять количество продуктов на странице магазина */ function products_per_page($products){ $products = 3; return $products; } add_filter('loop_shop_per_page', 'products_per_page', 20);
Как видно на скриншоте теперь на странице видно только 3 товара и появилась пагинация.
Также можно поменять количество столбцов на странице
/* поменять количество колонок на странице магазина */ function carolinaspa_colums_per_page($colums) { return 5; // выведет 5 товаров на странице } add_filter('loop_shop_columns', 'carolinaspa_colums_per_page', 20);
Настройка страницы магазина — Фильтры
Вот как выглядят фильтры на странице по умолчанию. Название «сортировка по более позднему» звучит не очень красиво. Давайте поменяем его
Выведем массив фильтров на экран
function carolinaspa_new_filter($orderby) { echo '<pre>'; var_dump ($orderby); echo '</pre>'; } add_filter('woocommerce_catalog_orderby', 'carolinaspa_new_filter', 40);
Поменяем название фильтра
Для начала нужно удалить строку «сортировка по более позднему» из списка.
Как удалить элемент фильтра
function carolinaspa_new_filter($orderby) { unset($orderby ["date"]); return $orderby; } add_filter('woocommerce_catalog_orderby', 'carolinaspa_new_filter', 40);
А затем добавить новую
/* Поменять название фильтра */
function carolinaspa_new_filter1($orderby1) { $orderby1['date'] = _('По дате'); return $orderby1; } add_filter('woocommerce_catalog_orderby', 'carolinaspa_new_filter1', 40);
В следующей статье поработаем со страницей вывода товара.