Описание woocommerce_shipping_method_add_rate_args
— Filter
Хук woocommerce_shipping_method_add_rate_args позволяет изменять параметры, передаваемые в метод расчета стоимости доставки. Он срабатывает при добавлении новых вариантов доставки в корзину и позволяет настраивать их параметры, такие как стоимость, описание и другие атрибуты
Примеры использования
Пример изменения стоимости доставки в зависимости от веса товара:
add_filter('woocommerce_shipping_method_add_rate_args', function($rate_args) {
if ($rate_args['package']['weight'] > 5) {
$rate_args['cost'] += 10; // добавляем 10 долларов за тяжелую посылку
}
return $rate_args;
});
В этом примере мы увеличиваем стоимость доставки на 10 долларов, если вес товара больше 5 кг
Пример добавления кастомного описания к методу доставки:
add_filter('woocommerce_shipping_method_add_rate_args', function($rate_args) {
$rate_args['method_id'] = 'custom_method';
$rate_args['instance_id'] = '1';
$rate_args['label'] = 'Курьерская доставка с отслеживанием';
return $rate_args;
});
Здесь мы изменяем метку метода доставки, чтобы она отображала, что это курьерская доставка с отслеживанием
Пример добавления условия для изменения параметров доставки:
add_filter('woocommerce_shipping_method_add_rate_args', function($rate_args) {
if ($rate_args['destination']['country'] === 'US') {
$rate_args['cost'] += 5; // добавляем 5 долларов для доставки в США
}
return $rate_args;
});
В этом примере мы добавляем 5 долларов к стоимости доставки, если товар отправляется в США
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить параметры расчета стоимости доставки в WooCommerce
– Производительность
Изменения могут повлиять на производительность, если много условий и расчетов, поэтому старайтесь оптимизировать код
– Предупреждения
Следите за тем, чтобы изменения не нарушали логику расчета стоимости доставки и не вызывали путаницы у клиентов
Альтернативы
Тип: filter
Этот хук позволяет изменять уже рассчитанную стоимость доставки перед выводом на экран
Используйте его, если нужно изменить стоимость после того, как она была рассчитана