- Порядок WooCommerce по цене не работает правильно
- 5 ответов
- Добавление или удаление доступных опций сортировки товаров
- Шаг 1. Добавляем новую опцию в выпадающий список
- Шаг 2. Применяем сортировку
- Бонус. Как удалить ненужные варианты сортировки
- Комментарии — 14
- WordPress.org
- Русский
- Настройка сортировки
- WordPress.org
- Русский
- Сортировка по цене
- Простая сортировка товаров в 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, уже после первого примера поняли, как удалять опции сортировки или даже менять их местами.
Дело в том, что внутри фильтров 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 надо интерпретировать как число. Поэтому сортировка должна быть числовая. Но если ему помешать, то может быть что угодно.
Могу порекомендовать поставить плагин 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 на этот случай есть еще один способ сортировки, перетаскиванием. Для этого нужно пойти в консоль → Товары, затем выбрать нужную категорию и переключиться на вкладку «Сортировка».
Так можно перетащить в листинге категории товары, которые потенциальные покупатели должны увидеть сразу. Но нельзя забывать, что посетители могут отсортировать товары на свое усмотрение.
Источник