WooCommerce: как установить ограничение по весу товаров в корзине

Диагностика задачи: зачем ограничивать общий вес товаров в корзине WooCommerce

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

Пошаговое решение: установка ограничения по весу в корзине WooCommerce

1. Получение общего веса товаров в корзине

Первым делом нужно посчитать суммарный вес всех товаров, учитывая количество каждого из них. Для этого в хуке woocommerce_check_cart_items будет удобное место, так как он вызывается при проверке корзины перед оформлением заказа.

2. Добавление проверки и вывода ошибки

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

3. Пример кода для functions.php вашей темы или плагина

add_action('woocommerce_check_cart_items', 'limit_cart_weight_woocommerce');
function limit_cart_weight_woocommerce() {
    $max_weight = 10; // Максимальный вес в килограммах
    $total_weight = 0;

    foreach (WC()->cart->get_cart() as $cart_item) {
        $product = $cart_item['data'];
        $qty = $cart_item['quantity'];
        $weight = (float) $product->get_weight();
        $total_weight += $weight * $qty;
    }

    if ($total_weight > $max_weight) {
        wc_add_notice(sprintf('Общий вес товаров в корзине (%.2f кг) превышает максимально допустимый (%.2f кг). Пожалуйста, уменьшите количество товаров.', $total_weight, $max_weight), 'error');
    }
}

Проверка результата после внедрения ограничения веса

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

Если ограничение не срабатывает, проверьте:

  • Активен ли код (themes/functions.php или плагин)
  • Корректно ли заданы веса у товаров (раздел «Данные о доставке» в карточке товара)
  • Не конфликтуют ли другие плагины с корзиной WooCommerce

Частые ошибки при установке ограничения по весу и как их исправить

  • Веса товаров не заполнены или указаны в разных единицах измерения. WooCommerce ожидает вес в килограммах по умолчанию. Проверьте единицы в WooCommerce > Настройки > Отгрузка > Единицы измерения. Если веса в граммах, переведите в килограммы.
  • Код добавлен в неподходящее место. Функцию нужно подключать в functions.php или в отдельный плагин. При использовании сторонних тем убедитесь, что код не перезаписывается обновлениями.
  • Ошибка не появляется на странице корзины или оформления заказа. Проверьте, что хук woocommerce_check_cart_items вызывается, и что у вас нет кэширования, блокирующего обновления корзины.

Практические советы по безопасности и производительности

  • Используйте фильтр веса товаров (get_weight) без прямого обращения к базе, чтобы избежать лишних запросов.
  • Ограничение веса лучше делать именно на этапе оформления заказа, чтобы не влиять на скорость загрузки каталога.
  • При большом количестве товаров в корзине кэширование результатов вычисления веса можно сделать через Transients, если вес товаров меняется редко.

Сравнение способов реализации ограничения по весу в WooCommerce

МетодГде реализуетсяПлюсыМинусы
Кастомный код через хук woocommerce_check_cart_itemsfunctions.php или плагинБыстро, гибко, без дополнительных плагиновТребует знаний PHP, возможны ошибки при обновлениях
Плагин ограничения веса (например, "WooCommerce Weight Based Shipping")Сторонний плагинГотовое решение, настройки через UI, поддержка разработчикаПлатные версии, дополнительные нагрузка, возможные конфликты

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как отключить уведомления по email от комментариев WordPress
09.01.2026
WooCommerce: как установить ограничение на количество товаров в корзине
20.04.2026
Как создать обновляемую карту сайта XML в WordPress с поддержкой фильтрации
27.01.2026
Как избежать конфликтов между плагинами WordPress: практические советы и примеры
16.12.2025
Как избежать проблем с кешем в WordPress: практическое руководство
22.03.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше