Woocommerce — сортировка по наименованию

На просторах интернета во всевозможных блогах и сайтах можно встретить практически один и тот-же код для woocommerce который позволяет добавить свои сортировки товаров.
Этот код работает и сортирует. Но сложности возникают при сортировке русских наименований товаров, при этом в комментариях под подобными материалами пользователи спрашивают почему вместо последовательности букв А,Б,В,Г и .тд вдруг товары сортируются в хаотичной последовательности, например идёт буква А, потом Б, потом буква Ф и т. д.
Ответ прост, в этом коде при подобной сортировке вам не нужно использовать $args[‘meta_key’] = «»;

// Варианты сортировки Woocommerce

add_filter('woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_name_args');

function custom_woocommerce_get_catalog_ordering_name_args($args) {
    $orderby_value = isset($_GET['orderby']) ? woocommerce_clean($_GET['orderby']) : apply_filters('woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby'));

    if ('name_list_asc' === $orderby_value) {
        $args['orderby'] = 'name'; // поле для сортировки
        $args['order'] = 'ASC'; //Направление сортировки
        // $args['meta_key'] = '';
    } elseif ('name_list_desc' === $orderby_value) {
        $args['orderby'] = 'name';
        $args['order'] = 'DESC';
        //  $args['meta_key'] = '';
    }

    return $args;
}

add_filter('woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_name_orderby');
add_filter('woocommerce_catalog_orderby', 'custom_woocommerce_catalog_name_orderby', 1);

Все возможные варианты полей для сортировки здесь

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *