Следующий код будет взимать плату в размере $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) :
Этот код использует API-интерфейс FEE Woocommerce с использованием WC_Cart
метода add_fee()
с выделенным хуком действия woocommerce_cart_calculate_fees
.