Меню

advanced free shipping woocommerce настройка

WordPress.org

Русский

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

Добрый день!
Очень надеюсь на помощь и совет специалистов.
Стоит вопрос гибкой настройки бесплатной доставки.
Нужно настроить следующее:
1. При выборе города например Москва
Стоимость доставки была бесплатная от суммы заказа 3000 рублей
Стоимость самовывоза была бесплатная от суммы заказа 2000 рублей
2. При выборе Санкт Петербурга
Стоимость доставки была бесплатная от суммы заказа 3500 рублей
Стоимость самовывоза была бесплатная от суммы заказа 3000 рублей
3. Для остальных регионов:
Стоимость доставки была бесплатная от суммы заказа 4000 рублей

Установил плагин Free shipping но там нельзя задать способ доставки, для границы бесплатной. Там если настраиваешь сумму бесплатной доставки, то она ставится и для курьерской доставки и для самовывоза.

Подскажите как настроить, может какой-то доп плагин есть.

  • Тема изменена 2 года, 4 месяца назад пользователем Юрий .

У ВП без плагинов ИМ нет ни доставки ни товаров ни стоимостей. А самих плагинов для ИМ — десятки.

Не понял вашего комментария.
Разумеется если у меня стоит плагин Advanced Free Shipping, то есть плагин WooCommerce, где хранятся и доставки и товары и стоимости. Меня интересуют расширенные настройки по моему запросу, а не комментарии в стиле — «плагинов десятки».

Разумеется если у меня стоит плагин Advanced Free Shipping, то есть плагин WooCommerce

Вовсе не разумеется. Это раз. Второе: для woocommerce есть отдельный раздел, и если вопрос не там, то логично предположить, что используется другой магазин. И надо становится в позу, это не поспособствует решению Вашей проблемы.

Прошу прощения за резкость ответа, но надо же сначала спросить что и как, а не отсылать меня к списку плагинов.
Вопрос все еще актуален.
Как мне гибко настроить доставку для WooCommerce?

Как мне гибко настроить доставку для WooCommerce?

Вы не слышите что вам говорят:

для woocommerce есть отдельный раздел,

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

Тогда прошу модераторов переместить тему в раздел для WooCommerce, если нельзя — закрою тему и создам новую, чтобы не плодить 2 одинаковых.

Там если настраиваешь сумму бесплатной доставки, то она ставится и для курьерской доставки и для самовывоза.

Это странно. Я бегло глянул woocommerce-advanced-free-shipping, он добавляет свой метод advanced_free_shipping. Допустим, он подменяет штатный free_shipping, но почему он цепляет еще и local_pickup — загадка. Боюсь, без вскрытия тут не обойтись.

Кстати, что Вы назвали «курьерской»?

Ну смотрите,
курьерская — это доставка курьерской службой до двери клиента
самовывоз — забор клиентом товара из Пункта выдачи заказа.
У курьерских служб 2 разные цены на доставку и самовывоз соответственно.
Потому мне и нужно 2 границы: одна для курьерской по городам, другая — для самовывоза по городам.

курьерская — это доставка курьерской службой до двери клиента

Это я понимаю 🙂 но не помню, чтобы у WC «из коробки» был такой тип доставки.

Стоимость самовывоза была бесплатная от суммы заказа 2000 рублей

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

Читайте также:  altell neo 120 настройка

Конечно может, потому что сейчас доставка у интернет магазинов осуществляется через службу доставки. А до их пункта самовывоза интернет магазину-нужно осуществить доставку товаров.
Может еще есть какие модули кроме
advanced-free-shipping
чтобы настроить подобное?

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

Это НЕ самовывоз. В ИМ все «считается» от этого ИМ, а не от сторонних зависимостей. Этим Вы только запутаете (я бы даже сказал — обманете) потенциальных покупателей.

Мы называем это самовывоз из ПВЗ.
Факт есть факт, как настроить и чем?

Мы называем это самовывоз из ПВЗ.
Факт есть факт, как настроить и чем?

А если назовёте «адрес доставки» многое станет на свои места. Это есть из коробки. Адрес клиента != адрес доставки.

Единственное что — возможно нужно доработать автоматическую подстановку из заранее заданных адресов.

источник

Настройка бесплатной доставки в WooCommerce магазине + хаки и модули

Сегодня обновлю одну из заметок блога о плагине WooCommerce, посвященную организации бесплатной доставки в интернет-магазине. Рассмотрю основные особенности функции Free Shipping + парочку интересных приемов-сниппетов и модулей по теме.

