Ваш путь: Главная » WooCommerce и WordPress » ( читаемый пост: перейти в Читаемое )
возможно заказать разработку или сопровождение, услуги вашего сайта/блога

написано: — 
отредактировано: 2020-12-28
издатель: в теме: WooCommerce и WordPress
Запросто с WordPress — создание сайтов ATs media

Как сделать произвольную сортировку товаров в WooCommerce — опции сортировки WooC

Нередки ситуации, когда перед администратором магазина возникает задача по настройкам сортировки товаров в каталоге woocommerce. Иногда требуются нестандартные решения! Например, произвольная сортировка… Все эти задачи возможно и нужно решать!

 

Варианты решений, в общем-то, простые, — однако, об этих решениях нужно узнать, к тому же, во всём есть кое-какие нюансы, о которых нужно знать прежде, чем выбирать способы и варианты решений, так как и варианты реализации сортировки имеют свои нюансы.

 

В статье рассмотрим подробнейшим образом — и по шагам — вопросы по типам настроек сортировки товаров в каталоге магазина. Узнаем об опциях сортировки.

 

Но давайте с примерами и по порядку:

 


 

 

 

 

 

возможные опции сортировки товаров в WooCommerce — по умолчанию

 

 

 

 

Настройки опций WooC в шаблоне расположены здесь: Внешний вид/Настройки/woocommerce/…

 

 

сортировка WooCommerce

 

 

Выпадающий список настроек сортировки товаров в каталоге магазина выглядит примерно так (к выбору сортировки имеют доступ все пользователи — если не настроены некие условия woocommerce по ролям /условные теги woocommerce/):

 

 

опции сортировки WooC

 

 

 

Как видите, возможности вариантов сортировки по умолчанию такие:

 

 

  • По популярности,
  • Сортировка по более позднему,
  • По новизне,
  • Цены: по возрастанию,
  • Цена: по убыванию.

 

 

 

к оглавлению

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/ в этом случае такой настройки не появится.

 

Как добавить произвольные поля сортировки в опции Настроек в админке, к примеру, при создании шаблона, рассмотрим в другой теме.

 

 

 

к оглавлению

как удалить некоторые ненужные варианты сортировки из списка выбора

 

 

 

 

Для того, чтобы удалить элементы сортировки товаров в выпадающем списке в каталоге, воспользуемся фильтром (или фильтрами, в зависимости от требований) В арсенале этих фильтров 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 !


Михаил ATs - владелец блога запросто с Вордпресс - в сети нтернет давным-давно...

...веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети... - заказы, вопросы... разработка...




Нажатия на кнопочки определяют Ваше высокое гражданское сознание
Удачи в работе и творчестве..!
Статьи по теме:


Поделитесь соображениями: Ваши мысли очень важны!

Внимание! Обязательные поля помечены *

  отныне доступен плагин: ats privacy policy ©