В интернете на всевозможных блогах и сайтах можно встретить практически один и тот-же код php который позволяет добавить свои сортировки товаров.
Этот код работает и сортирует, но сложности возникают при сортировке русских наименований товаров, при этом в комментариях под подобными материалами пользователи спрашивают почему вместо последовательности букв А,Б,В,Г и .тд вдруг товары сортируются в хаотичной последовательности, например идёт буква А, потом Б, потом буква Ф и т. д.
Ответ прост, в этом коде при подобной сортировке вам не нужно использовать $args[«meta_key»] = «»;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// Варианты сортировки 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); |