Описание woocommerce_order_recalculate_coupons_coupon_object
— Filter
Хук woocommerce_order_recalculate_coupons_coupon_object позволяет изменить объект купона во время перерасчета купонов в заказе WooCommerce. Он срабатывает после того, как купон был применен к заказу, и до того, как итоговая сумма заказа была пересчитана
Примеры использования
Пример изменения значения скидки купона:
add_filter('woocommerce_order_recalculate_coupons_coupon_object', function($coupon, $cart) {
if ($coupon->get_code() === 'SPECIAL10') {
$discount = $coupon->get_discount_amount();
$coupon->set_discount_amount($discount * 2); // Удваиваем скидку
}
return $coupon;
});
В этом примере мы удваиваем скидку, если код купона равен ‘SPECIAL10’.
Пример добавления условия на минимальную сумму заказа для купона:
add_filter('woocommerce_order_recalculate_coupons_coupon_object', function($coupon, $cart) {
if ($cart->get_subtotal() < 50) {
$coupon->set_discount_amount(0); // Отменяем скидку, если сумма меньше 50
}
return $coupon;
});
Здесь мы отменяем скидку, если сумма заказа меньше 50.
Пример изменения типа купона:
add_filter('woocommerce_order_recalculate_coupons_coupon_object', function($coupon, $cart) {
if ($coupon->get_code() === 'FREEDELIVERY') {
$coupon->set_discount_type('fixed_cart'); // Меняем тип на фиксированную скидку
}
return $coupon;
});
В этом примере мы меняем тип купона на фиксированную скидку, если код купона равен ‘FREEDELIVERY’.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменять параметры купона перед перерасчетом итоговой суммы заказа
– Производительность
Следует следить за производительностью, так как слишком сложные операции могут замедлить процесс перерасчета
– Предупреждения
Не забывайте проверять условия и логику изменения значений, чтобы избежать неожиданных ошибок в расчетах
Альтернативы
Тип: filter
Этот хук позволяет изменить сумму скидки, применяемой купоном, перед ее применением к заказу
Используйте его, если нужно изменить сумму скидки непосредственно перед применением купона