Сортировка товаров WooCommerce, нет в наличии ставим в конец перечня товаров
Недавно получил аудит от клиента и в нем была одна интересная задача которую часто внедряют в интернет магазины для удобства посетителей «Сортировка товаров WooCommerce, не в наличии ставим в конец перечня товаров».
Первое что я сделал поискал как решить задачу средствами WooCommerce, но так и не нашел. Стандартно плагин магазина предлагал исключать товары из списка в категории и если в категории больше не было товаров в наличии она бы пропадала из меню, при этом ссылки на товары оставались бы активными. Идея конечно хорошая, и для поиска нормально, но то что категория будет пропадать или оставаться пустой это не хорошо. И тут я приступил googl-ит.
Покопавшись немного я нашел 2 решения о которых и расскажу ниже. Каким пользоваться выбирать вам!
Сортировка товаров WooCommerce при помощи add_action( ‘pre_get_posts’, … )
При помощи экшена и функции мы получаем запрос который будет направлен в базу данных, если запрос получен успешно, то видоизменяем его при помощи . $query->set( ‘meta_key’, ‘_stock_status’ ) и $query->set( ‘meta_key’, ‘_stock_status’ ). Эти 2 простые строки означают на человеческом языке следующее. Сортировать получаемые данные по полю _stock_status в алфавитном порядке если 2 товара будут одной даты, то более новый товар ставь первым. Код этого экшена нужно добавлять в файл functions.php
1 2 3 4 5 6 7 8 9 |
add_action( 'pre_get_posts', 'mik_exclude_category' ); function mik_exclude_category( $query ) { if ( $query->is_main_query() ) { $query->set( 'meta_key', '_stock_status' ); $query->set( 'orderby', array('meta_value' => 'ASC', 'date' => 'DESC') ); } } |
Код получился простой и рабочий. Это действие можно сделать также при помощи плагина WooCommerce Extra Product Sorting Options.
Сортировка товаров по наличию при помощи плагина WooCommerce Extra Product Sorting Options
Есть отличный плагин для сортировки товаров WooCommerce Extra Product Sorting Options в котором через админку WordPress можно выбрать способы сортировки, а потом в настройках WooCommerce выбрать по умолчанию сортировку по наличию товаров. Сделать это можно через меню в панели администратора WooCommerce -> настройки -> вкладка Товары -> Отображение -> пункт Сортировка продуктов по умолчанию и Add Product Sorting. Также при помощи плагина вы можете добавить несколько новых вариантов сортировки в фильтр.
Плагин работает на английском языке и для его перевода придется использовать программу Poedit или плагин Loco Translate. Перед началом перевода не забывайте делать копии файлов сайта. Удачной работы над удобными интернет магазинами, которых любят поисковые системы.

/*

- Базовый курс по веб-дизайну;
- Верстка сайтов;
- Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
- Разработка сайтов на PHP.