Woocommerce не работает сортировка категорий

Порядок WooCommerce по цене не работает правильно

При выборе варианта сортировки по цене (выпадающий список Woocommerce) товары сортируются по цене, но она не работает точно; первые 6 отсортированы:

Кто-нибудь знает, что происходит и как это исправить? Ура !

5 ответов

Вам нужно использовать meta_value_num , когда вы упорядочиваете по числовым метаданным, в противном случае он будет сравниваться как строки, иначе мета-значения post хранятся в базе данных как строки.

Если заказ по цене не работает правильно в WooCommerce, безопасное решение всегда заключается в настройке того, как WooCommerce обрабатывает заказ по цене. Это работает, потому что WooCommerce price и price-desc являются вариантами упорядочивания по умолчанию. (Протестировано со стандартной темой в WordPress v5.4.1 и WooCommerce v4.1.0):

В вашем functions.php добавьте:

Как упомянуто @Pelmered, важно использовать meta_value_num в качестве опции ‘order_by’, чтобы упорядочение осуществлялось по числовым значениям, а не по строковым значениям. Я изменил meta_key на ‘_price’, потому что это требуется в версии WooCommerce, используемой и упомянутой выше.

Вам следует обновить плагин Woocommerce до последней версии. Это была ошибка в плагине, или вы, вероятно, что-то изменили в основных функциях.

Обновление помогло мне хорошо с этим и несколькими другими проблемами.

Кажется, что улаживает правильно. Смотрите рекомендуемые продукты, так как они имеют приоритет.

Для тех, кто может столкнуться с этой проблемой

Если вы импортировали свои продукты с помощью таких инструментов, как «WP All Import», вам придется заново создать «Таблицы поиска продуктов» в:

WooCommerce> Статус> Инструменты> Таблицы соответствия товара

Источник

Добавление или удаление доступных опций сортировки товаров

В одном из своих видеоуроков я рассказывал, по какому принципу в WooCommerce работает сортировка товаров. Я имею ввиду вот это:

Как видите, в возможности сортировки по умолчанию входят:

  • По популярности
  • По рейтингу
  • По новизне
  • Цена по убыванию
  • Цена по возрастанию

А что, если нам нужно добавить ещё что-то? Давайте в качестве примере добавим «в случайном порядке», мне трудно представить, когда это может быть нужно, но ведь мы хотим понять сам принцип работы этого.

Шаг 1. Добавляем новую опцию в выпадающий список

Понятное дело, что на этом этапе сортировка не будет работать, у нас только в URL будет добавляться ?orderby=randomly , поэтому сразу переходим ко второму шагу.

Шаг 2. Применяем сортировку

Тут всё происходит в пределах одного хука woocommerce_get_catalog_ordering_args , и по названию уже можно догадаться, что мы меняем у него параметры для WP_Query товаров.

Бонус. Как удалить ненужные варианты сортировки

Я думаю, что те из вас, кто уже работает какое-то время с хуками WordPress, уже после первого примера поняли, как удалять опции сортировки или даже менять их местами.

Читайте также:  Blender не работает рендер

Дело в том, что внутри фильтров woocommerce_default_catalog_orderby_options и woocommerce_catalog_orderby доступна переменная, которая является массивом из всех опций сортировки. И если это массив, то мы можем легко его распечатать через print_r() , удалить элемент – unset() и тд.

Например попробуем удалить все опции сортировки кроме нашей рандомной:

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

Комментарии — 14

Большое спасибо за твой труд. Блог просто кладезь знаний по wp.
И если можно, небольшой вопросик — а как сделать, чтобы сортировка не сбрасывалась при переходе в другую категорию?

Пожалуйста! Очень приятно это слышать 🙂

Думаю тут можно поколдовать с фильтром term_link , примерно:

Код не тестировал, написал сходу. Обязательно отпишите, сработало или нет.

Большое спасибо за ответ. Работает отлично. Код можно юзать)

А товары при рандомной сортировке не будут таким же случайным образом повторяться на страницах пагинации?

Для этого нужно seed в сессию записать. Примерно так:

А как сделать чтобы сортировка была по возрастанию цены и в алфавитном порядке?

Спасибо! Кастомная сортировка товаров — отличная тема. Подскажите, пожалуйста, а как добавить сортировку, чтобы выводились товары по принципу «максимальная скидка»?

