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

时间:2018-11-28 10:36:06

标签: php wordpress woocommerce cart fee

我正在使用一些代码在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 个答案:

答案 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文件中。经过测试,可以正常工作。

  

注意:优惠券折扣仅适用于购物车商品。他们不在乎费用。