Описание woocommerce_cart_calculate_fees
— Action
Хук woocommerce_cart_calculate_fees позволяет добавлять дополнительные сборы или скидки к общей стоимости корзины в WooCommerce. Он срабатывает при пересчете итоговой суммы корзины, что позволяет динамически изменять стоимость в зависимости от условий
Примеры использования
Пример добавления фиксированной скидки в 10 единиц:
add_action('woocommerce_cart_calculate_fees', function($cart) {
$discount = 10;
$cart->add_fee('Скидка', -$discount);
});
В этом примере мы добавляем фиксированную скидку в 10 единиц к общей стоимости корзины
Пример добавления сборов в зависимости от общего веса товаров:
add_action('woocommerce_cart_calculate_fees', function($cart) {
$total_weight = $cart->get_cart_contents_weight();
if ($total_weight > 10) {
$fee = 5;
$cart->add_fee('Сбор за тяжелый груз', $fee);
}
});
Здесь мы добавляем сбор за тяжелый груз, если общий вес товаров в корзине превышает 10 единиц
Пример добавления скидки для определенной категории товаров:
add_action('woocommerce_cart_calculate_fees', function($cart) {
$discount = 0;
foreach ($cart->get_cart() as $cart_item) {
if (has_term('категория-скидки', 'product_cat', $cart_item['product_id'])) {
$discount += 5;
}
}
if ($discount > 0) {
$cart->add_fee('Скидка на категорию', -$discount);
}
});
В этом примере мы добавляем скидку на корзину для товаров из определенной категории
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо добавить динамические сборы или скидки в корзину в зависимости от условий
– Производительность
Может повлиять на производительность, если слишком много условий и вычислений, поэтому старайтесь оптимизировать код
– Предупреждения
Обязательно учитывайте, что изменения в стоимости могут повлиять на общее восприятие пользователем и его решение о покупке
Альтернативы
Тип: filter
Этот хук позволяет изменить готовый массив сборов перед его выводом
Используйте его, если нужно изменить уже добавленные сборы перед их отображением на странице