Как настроить плагин WooCommerce Deposits так, чтобы автоматически предоставлялась скидка 10% при выборе полной оплаты?

Как настроить плагин WooCommerce Deposits для предоставления скидки в 10% при выборе полной оплаты и пересчета итоговой суммы к оплате (total)?
  • 11 марта 2024 г. 14:49
Ответы на вопрос 2
Для настройки плагина WooCommerce Deposits для предоставления скидки в 10% при выборе полной оплаты и пересчета итоговой суммы к оплате (total) необходимо выполнить следующие шаги:

1. Установите и активируйте плагин WooCommerce Deposits на вашем сайте.

2. Создайте новое правило скидки в разделе "WooCommerce -> Coupons". Для этого нажмите кнопку "Add Coupon" и укажите в поле "Coupon code" уникальный код купона (например, FULLPAYMENTDISCOUNT). Затем выберите тип скидки "Percentage discount" и введите значение 10 в поле "Coupon amount".

3. Перейдите в раздел "WooCommerce -> Settings -> Deposits" и выберите вкладку "Deposits & Full Payments". Установите галочку напротив опции "Apply Coupone": "Yes" для применения скидки к полной оплате.

4. Теперь при оформлении заказа пользователь сможет применить купон скидки FULLPAYMENTDISCOUNT, который автоматически применит 10% скидку к полной сумме заказа.

5. После применения купона скидки и пересчета итоговой суммы к оплате, пользователь сможет завершить оформление заказа с учетом полученной скидки.

Теперь ваш плагин WooCommerce Deposits настроен на автоматическое предоставление скидки в 10% при выборе полной оплаты и пересчета итоговой суммы к оплате (total).
Это решается с помощью функции: 
// Функция для расчета скидки
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 );
Похожие вопросы