Нередки ситуации, когда перед администратором магазина возникает задача по настройкам сортировки товаров в каталоге woocommerce. Иногда требуются нестандартные решения! Например, произвольная сортировка… Все эти задачи возможно и нужно решать!
Варианты решений, в общем-то, простые, – однако, об этих решениях нужно узнать, к тому же, во всём есть кое-какие нюансы, о которых нужно знать прежде, чем выбирать способы и варианты решений, так как и варианты реализации сортировки имеют свои нюансы.
В статье рассмотрим подробнейшим образом – и по шагам – вопросы по типам настроек сортировки товаров в каталоге магазина. Узнаем об опциях сортировки.
Но давайте с примерами и по порядку:
- возможные опции сортировки товаров в WooCommerce – по умолчанию
- woocommerce_catalog_orderby – хук
- как удалить блок выпадающего списка для выбора сортировки категорий товаров
- как удалить один из вариантов сортировки – по дате
- как добавить свой вариант сортировки товаров woocommerce
- как удалить некоторые ненужные варианты сортировки из списка выбора
- как сделать произвольную сортировку категорий товаров в WooCommerce
возможные опции сортировки товаров в WooCommerce – по умолчанию
Настройки опций WooC в шаблоне расположены здесь: Внешний вид/Настройки/woocommerce/…
Выпадающий список настроек сортировки товаров в каталоге магазина выглядит примерно так (к выбору сортировки имеют доступ все пользователи – если не настроены некие условия woocommerce по ролям /условные теги woocommerce/):
Как видите, возможности вариантов сортировки по умолчанию такие:
- По популярности,
- Сортировка по более позднему,
- По новизне,
- Цены: по возрастанию,
- Цена: по убыванию.
woocommerce_catalog_orderby – хук
Настроить сортировку возможно при помощи хука woос:
woocommerce_catalog_orderby
– хук/фильтр. от WC 1.0
Функции сортировки в плагине woocommerce ищем по такому пути: woocommerce/includes/wc-template-functions.php
Работа с хуком позволит изменить варианты сортировки товаров на страницах (в каталогах) магазина.
Пример использования фильтра таков:
add_filter( 'woocommerce_catalog_orderby', '_name_filter_function' );
function _name_filter_function( $array ) {
// Условия фильтра - filter...
return $array;
}
$array – массив; обязательный…
Массив вариантов сортировки по умолчанию:
array(
'menu_order' => __( 'Default sorting', 'woocommerce' ),
'popularity' => __( 'Sort by popularity', 'woocommerce' ),
'rating' => __( 'Sort by average rating', 'woocommerce' ),
'date' => __( 'Sort by latest', 'woocommerce' ),
'price' => __( 'Sort by price: low to high', 'woocommerce' ),
'price-desc' => __( 'Sort by price: high to low', 'woocommerce' ),
)
Можно исключать, либо добавлять свои варианты для выпадающего списка (подробнее ниже).
полезно почитать по настройкам магазина на Вукомерц:
Добавляем краткое описание (Description) к товару…
Подборка полезного кода (сниппеты) для работы магазина на WooCommerce…
Woocommerce шорткоды и их применение…
Настройка, использование и удаление виджетов WooCommerce из админки.
Как отключить проверку уровня сложности пароля woocommerce (форма регистрации).
Отключаем подгрузку стилей, скрипов для страниц, не относящихся к Wooсommerce
как удалить блок выпадающего списка для выбора сортировки категорий товаров
Следует иметь в виду, что удалить разом все варианты сортировки возможно в настройках шаблона “Убрать выпадающий список сортировки” (некоторые шаблоны имеют такую настройку).
1 – вариант (если этот список необходим в исходном коде шаблона, например, типа для микроразметки) то это делается средствами css примерно таким образом.
.woocommerce-ordering{
display: none;
}
2 – вариант, чистое и полное удаление выпадающего списка (нет в исходном коде): добавим всего одну строку в файл functions.php или созданный для функций woocommerce собственный плагин):
/*удалим блок выпадающего списка для выбора сортировки категорий товаров*/
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
/*удалим блок выпадающего списка для выбора сортировки категорий товаров*/
как удалить один из вариантов сортировки – по дате
add_filter( 'woocommerce_catalog_orderby', 'ats_remove_default_sort_no_date' );
function ats_remove_default_sort_no_date( $array ) {
unset( $array[ 'date' ] ); // укажем ненужный вариант (сравните с кодом выше)
return $array;
}
Примеры имён вариантов сортировки выше.
Теперь посмотрим, как добавить произвольную сортировку товаров woocommerce/
как добавить свой вариант сортировки товаров woocommerce
В качестве примера добавим “Случайный порядок”… Возможно добавлять свои варианты! Функции создавать произвольные – уникальные!
Например, добавим рандомный вариант сортировки (или Случайный):
add_filter( 'woocommerce_catalog_orderby', 'ats_sorting_by_new_random' );
function ats_sorting_by_new_random( $array ) {
//$array['random'] = __( 'Random', 'woocommerce' ); // укажем вариант обработки сортируемых товаров: по умолчанию
$array['random'] = __( 'Случайные', 'woocommerce' ); //
return $array;
}
Получится примерно так:
Вариант рандомно и пр. добавится только в выпадающий список (фронтэнд) то есть, к которому имеют доступ пользователи! Во Внешний вид/Настройки/woocommerce/ в этом случае такой настройки не появится.
Как добавить произвольные поля сортировки в опции Настроек в админке, к примеру, при создании шаблона, рассмотрим в другой теме.
как удалить некоторые ненужные варианты сортировки из списка выбора
Для того, чтобы удалить элементы сортировки товаров в выпадающем списке в каталоге, воспользуемся фильтром (или фильтрами, в зависимости от требований) В арсенале этих фильтров woocommerce_default_catalog_orderby_options
и woocommerce_catalog_orderby
доступна переменная, выражает массив опций сортировки.
Этот массив позволяет легко удалить элемент (или переменную, кому как угодно для понимания) посредством unset()
.
Давайте попробуем удалить некоторые варианты сортировки:
add_filter('woocommerce_catalog_orderby', 'remove_default_ats_wooc_catalog_orderby');
function remove_default_ats_wooc_catalog_orderby($args){
unset($args['popularity']); // по популярности
unset($args['rating']); // по рейтингу
// и т.д...
return $args;
}
как сделать произвольную сортировку категорий товаров в WooCommerce
Если вы используете какую-то созданную произвольно страницу под каталог товаров, то выводить ссылки блоков категорий возможно посредством шорткодов woocommerce – к слову говоря, шорткоды wooc очень полезная опция, которую следует изучить (по ссылке ниже).
А пока вкратце:
|product_categories parent="0" number="1" ids= "222"|
Выведет только родительские категории потому что parent="0"
.
ids
= возможно добавлять ID через запятую: ids= “222,223”
Более подробно описано здесь.
Как настроить сортировку в категории товаров магазина wooc описано в этом посте.
На этом пока всё!
Подключаем Турбо Страницы Яндекса (на канале – видео о том, как удалить эти Турбо страницы из индекса Я.
mihalica.ru !