Поддержка WooCommerce Сортировка по цене

  • Добрый день. Не понимаю в чём может быть проблема. Сортировка по цене (по возрастанию/убыванию) работает не совсем корректно. Например, если брать по возрастанию, то порядок такой:
    1011.84 Br
    53.77 Br
    53.83 Br
    53.89 Br
    и т.д., то есть проблема,как я понял, если есть цены больше 999, то при сортировке по возрастанию они оказываются вверху. Может кто-нибудь сталкивался с таким?

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Модератор Yuri

    (@yube)

    если есть цены больше 999, то при сортировке по возрастанию они оказываются вверху.

    Очень похоже на сортировку как текста, а не как числа. Почему — другой вопрос, требующий уточнений: где эта сортировка, чем делается и т.д. В относительно чистом WC я такого эффекта не замечал.

    Сайт https://osto.by/product-category/shiny/. Две кнопки: сначала дорогие, сначала дешевые

    • Ответ изменён 5 лет, 5 месяцев назад пользователем usermaxim.
    Модератор Yuri

    (@yube)

    проблема,как я понял, если есть цены больше 999

    Боюсь, Вы поставили неправильный диагноз. Похоже, сортировка по цене работает по какой-то своей непостижимой логике. По крайней мере, я пока не вижу логики в ряду 1581.68 — 1114.75 — 1169.43 — 1352.34.

    screenshot

    Попробуйте поотключать плагины, влияющие на сортировку и/или фильтрацию.

    Пробовал. Вот и для меня загадка, что в принципе до 1000,оно вроде как сортирует нормально, дальше уже как-то хаотично. На данный момент, мне понравилась Ваша версия, что цены сортируются как текст, может их нужно брать как числа?

    Модератор Yuri

    (@yube)

    Если WC не мешать, то он генерирует sql-запрос, в котором имеют место:

    SELECT post_id, max( meta_value+0 ) price
    

    и далее

    ORDER BY price_query.price DESC
    

    Вот это вот meta_value+0 неявно указывает на то, что meta_value надо интерпретировать как число. Поэтому сортировка должна быть числовая. Но если ему помешать, то может быть что угодно.

    Могу порекомендовать поставить плагин Query Monitor (если еще не ставили) и в разделе Queries найти запрос(ы), в которых есть meta_key='_price'. Сразу предупреждаю, что запрос большой и мутный )) Но разобраться при желании в нем можно.

    Спасибо большое, буду пробовать) ещё вопрос, вы наверняка заметили, что сайт работает не совсем быстро, а если быть точнее, то медленно. Можно ли как-то урегулировать этот процесс?

    Модератор Yuri

    (@yube)

    вы наверняка заметили, что сайт работает не совсем быстро,

    Если честно, не заметил. Привык не обращать внимание на скорость загрузки, если речь идет о WC.

    Быстрый, хорошо настроенный сервер + PHP7 + кэширование. Ничего лучшего не знаю. Увы.

    Я поставил плагин W3 Total Cache. Некоторые советуют, некоторые нет. Как думаете, стоит его оставить, либо же отдать свое предпочтение тому же WP Super Cache?

    Модератор Yuri

    (@yube)

    У меня с Totalом отношения вообще не сложились (не приемлю тоталитаризм в любых проявлениях)))). С Superом получше, но магазин он валил через раз в 500, после чего я его отключил.

    Давайте не нарушать Правило «один вопрос — одна тема». Откройте новую по расторможению WC, думаю многим (в т.ч. и мне) будет интересна эта тема.

    Да, хорошо. Спасибо большое за поддержку, доброго вечера

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Тема «Сортировка по цене» закрыта для новых ответов.