在Woocommerce中添加费用之前检查应用的优惠券

我正在使用一些代码在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语句,但是这会显示是否有优惠券的费用 . 所以我被卡住了,非常感谢任何帮助!

谢谢

回答(1)

2 years ago

您的代码有点过时,您需要在函数内添加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文件中 . 经过测试和工作 .

注意:优惠券折扣仅适用于购物车商品 . 他们不关心费用 .