Создать и настроить бесплатный способ доставки в WooCommerce у вас не должно составить труда, а вот как применить бесплатную доставку только к определённым товарам, да ещё и без использования кода?
Сейчас покажу, даже по шагам.
Если тем не менее у вас возникают трудности с вашим магазином WooCommerce, не беспокойтесь из-за этого, а пишите нам, я и моя команда будем рады вам помочь.
Для этого переходим в настройки WooCommerce, затем Доставка > Классы доставки.
При создании в качестве названия / ярлыка / описания можете указывать какие-то свои произвольные данные для своего удобства.
Это делается при редактировании конкретных товаров. Переходим в настройки товара и там в метабоксе Данные товара, во вкладке Доставка всё и происходит.
Теперь нужно перейти настройки способа доставки «Единая ставка», для этого переходим в Настройки > Доставка > Зоны доставки, выбираем зону доставки, и в ней уже переходим в настройки способа.
Теперь давайте разберёмся с настройками на скриншоте и тем, как будет вычисляться доставка.
«Нет цен классов доставки» – эта та стоимость доставки, которая будет применяться, если мы не добавили товаров с классом «Беспл доставка» в корзину.
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Да хороший способ без кода и плагинов. Мне были нужны условия для предоставления бесплатной доставки, когда клиент набирал определенные товары в корзину. Я использовал плагин Wocommerce advanced free shipping
Добрый день Миша! Спасибо за твои труды и особенно курс создание темы для WooCommerce. Это кладезь многих знаний и сильная подмога в работе. Но вот задача: клиент торгует аксесуарами для бассейнов, среди этих аксесуаров попадаются весьма крупные экземпляры. И вот как раз доставку этих крупных экземпляров нужно предварительно обговорить по телефону. По какому пути пошел я:
Добавил кастомное поле к продукту теперь при добавлении администратор может отметить что это крупногабаритный тяжелый груз (знаю что у wc уже есть такой функционал) но мне споказалось что кастомный бегунок удобней для админа. Дальше я написал вот такую функию:
Она определяет если в корзине есть "тяжелый" товар. Если есть то выводит сообщение что товар крупногабаритный, стоимость и способ доставки нужно обговорить по телефону с менеджером. Но как быть если товаров в корзине несколько? Включая крупногабаритный. В таком случае цена доставки на мелкий товар будет не актуальной, а на крупногабаритный я не могу вносить цену так как она формируется индивидуально посое переговоров с клиентом. Тоесть вариант с классами не мой вариант. Ведь если предположить что я дополнительно создам классы для легких и тяжелых товаров, при чем цена на легкий будет 20$ а на тяжелый я не могу назначить цену. Тогда при попадании в корзину нескольких товаров будет выводится цена доставки на легкий товар. В общем вот такие задачи попадаются. Буду очень признателен если ты подскажешь в какую сторону смотреть для решения.
Привет! 👋
Всегда рад, когда мой сайт кому-то помогает, пожалуйста!
В твоём коде есть момент, что условие
$profit == true
срабатывает только если последний товар крупногабаритный.Это можно обойти вот так:
Надеюсь, что я правильно понял твою задачу 🙃
Привет, да Миша ты правильно понял задачу и дал прекрасное решение. Спасибо. У меня еще вопрос. Он более близок к теме статьи. Есть интернет магазин, товаров в магазине много. Некоторые клиент хочет доставлять бесплатно, некторые по обычной цене, скажем 20$ а неокторые особо габаритные по цене 50$. Если в корзине один товар с бесплатной доставкой - замечательно, если в корзине один товар с доставкой 50$ тоже хорошо тоже касается 20$. Но как только в корзине оказывается несколько товаров с разными классами возникает проблемма.
Например в корзину упало два товара один с бесплатной доставкой, а второй с доставкой 50$. Как быть? Ведь на странице оплаты у клиента появляется галочка выбора стоимости 50$ и бессплатно. Но мы не можем доставлять крупногабаритный товар бесплатно. В общем как-то я запутался. Можешь помочь разобраться?
А какой meta_key у Бесплатной доставки ?
Чтобы сделать фильтр по чекбоксу для него