@Anonimmus

Как сортировать вариативные товары по цене дороже?

Доброе утро товарищи.
Из коробки вукомерс сортирует товары немного неверно, то есть товары вариации.

Используя этот код я могу регулировать сортировку, однако у меня появилась проблемка. Сортировка от дорого к дешевому курсу отображается не верно. Прошу вашей помощи.

add_filter('woocommerce_get_catalog_ordering_args', 'woocommerce_get_catalog_ordering_name_args');
function woocommerce_get_catalog_ordering_name_args($args)
{
  if (isset($_GET['orderby'])) {
    switch ($_GET['orderby']):
      case 'name_list_asc':
        $args['orderby'] = 'meta_value';
        $args['order'] = 'ASC';
        $args['meta_key'] = 'courses-page_description_start_date';
        break;
      case 'price-desc':
        $args['orderby'] = '_regular_price';
        
        $args['order'] = 'DESC';
        $args['type'] = 'product';
        $args['meta_key'] = '_price';
        
        break;
      case 'name_list_desc':
        $args['orderby'] = 'title';
        $args['order'] = 'DESC';
        $args['meta_key'] = '';
        break;
    endswitch;
  } else {
    $args['orderby'] = 'meta_value';
    $args['order'] = 'ASC';
    $args['meta_key'] = 'courses-page_description_start_date';
  }

  return $args;
}


629071dbe41ec501146733.png

Используемая цена для карточек товара является переменной.
$product->get_variation_sale_price('min', true)

https://litschool.stebnev.ru/webinars/?orderby=pri...
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
Keylei
@Keylei
В woo есть встроенная сортировка. Зачем тебе всё это непонятно.
<?php
add_filter('woocommerce_catalog_orderby', 'wc_customize_product_sorting');

function wc_customize_product_sorting($sorting_options){
    $sorting_options = array(
        'popularity' => __( 'Популярные', 'woocommerce' ),
        'date'       => __( 'Новинки', 'woocommerce' ),
        'price'      => __( 'Сначала дешёвые', 'woocommerce' ),
        'price-desc' => __( 'Сначала дорогие', 'woocommerce' ),
        'rating'     => __( 'Высокий рейтинг', 'woocommerce' ),
    );

    return $sorting_options;
}
?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы