如果购物车没有优惠券,则有条件地增加购物车费

时间:2017-02-23 19:15:30

标签: php wordpress woocommerce cart coupon

在WooCommerce中,我试图找出如何在没有优惠券或促销代码应用于购物车时为每个订单添加“手续费”。

这是我的“费用”或“手续费”代码:

    add_action( 'woocommerce_cart_calculate_fees','endo_handling_fee' );

function endo_handling_fee() {

global $woocommerce;

     if ( is_admin() && ! defined( 'DOING_AJAX' ) )
          return;

     $fee = 2.00;
     $woocommerce->cart->add_fee( 'Handling', $fee, true, 'standard' );
}

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:3)

在这里,我获得了购物车应用优惠券的数量,如果没有优惠券应用于购物车,则购物车将收取费用。

以下是代码:

add_action( 'woocommerce_cart_calculate_fees','conditional_handling_fee' );
function conditional_handling_fee() {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Get the applied coupons + the count (in cart)
    $applied_coupons_arr = WC()->cart->get_applied_coupons();
    $applied_coupons_count = count($applied_coupons_arr);

    $fee = 2.00;

    if( 0 == $applied_coupons_count )
        WC()->cart->add_fee( 'Handling - '.$applied_coupons_count, $fee, true, 'standard' );

}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码经过测试并有效。

参考:WC_Cart class - get_applied_coupons() method