Это решается с помощью функции:
// Функция для расчета скидки
function custom_discount_total( $total, $cart ) {
// Проверяем, выбрана ли полная оплата
if ( isset( $_POST['wc_deposit_option'] ) && $_POST['wc_deposit_option'] === 'full' ) {
// Применяем скидку 10%
$total -= $total * 0.1;
}
return $total;
}
add_filter( 'woocommerce_cart_total', 'custom_discount_total', 10, 2 );
// Функция для обновления суммы к оплате на странице оформления заказа
function custom_update_order_review( $data ) {
// Проверяем, выбрана ли полная оплата
if ( isset( $_POST['wc_deposit_option'] ) && $_POST['wc_deposit_option'] === 'full' ) {
// Получаем общую сумму заказа
$total = WC()->cart->get_total();
// Применяем скидку 10%
$total -= $total * 0.1;
// Обновляем сумму к оплате на странице оформления заказа
$data['payment_total'] = wc_price( $total );
}
return $data;
}
add_filter( 'woocommerce_get_order_item_totals', 'custom_update_order_review', 10, 1 );