WooCommerce добавить комиссию, если купон применен - PullRequest
0 голосов
/ 11 ноября 2018

Я хотел бы иметь возможность добавить фиксированную плату в размере 20 долларов США, если к корзине применен данный код купона (скидка 100%). Плата также не должна облагаться налогами. Я предлагаю услугу попробовать на дому за 20 долларов, поэтому определенный купон может сделать скидку на корзину и все товары на 100%, но добавить фиксированную плату в размере 20 долларов. Любая помощь очень ценится!

JC

1 Ответ

0 голосов
/ 12 ноября 2018

Следующий код будет взимать плату в размере $20, если к корзине применен определенный код купона:

add_action( 'woocommerce_cart_calculate_fees','conditional_custom_fee', 10, 1 );
function conditional_custom_fee( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // HERE set your targeted coupon code (100 % off)
    $coupon_code = 'thatsforfree';

    // Check if our targeted coupon is applied
    if( in_array( wc_format_coupon_code( $coupon_code ), $cart->get_applied_coupons() ) ){
        $title = __('Fee', 'woocommerce'); // The fee title
        $cost  = 20; // The fee amount

        // Adding the fee (not taxable)
        $cart->add_fee( $title, $cost, false );
    }
}

Код помещается в файл function.php вашей активной дочерней темы (active theme). Проверено и работает.

Отображение на страницах корзины и оформления заказа (в теме магазина Woocommerce) :

enter image description here

Этот код использует API-интерфейс FEE Woocommerce с использованием WC_Cart метода add_fee() с выделенным хуком действия woocommerce_cart_calculate_fees.

...