Доставка WooCommerce по весу — фрагмент кода + плагины
Опубликовано: 2022-09-15WooCommerce достаточно гибок, когда дело доходит до настройки зон и классов доставки. Это также позволяет вам установить фиксированную ставку, бесплатную доставку и самовывоз в качестве типов тарифов доставки.
Некоторые магазины взимают фиксированную плату за доставку, некоторые варьируют стоимость доставки в зависимости от местоположения покупателя. Однако для продуктов, которые значительно различаются по размеру и весу, у вас не может быть единой фиксированной платы за доставку.
Вы можете выбрать решение или добавить некоторый код в зоны доставки, чтобы настроить доставку WooCommerce по весу и другие расширенные правила доставки.
Потому что в WooCommerce по умолчанию нет возможности настроить доставку на основе веса.
В этой статье мы покажем код, который вы можете использовать для настройки доставки на основе веса, а также некоторые плагины доставки WooCommerce для расширенных правил.
Что такое доставка WooCommerce по весу?
Доставка на основе веса позволяет вам устанавливать тарифы в зависимости от веса продукта. Клиенты, которые покупают тяжелые товары, будут платить за доставку больше, чем те, кто покупает товары меньшего размера.
Кроме того, клиенты, которые покупают оптовые товары, также ожидают символическую плату за доставку. Взимание платы за доставку за количество товара или за разные товары в заказе также не рекомендуется.
С доставкой по весу вы можете взимать справедливую цену как за большие, так и за маленькие заказы. Кроме того, вы можете избежать занижения или завышения стоимости доставки ваших клиентов.
Как настроить WooCommerce доставку по весу без плагина?
Прежде чем переходить к коду, убедитесь, что эти требования соблюдены.
- Ваши продукты должны иметь вес. Все ваши простые продукты и/или отдельные варианты должны иметь
weight > 0
. В разделе WooCommerce > Настройки > Товары обязательно выберите правильную «Единицу веса» (по умолчанию — кг). - Первая зона доставки применяется, если у вас несколько зон доставки. Предположим, у вас есть две зоны доставки: одна для Австралии и одна для Океании. Зона судоходства для Океании будет применяться так, как она находится на первом месте. Чтобы подать заявку на зону доставки для Австралии, вам нужно удерживать значок гамбургера и перетаскивать его над Океанией.
Настройка доставки по весу
В нашем примере у нас будет три уровня доставки на основе веса:
- $10 при заказе до 3 кг.
- $15 при заказе до 5 кг (но более 3 кг)
- $20 при заказе от 5 кг
Вы можете установить неограниченные уровни и неограниченные фиксированные ставки для каждой зоны доставки. Это все зависит от вас.
Кроме того, вы можете переименовать каждую фиксированную ставку на что-то вроде «Заказы менее 3 кг», «Заказы более 5 кг» и т. д., чтобы сделать этикетку оформления заказа более удобной для пользователя.
Настройте способы доставки для всех трех, например:
- Фиксированная ставка № 1 > переименуйте в «Заказы весом менее 3 кг» и назначьте стоимость = 10 долларов США.
- Фиксированная ставка № 2 > переименуйте в «Заказы весом менее 5 кг» и назначьте стоимость = 15 долларов США.
- Фиксированная ставка № 3 > переименуйте в «Заказы весом более 5 кг» и назначьте стоимость = 20 долларов США.

Если вам нужна помощь, обратитесь к этому блогу по настройке тарифов и зон доставки.
Доставка по коду веса
Теперь, исходя из веса тележки, следует использовать фиксированную ставку вместо другой. Это единственный способ показать конечным пользователям правильную фиксированную ставку.
Прежде чем продолжить, запишите уникальные идентификаторы трех фиксированных ставок . Они должны выглядеть примерно так: « flat_rate:9 ».
В нашем примере это следующие идентификаторы ставок:
- Фиксированная ставка №1 > flat_rate:6
- Фиксированная ставка #2 > flat_rate:7
- Фиксированная ставка №3 > flat_rate:8
Нам нужно отключить ставки на основе общего веса, поэтому всего нам понадобятся три условия: когда вес меньше 3 кг, меньше 5 кг и больше 5 кг. Вот фрагмент кода:
add_filter('woocommerce_package_rates', 'storeapps_woocommerce_tiered_shipping', 9999, 2 ); функция storeapps_woocommerce_tiered_shipping ($ ставки, $ пакет) { если ( WC()->корзина->get_cart_contents_weight() < 3 ) { if ( isset( $rates['flat_rate:7'] ) && isset( $rates['flat_rate:8'] ) ) unset( $rates['flat_rate:7'], $rates['flat_rate:8'] ) ; } elseif ( WC()->корзина->get_cart_contents_weight() < 5 ) { if ( isset( $rates['flat_rate:6'] ) && isset( $rates['flat_rate:8'] ) ) unset( $rates['flat_rate:6'], $rates['flat_rate:8'] ) ; } еще { if ( isset( $rates['flat_rate:6'] ) && isset( $rates['flat_rate:7'] ) ) unset( $rates['flat_rate:6'], $rates['flat_rate:7'] ) ; } вернуть $ставки; }
Обратитесь к этому документу, чтобы узнать, как безопасно добавлять фрагменты кода.
Доставка WooCommerce по весу с местным самовывозом
Например, вместо метода доставки с фиксированной ставкой вы можете добавить местный самовывоз. Затем вы можете заменить приведенный выше код следующим:

add_filter('woocommerce_package_rates', 'storeapps_woocommerce_tiered_shipping', 9999, 2 ); функция storeapps_woocommerce_tiered_shipping ($ ставки, $ пакет) { если ( WC()->корзина->get_cart_contents_weight() < 3 ) { if ( ( isset( $rates['flat_rate:7'] ) && 'local_pickup' !== $rates['flat_rate:7']->get_method_id() ) && ( isset( $rates['flat_rate:8'] ) && 'local_pickup' !== $rates['flat_rate:8']->get_method_id() ) ) { unset($rates['flat_rate:7'], $rates['flat_rate:8'] ); } } elseif ( WC()->корзина->get_cart_contents_weight() < 5 ) { if ( ( isset( $rates['flat_rate:6'] ) && 'local_pickup' !== $rates['flat_rate:6']->get_method_id() ) && ( isset( $rates['flat_rate:8'] ) && 'local_pickup' !== $rates['flat_rate:8']->get_method_id() ) ) { unset($rates['flat_rate:6'], $rates['flat_rate:8'] ); } } еще { if ( ( isset( $rates['flat_rate:6'] ) && 'local_pickup' !== $rates['flat_rate:6']->get_method_id() ) && ( isset( $rates['flat_rate:7'] ) && 'local_pickup' !== $rates['flat_rate:7']->get_method_id() )) { unset($rates['flat_rate:6'], $rates['flat_rate:7'] ); } вернуть $ставки; }
Плагины доставки WooCommerce на основе веса
Если вы не хотите зацикливаться на коде, есть несколько мощных плагинов WooCommerce для доставки по весу.
Эти плагины позволяют вам создавать различные тарифы и условия доставки для ваших клиентов в зависимости от веса продукта. Давайте проверим некоторые из них:
Доставка по весу WooCommerce
Это бесплатный плагин для доставки в репозиторий WordPress. Это позволяет вам добавлять несколько правил на основе различных условий.
Вы можете создать столько правил доставки, сколько вам нужно для разных пунктов назначения заказа, диапазона веса и промежуточной суммы, а также установить порог бесплатной доставки,
Вы также можете установить стоимость доставки отдельно для каждого класса доставки.
Профессиональная версия этого плагина стоит 19 долларов .
Получите доставку на основе веса WooCommerce
Стоимость доставки по таблице
Этот плагин дает вам настраиваемые параметры доставки.
Вы можете определить несколько тарифов на доставку в зависимости от веса, цены, местоположения или количества товаров.
Вы также можете добавить правила, основанные на весе, и добавить затраты на единицу веса. Интуитивно понятный интерфейс плагина позволяет пользователям легко управлять своими стратегиями доставки.
Вы можете купить этот плагин за 99 долларов на торговой площадке WooCommerce.
Получите стоимость доставки по таблице
Условная доставка и оплата
Еще одно расширение доставки в WooCommerce, которое позволяет вам ограничивать варианты доставки, способы оплаты и места доставки, доступные вашим клиентам.
Вы можете ограничить способы доставки и текущие тарифы в зависимости от веса посылки, количества товаров или общей суммы в корзине.
Вы также можете предложить бесплатную доставку с продлением подписки с помощью плагина.
Этот плагин довольно популярен, и вы можете приобрести его за 79 долларов .
Получите условную доставку и платежи
Коробка с фиксированной ставкой доставки
Этот плагин позволяет вам определять стоимость ящиков в разных пунктах назначения. Вы можете упаковать товары в коробки в зависимости от размера и объема товара, а затем эта коробка использует фиксированные затраты, которые вы определяете для каждого пункта назначения.
Вы можете добавить несколько размеров коробок для каждой зоны доставки, добавить стоимость за коробку и единицу веса, а также определить стоимость товаров, которые не помещаются в коробку.
Этот плагин можно приобрести на торговой площадке WooCommerce за 49 долларов .
Получите коробку с фиксированной ставкой доставки
Управление заказами и продуктами из одного места на основе полей доставки
Плагин Smart Manager позволяет вам управлять сотнями и тысячами заказов из одного места, используя редактор листов, похожий на Excel.
Вы можете просматривать и управлять всеми своими заказами, а также информацией об их доставке, такой как способ доставки, состояние доставки, страна доставки, налог на доставку заказа и другие детали.

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

Вы также можете применить фильтр, в котором перечислены все ваши товары весом более X кг, а затем обновить поле обычной цены/цены со скидкой, и все изменения будут применены мгновенно.
Кроме того, с помощью Smart Manager вы можете:
- Управляйте и массово редактируйте сообщения любого типа — купоны, подписки, бронирования, пользователей, дополнения к продукту, дропшиппинг, сообщения в блогах, страницы и т. д.
- Удалить записи навсегда или переместить их в корзину — тестовые продукты, тестовые заказы, тестовые купоны…
- Дублировать выбранные или все записи для определенного типа сообщений
- Экспортировать в CSV все записи или на основе фильтров для любого типа сообщений
- Настройте пользовательские представления (наборы столбцов), предоставьте информационные панели с ограниченным доступом…
Попробуйте живую демонстрацию
Вывод
Настройка доставки на основе веса WooCommerce проста с некоторыми настройками кода.
И более простой способ — получить плагин из списка выше, чтобы сэкономить время и нервы. Все они популярны и стоят своих денег.
Я надеюсь, что вы найдете этот пост полезным. Любые вопросы или предложения, напишите строку ниже.