Сортируйте товары по алфавиту, если цены равны. ⇐ Php
-
Гость
Сортируйте товары по алфавиту, если цены равны.
По какой-то причине Woocommerce сортирует по цене, в случае равенства цен он прибегает к сортировке по идентификатору продукта, а не по алфавиту. Это действительно не интуитивно понятно для клиентов (кого волнует, когда был создан продукт? Это должно применяться только к сортировке по «новому»). Я хочу изменить сортировку по цене по умолчанию, чтобы прибегнуть к сортировке по алфавиту, если цены равны. К сожалению, мой код этого не достигает. Есть ли у кого-нибудь предложение? Спасибо.
function replace_default_sorting_option($options) { $options['custom_sort'] = 'Пользовательская сортировка'; // Замените «custom_sort» своим ключом и «Custom Sort» своей меткой unset($options['price-desc']); // Удалить опцию нисходящей цены по умолчанию вернуть $опции; } add_filter('woocommerce_catalog_orderby', 'replace_default_sorting_option'); функция custom_product_sort($query) { if (is_admin() || !$query->is_main_query()) возвращаться; if (is_shop() || is_product_category() || is_product()) { $orderby = $query->get('orderby'); if ($orderby === 'custom_sort') { $query->set('orderby', 'meta_value_num title'); // Сортировка по цене и названию $query->set('order', 'DESC ASC'); // Цена по убыванию, заголовок по возрастанию } } } add_action('pre_get_posts', 'custom_product_sort');
По какой-то причине Woocommerce сортирует по цене, в случае равенства цен он прибегает к сортировке по идентификатору продукта, а не по алфавиту. Это действительно не интуитивно понятно для клиентов (кого волнует, когда был создан продукт? Это должно применяться только к сортировке по «новому»). Я хочу изменить сортировку по цене по умолчанию, чтобы прибегнуть к сортировке по алфавиту, если цены равны. К сожалению, мой код этого не достигает. Есть ли у кого-нибудь предложение? Спасибо.
function replace_default_sorting_option($options) { $options['custom_sort'] = 'Пользовательская сортировка'; // Замените «custom_sort» своим ключом и «Custom Sort» своей меткой unset($options['price-desc']); // Удалить опцию нисходящей цены по умолчанию вернуть $опции; } add_filter('woocommerce_catalog_orderby', 'replace_default_sorting_option'); функция custom_product_sort($query) { if (is_admin() || !$query->is_main_query()) возвращаться; if (is_shop() || is_product_category() || is_product()) { $orderby = $query->get('orderby'); if ($orderby === 'custom_sort') { $query->set('orderby', 'meta_value_num title'); // Сортировка по цене и названию $query->set('order', 'DESC ASC'); // Цена по убыванию, заголовок по возрастанию } } } add_action('pre_get_posts', 'custom_product_sort');
Мобильная версия