Здравствуйте Миша! Спасибо за ваши труды, все очень просто и доходчиво!
У меня вопрос насчет сортировки по популярным товарам на главной странице. WC сортирует их по количеству проданных товаров, а хотелось бы сортировать по заказам. Например в одном заказе может быть заказан один и тот же товар в большом количестве, например есть заказ, в котором заказали ролики 10 шт., а в других 5 заказах самокаты по 1-й штуке. В данном случае популярным товарам являются самокаты, а WC выдает ролики.
Как можно сделать сортировку по количеству заказов товара, а не по количеству самих товаров и заказах?

Пожалуйста, очень рад 🙂

С этой задачей не сталкивался к сожалению.

Михаил здравствуйте.
Можно ли сделать сортировку списка товаров woocommerce по двум или более кастомным полям. Например, нужно сначала вывести товары со знаком качества по мета-полю ‘quality_mark’, а затем остальные ниже отсортировать по мета-полю рейтинга ‘product_rating’. Если возможно это сделать за отдельную плату, то как связаться с вами, и сколько это будет стоить.

Теоретически это можно сделать, но не при помощи woocommerce_get_catalog_ordering_args , там можно только по одному мета-полю.

Источник

WordPress.org

Русский

Настройка сортировки

Помогите пожалуйста разобраться с сортировкой.
Использую тему woodmart. Была установлена сортировка. Не могу найти , где ее можно настроить: изменить расположение, внешний вид итд.
И также как ее можно настроить? В данном случае она не работает. При выборе ничего не происходит.
https://prntscr.com/wk5h5j

  • Тема изменена 9 месяцев, 1 неделя назад пользователем ksv80 .
Читайте также:  Как отремонтировать тюлевую занавеску

Скажите, вы читали правила форума? Ну хотя бы до 9 пункта?

Я читал правила, извините если, что-то нарушил. У меня не работает стандартная сортировка woocommerce. Я не знаю в какую сторону копать. С чем это может быть связано(варианты)?

  • Ответ изменён 9 месяцев, 1 неделя назад пользователем ksv80 .

хорошо, если не поняли с первого раза…..

Вам стоит обратиться в ТП этой коммерческой темы. Мы не отвечаем за сторонний код. п.9 правил форума.

У меня не работает стандартная сортировка woocommerce.

С чего вы вдруг решили, что она у вас стандартная?

по поводу Woodmart, лучше спрашивать у авторов/продавцов

и уж тем более, если в ней что-то не работает

Я уже обращался ,Woodmart сказали, что используют механизм woocommerce.

  • Ответ изменён 9 месяцев, 1 неделя назад пользователем ksv80 .

Какие варианты могут быть, чтобы я начал методом исключения искать

Woodmart сказали, что используют механизм woocommerce.

установите Storefront и посмотрите как выглядит стандартная сортировка.

Какие варианты могут быть, чтобы я начал методом исключения искать

Источник

WordPress.org

Русский

Сортировка по цене

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

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

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

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

  • Ответ изменён 2 года, 11 месяцев назад пользователем usermaxim .

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

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

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

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

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

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

Читайте также:  Не работает замедленная съемка xiaomi

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

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

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

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

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

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

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

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

Источник

Простая сортировка товаров в WooCommerce

Плагин WooCommerce для создания интернет-магазина на движке WordPress довольно мощный. Для удобства управления в него заложено множество инструментов. Решение большинства задач не требует установки каких-то дополнительных плагинов или внесения правок в код. Это касается и сортировки товаров в каталоге или категориях. Стандартные настройки выполняются в большинстве тем (шаблонов) WordPress во фронтэнде сайта с кнопки «Настроить» → WooCommerce → Сортировка. По умолчанию у админа верхняя панель включена. Если панели нет, нужно войти в профиль и поставить галочку в нужном месте.

Сортировка товаров WooCommerce организуется по разным признакам: по рейтингу, популярности, цене и так далее. Здесь же указываем и количество колонок в строке. Ни один из вариантов может не устроить, особенно если в строке выводится по одному товару. Именно по одному удобно располагать товары, если нужно показать в превью большое описание.

Стандартная сортировка устраивает не всегда: популярными товарами могут оказаться самые дешевые. Их чаще всего и покупают, а продавать хочется по каким-либо причинам другие. Они же, другие, могут не иметь рейтинга (мало оставлено отзывов) и опять не попадут на видное место на первом экране.

Перетаскивание товаров в консоли

В WooCommerce на этот случай есть еще один способ сортировки, перетаскиванием. Для этого нужно пойти в консоль → Товары, затем выбрать нужную категорию и переключиться на вкладку «Сортировка».

Так можно перетащить в листинге категории товары, которые потенциальные покупатели должны увидеть сразу. Но нельзя забывать, что посетители могут отсортировать товары на свое усмотрение.

Источник

Оцените статью