Сортировка товаров у woocommerce по артикулу

Всем привет. Вчера у меня была интересная задачка, человек пытался сделать сортировку товаров у плагине WordPress Woocommerce стандартными методами + нестандартными, в итоге сайт упал. Проблему решили, сайт заработал, woocommerce сортировка товаров по артикулу тоже заработала. Сейчас хочу поделиться с вами кодом и пошаговым руководством.

Woocommerce сортировка товаров через настройки

У плагина вукомерц, есть своя штатная настройка сортировки. Находится она по ссылке вашдомен/wp-admin/admin.php?page=wc-settings&tab=products&section=display ниже на скине видно какие вкладки я открывал (изображение кликабельно):

woocommerce сортировка товаров

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

Далее, я покажу вам, как эту проблему можно исправить.

 

Произвольная сортировка Woocommerce

Как сортировать товары у Woocommerce по артикулу

Вам нужно открыть файл functions.php вашей темы в редакторе и забросить туда вот такой несложный код:

add_filter('woocommerce_get_catalog_ordering_args', 'my_woocommerce_order');
function my_woocommerce_order($args){
 $args['meta_key']='_sku';
 $args['orderby']='meta_value';
 $args['order']='asc';
 return $args;
}

!!! Вместо строчки $args['order']='asc'; можно писать $args['order']='desc'; - для обратной сортировки!!!

Код нужно добавлять вот так как у меня на скине ниже:

Этот пример отключить возможность штатной сортировки, её настройки станут не действительны, пока в коде темы будет этот код.

 

Woocommerce сортировка по наличию товара

Бывает необходимость сортировать товары, по их наличию. Для этого нам нужно немного модифицировать наш код выше. Он будет выглядеть теперь вот так:

add_filter('woocommerce_get_catalog_ordering_args', 'my_woocommerce_order');
function my_woocommerce_order($args){
 $args['meta_key']='_stock_status';
 $args['orderby']='meta_value';
 $args['order']='asc';
 return $args;
}

Как вы поняли, вместо _stock_status можно писать название любого произвольного поля и wordpress будет сортировать ваши товары в каталоге по этому параметру.

 

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

Всем спасибо за внимание, не забывайте делиться этим постом с друзьями в соц. сетях:

Комментарии к записи «Сортировка товаров у woocommerce по артикулу»:
Сделать заказ
Онлайн помощь по WordPress