我正在使用一些代码在Woocommerce结帐时添加自定义费用,但是在应用优惠券时,它不会扣除费用。
是否可以在添加费用之前检查优惠券是否已使用?那就是所有优惠券,而不是特定优惠券。
到目前为止的代码是
global $woocommerce;
if (empty($woocommerce->cart->applied_coupons)) {
add_action( 'woocommerce_cart_calculate_fees','endo_handling_fee' );
function endo_handling_fee() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
$fee = 1.50;
$woocommerce->cart->add_fee( 'Transaction Fee', $fee, true, 'standard' );
}
}
所以您可以看到我正在尝试为优惠券添加if语句,但是无论是否有优惠券,这都会显示费用。所以我被困住了,任何帮助都将不胜感激!
谢谢
答案 0 :(得分:0)
您的代码有些过时,您需要在函数内添加If语句:
add_action( 'woocommerce_cart_calculate_fees','endo_handling_fee', 10, 1 );
function endo_handling_fee( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( sizeof( $cart->get_applied_coupons() ) > 0 )
return;
$fee = 1.50;
$cart->add_fee( __("Transaction Fee"), $fee, true );
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
注意:优惠券折扣仅适用于购物车商品。他们不在乎费用。