Описание woocommerce_order_get_subtotal
— Filter
Хук woocommerce_order_get_subtotal позволяет изменить итоговую сумму заказа, возвращаемую для конкретного заказа. Он срабатывает при получении суммы заказа и позволяет вносить изменения в расчет итоговой стоимости до ее отображения на страницах оформления заказа или в админке
Примеры использования
Пример добавления фиксированной скидки к сумме заказа:
add_filter('woocommerce_order_get_subtotal', function($subtotal, $order) {
$discount = 10.00;
return $subtotal - $discount;
}, 10, 2);
В этом примере мы вычитаем фиксированную скидку в 10.00 из общей суммы заказа
Пример применения процентной скидки к сумме заказа:
add_filter('woocommerce_order_get_subtotal', function($subtotal, $order) {
$percentage_discount = 0.1; // 10% скидка
return $subtotal * (1 - $percentage_discount);
}, 10, 2);
Здесь мы применяем 10% скидку к итоговой сумме заказа
Пример изменения суммы в зависимости от статуса заказа:
add_filter('woocommerce_order_get_subtotal', function($subtotal, $order) {
if ($order->get_status() === 'completed') {
return $subtotal + 5.00; // Добавляем 5.00 для завершенных заказов
}
return $subtotal;
}, 10, 2);
В этом примере мы добавляем 5.00 к сумме заказа, если заказ завершен
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить сумму заказа перед ее отображением пользователю или в админке
– Производительность
Убедитесь, что изменения не влияют на производительность, особенно если хук используется в циклах или больших объемах данных
– Предупреждения
Следите за тем, чтобы ваши изменения не нарушали логику расчета заказов и не приводили к ошибкам
Альтернативы
Тип: filter
Этот хук позволяет изменить итоговую сумму заказа, включая налоги и доставку
Используйте его, если нужно изменить общую сумму заказа, а не только сумму без налогов и доставки