Как отсортировать продукт WooCommerce по признакам или тегам без дополнительных плагинов?

Я использую шорткод, чтобы перечислить категорию продукта, как это

[product_category category="products" orderby="title" order="asc"]

И задаетесь вопросом, как сделать так, чтобы рекомендуемые продукты были на вершине списка? Это как-то связано с параметр orderby, но я понятия не имею.

Пожалуйста, не предлагайте сторонние плагины.
Больше информации в официальном WooCommerce документы.

0

Решение

Продукт имеет настраиваемое поле как _featured который установлен как yes
для рекомендуемого продукта и no для неучтенного продукта. Так что вы можете
использование woocommerce_shortcode_products_query фильтр для перезаписи
WooCOmmerce шорткод.

add_filter('woocommerce_shortcode_products_query', 'wh_woocommerce_shortcode_products_orderby');

function wh_woocommerce_shortcode_products_orderby($args)
{

$standard_array = ['menu_order', 'title', 'date', 'rand', 'id'];
//  print_r($args['orderby']);
if (isset($args['orderby']) && !in_array($args['orderby'], $standard_array))
{
$args['meta_key'] = '_featured';
$args['orderby'] = 'meta_value_num';
}
//  print_r($args);
return $args;
}

Код помещается в файл function.php вашей активной дочерней темы (или темы). Или также в любом файле плагина php.

ИСПОЛЬЗОВАНИЕ
Для того чтобы перечислить форму продукта, отобранную для нереализованной (то есть форму yes в no)

[product_category category="products" orderby="_featured" order="DESC"]

Пожалуйста, обратите внимание:: приведенный выше код, кажется, работает, но если вы печатаете $args['orderby'] это не показывает _featured ключ, так что я жестко запрограммирован, это в $args, Это не стандартный способ.

Надеюсь это поможет!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]