Если говорить о преимуществах данной фишки, то она может повысить вашу прибыль за счет желания покупателей набрать больше товаров для ее активации. С другой стороны подобный прием также положительно скажется на лояльности клиентов, поскольку позволит им немного сэкономить.

Создание и настройка бесплатной доставки

В базовой комплектации WooCommerce имеется несколько вариантов доставки: единая ставка, самовывоз и бесплатная. В новой актуальной версии вам сначала надо создать «Зону доставки» (например, страна или город), а затем уже добавлять определенные ее типы.

Находятся все эти фишки в разделе «WooCommerce» — «Настройки», где нужно будет выбрать вкладку «Доставка». После добавления зоны и перехода на ее страницу в самом низу кликайте по кнопке «Добавить метод» и выбирайте соответствующий пункт.

В настройках будет 3 поля:

  • название — отображается на сайте;
  • требование для срабатывания;
  • минимальная сумма заказа, если важна.

В «Требованиях» следует определить в каком случае сработает функция бесплатной доставки. Есть такие опции как:

Чаще всего данный бонус активируется при достижении определенной суммы заказа, но, как видите, можете использовать это условие совместно или по отдельности с действующим скидочным купоном / промокодом.

Внимание! Если у вас старая версия плагина магазина, то там интерфейс немного другой.

Функциональность включается через специальную одноименную кнопку-чекбокс, а все параметры задаются на одной странице без каких-либо всплывающий окон.

Хаки для бесплатной доставки в WooCommerce

По-умолчанию при выполнении заданного условия, соответствующий пункт просто выводится на странице корзины вместе с другими:

Все, вроде как, правильно, но при этом пользователь сможет выбрать любой способ из списка, например, самовывоз или почтовую пересылку. Как мне кажется, логичнее чтобы бесплатный вариант выбирался автоматически. Видимо, разработчики со мной солидарны, т.к. на официальном сайте с документацией есть пару сниппетов по теме.

Читайте также:  qbr 1040w сброс настроек

Внимание! Коды, приведенные ниже, добавляете в functions.php (при этом следите за тем, с какой версией работаете). Кстати, перед внедрением рекомендуется почистить кэш модуля — для этого в разделе «WooCommerce» — «Статус» — «Инструменты» напротив самого первого пункта WC transients кликаете кнопку Очистить.

Сниппет WooCommerce 3.0+

Как уже было сказано выше, он скрывает все методы кроме «free_shipping». У меня успешно работал и на WC 2.6.

/** * Hide shipping rates when free shipping is available. * Updated to support WooCommerce 2.6 Shipping Zones. * * @param array $rates Array of rates found for the package. * @return array */ function my_hide_shipping_when_free_is_available( $rates ) < $free = array(); foreach ( $rates as $rate_id =>$rate ) < if ( 'free_shipping' === $rate->method_id ) < $free[ $rate_id ] = $rate; break; >> return ! empty( $free ) ? $free : $rates; > add_filter( ‘woocommerce_package_rates’, ‘my_hide_shipping_when_free_is_available’, 100 );

Решение для версии 2.5

/** * woocommerce_package_rates is a 2.1+ hook */ add_filter( ‘woocommerce_package_rates’, ‘hide_shipping_when_free_is_available’, 10, 2 ); /** * Hide shipping rates when free shipping is available * * @param array $rates Array of rates found for the package * @param array $package The package array/object being shipped * @return array of modified rates */ function hide_shipping_when_free_is_available( $rates, $package ) < // Only modify rates if free_shipping is present if ( isset( $rates['free_shipping'] ) ) < // To unset a single rate/method, do the following. This example unsets flat_rate shipping unset( $rates['flat_rate'] ); // To unset all methods except for free_shipping, do the following $free_shipping = $rates['free_shipping']; $rates = array(); $rates['free_shipping'] = $free_shipping; >return $rates; >

Как показывать бесплатную+локальную доставки

В комментариях спрашивали по поводу скрытия НЕ всех вариантов. Вот хороший хак, где остается сразу 2 из них:

/** * Hide shipping rates when free shipping is available, but keep «Local pickup» * Updated to support WooCommerce 2.6 Shipping Zones */ function hide_shipping_when_free_is_available( $rates, $package ) < $new_rates = array(); foreach ( $rates as $rate_id =>$rate ) < // Only modify rates if free_shipping is present. if ( 'free_shipping' === $rate->method_id ) < $new_rates[ $rate_id ] = $rate; break; >> if ( ! empty( $new_rates ) ) < //Save local pickup if it's present. foreach ( $rates as $rate_id =>$rate ) < if ('local_pickup' === $rate->method_id ) < $new_rates[ $rate_id ] = $rate; break; >> return $new_rates; > return $rates; > add_filter( ‘woocommerce_package_rates’, ‘hide_shipping_when_free_is_available’, 10, 2 );

