Описание woocommerce_order_get_total_discount
— Filter
Хук woocommerce_order_get_total_discount позволяет изменить общую сумму скидки в заказах WooCommerce. Он срабатывает при расчете итоговой скидки во время обработки заказа и позволяет модифицировать значение скидки перед выводом на экран
Примеры использования
Пример добавления фиксированной суммы к общей скидке:
add_filter('woocommerce_order_get_total_discount', function($discount, $order) {
return $discount + 5.00;
}, 10, 2);
В этом примере мы добавляем фиксированную сумму в 5.00 к общей скидке заказа
Пример применения условия для изменения скидки:
add_filter('woocommerce_order_get_total_discount', function($discount, $order) {
if ($order->get_total() > 100) {
return $discount + 10.00;
}
return $discount;
}, 10, 2);
Здесь мы добавляем 10.00 к скидке, если общая сумма заказа превышает 100.00
Пример изменения скидки на основе типа товара в заказе:
add_filter('woocommerce_order_get_total_discount', function($discount, $order) {
foreach ($order->get_items() as $item) {
if ($item->get_product_id() == 123) {
return $discount + 2.00;
}
}
return $discount;
}, 10, 2);
В этом примере мы добавляем 2.00 к скидке, если в заказе есть товар с ID 123
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить общую скидку в заказах в зависимости от различных условий
– Производительность
Будьте осторожны с производительностью, особенно если проверяете большое количество товаров в заказе
– Предупреждения
Убедитесь, что изменения не нарушают логику расчета итоговой суммы заказа
Альтернативы
Тип: filter
Этот хук позволяет изменять общую скидку в корзине перед расчетом итоговой суммы
Используйте его, если нужно изменить скидку до оформления заказа
Тип: action
Этот хук срабатывает при расчете итоговых сумм заказа и позволяет добавлять дополнительные действия
Используйте его, если вам нужно выполнить дополнительные действия при расчете итоговой суммы