Описание woocommerce_shipping_rate_cost
— Filter
Хук woocommerce_shipping_rate_cost позволяет изменять стоимость доставки для выбранного метода доставки в WooCommerce. Он срабатывает в процессе расчета стоимости доставки на странице оформления заказа и позволяет настраивать цену в зависимости от различных условий
Примеры использования
Пример добавления фиксированной надбавки к стоимости доставки:
add_filter('woocommerce_shipping_rate_cost', function($cost, $rate) {
return $cost + 5;
}, 10, 2);
В этом примере мы добавляем 5 единиц к текущей стоимости доставки для всех методов
Пример изменения стоимости доставки в зависимости от выбранного метода:
add_filter('woocommerce_shipping_rate_cost', function($cost, $rate) {
if ($rate->id === 'flat_rate:1') {
return 10;
}
return $cost;
}, 10, 2);
Здесь мы устанавливаем фиксированную стоимость доставки в 10 единиц, если выбран метод ‘flat_rate:1’
Пример применения скидки на доставку для определенной категории товаров:
add_filter('woocommerce_shipping_rate_cost', function($cost, $rate) {
$cart = WC()->cart;
if ( $cart->has_discount('shipping_discount') ) {
return $cost * 0.9;
}
return $cost;
}, 10, 2);
В этом примере мы применяем 10% скидку на стоимость доставки, если в корзине есть скидка с кодом ‘shipping_discount’
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо менять стоимость доставки в зависимости от условий, таких как выбранный метод или товары в корзине
– Производительность
Изменение стоимости доставки не должно значительно влиять на производительность, так как оно происходит во время расчета на стороне сервера
– Предупреждения
Обратите внимание на возможность конфликтов с другими плагинами, которые также могут изменять стоимость доставки
Альтернативы
Тип: filter
Этот хук позволяет изменять все доступные методы доставки и их параметры, включая стоимость
Используйте его, если необходимо изменить не только стоимость, но и другие параметры методов доставки