Если вы внимательно посмотрите, то в коде в операторе IF используются знакомые нам обозначения: free_shipping и local_pickup. Теоретически, вместо них можно попробовать и другие, например, единую ставку flat_rate:5 (цифра здесь меняется).

Кстати, если правка шаблона вам кажется сложной, лучше установите модуль WC Hide Shipping Methods, рассмотренный ниже. По сути, он дублирует этот сниппет.

Исключение определенных штатов

На официальной веб-страничке есть еще один интересный хак, выполняющие те же задачи, что и предыдущие, но не для всех штатов (США). Вероятно, для наших стран этот код не особо актуален, но возможно кому-то он пригодится для общего развития.

Читайте также:  настройка кулера для воды

/** * Hide ALL shipping options when free shipping is available and customer is NOT in certain states * * Change $excluded_states = array( ‘AK’,’HI’,’GU’,’PR’ ); to include all the states that DO NOT have free shipping */ add_filter( ‘woocommerce_package_rates’, ‘hide_all_shipping_when_free_is_available’ , 10, 2 ); /** * Hide ALL Shipping option when free shipping is available * * @param array $available_methods */ function hide_all_shipping_when_free_is_available( $rates, $package ) < $excluded_states = array( 'AK','HI','GU','PR' ); if( isset( $rates['free_shipping'] ) AND !in_array( WC()->customer->shipping_state, $excluded_states ) ) : // Get Free Shipping array into a new array $freeshipping = array(); $freeshipping = $rates[‘free_shipping’]; // Empty the $available_methods array unset( $rates ); // Add Free Shipping back into $avaialble_methods $rates = array(); $rates[] = $freeshipping; endif; if( isset( $rates[‘free_shipping’] ) AND in_array( WC()->customer->shipping_state, $excluded_states ) ) < // remove free shipping option unset( $rates['free_shipping'] ); >return $rates; >

Плагины бесплатной доставки WooCommerce

Их всего 2 штуки на данный момент: первый будет поновее и попроще, а второй выполняет более комплексные задачи.

WC Hide Shipping Methods

Автоматически скрывает в процессе оформления заказа все варианты кроме «free shipping». Если надо, дополнительно имеется возможность оставлять и самовывоз (local pickup). Все параметры задаются в админке в настройках магазина:

В принципе, решение полностью дублирует третий сниппет/хак выше, но оно является более дружелюбным и наглядным для новичков в WordPress.

Advanced Free Shipping

Он позволяет указать некоторые дополнительные условия для бесплатной доставки в интернет-магазине, например:

  • общую сумму покупок;
  • страну или почтовый индекс;
  • вес, количество товара;
  • купон;
  • и многие другие.

На момент написания статьи актуальной была версия 1.1.3, минимальные требования — WordPress 4.0+, а оценка практически 5 из 5-ти. Скачать его можно тут либо найти по названию из админки.

После активации плагина функция появится в разделе «Доставка»:

  • во-первых, нужно его включить — ставите галочку «Enable Advanced Free Shipping»;
  • затем отмечаем и вторую опцию — она скроет все варианты доставки, если условие для бесплатной сработает (хак в таком случае не нужен);
  • в-третьих, кликаем по кнопке «Add Free Shipping Method» дабы создать соответствующие логические правила.

Вы можете добавить несколько групп параметров, которые будут работать по принципу «ИЛИ». То есть, функция срабатывает, если выполнится хотя бы один из заданных критериев — либо первый, либо второй. В каждой группе разрешается совмещать опции с принципом «И» (условие выполнится, если оба утверждения правдивы). На скриншоте примера выше логика действий следующая: доставка будет бесплатной для «города Киев + «минимальный заказ 500грн» ИЛИ для «города Київ + «мин. заказ 500грн».

Радует, что в качестве параметров вы можете выбрать действительно много всего: категорию продукции или наличие нужных товаров, вес/объем покупок, страну, город, почтовый код пользователя и т.п. Правила в них задаются через операторы «=», «!=», «>=», « Понравился пост? Подпишись на обновления блога по RSS, Email или twitter!

источник