Не работает сортировка по цене woocommerce
Проблема:
Работая над одним из интернет магазинов, который работает на плагине woocommerce, обнаружил такую проблему: сортировка по цене работает не правильно. Когда мы выбираем сортировку «по цене (по убыванию)», то логично было бы увидеть вверху самый дорогой товар, а внизу самый дешевый, но сортировка показывает сначала самый дешевый товар, а в конце самый дорогой. Тоже самое происходит и с другим способом сортировки «по цене (по возрастанию)», только наоборот.
Причина:
Проблема заключается в неправильном переводе, или я бы сказал, понимании значения слов. По сути сортировка работает правильно если учесть, что в коде написано low to high, что в переводе означает «от низкого к высокому», но в переводе на русский мы видим слова «по убыванию», поэтому сортировка по цене работает не правильно.
Решение:
Для того, что у нас все работало правильно, нам необходимо внести некоторые изменение в коде плагина, а точнее в файле orderby.php, который находится по адресу wp-content /plugins/ woocommerce/ templates/ loop/ orderby.php. Находим и открываем его. Вы можете сделать это через ftp клиент или если же ваш хостинг-провайдер позволяет редактировать файл через панель управления, то можно изменять файл напрямую.
Итак, в файле orderby.php находим строки:
'price-desc' => __( 'Sort by price: low to high', 'woocommerce' ), 'price' => __( 'Sort by price: high to low', 'woocommerce' ),
нас интересуют команды «low to hight» и «high to low», нам необходимо поменять их местами так, как показано ниже:
'price-desc' => __( 'Sort by price: high to low', 'woocommerce' ), 'price' => __( 'Sort by price: low to high', 'woocommerce' ),
Теперь осталось только сохранить и радоваться.
Нет такого в последней версии Woocommerce к сожалению.