Wordpress WooCommerce:不适用于一个优惠券代码的有条件手续费

Wordpress WooCommerce:不适用于一个优惠券代码的有条件手续费,wordpress,woocommerce,coupon,fee,Wordpress,Woocommerce,Coupon,Fee,我已经实现了一个代码,它将向所有WooCommerce产品收取1.50美元的手续费,除非使用优惠券代码。然而,我只想删除一张优惠券的手续费,而不是使用任何优惠券时的手续费。思想?下面是我的当前代码,唯一不应该申请手续费的优惠券是QFPZ8KSS(如果需要,优惠券的post ID是4432) 您只需将订单中使用的优惠券与免费送货优惠券进行比较。我认为下面的方法应该有效,记住我还没有测试过这个。希望这会有所帮助 你好,谢谢你的回复!当我添加您提供的代码(并将此处的优惠券ID替换为4432)时,它不

我已经实现了一个代码,它将向所有WooCommerce产品收取1.50美元的手续费,除非使用优惠券代码。然而,我只想删除一张优惠券的手续费,而不是使用任何优惠券时的手续费。思想?下面是我的当前代码,唯一不应该申请手续费的优惠券是QFPZ8KSS(如果需要,优惠券的post ID是4432)


您只需将订单中使用的优惠券与免费送货优惠券进行比较。我认为下面的方法应该有效,记住我还没有测试过这个。希望这会有所帮助


你好,谢谢你的回复!当我添加您提供的代码(并将此处的优惠券ID替换为4432)时,它不会删除1.50美元的手续费,因为优惠券代码已应用。也许“$fee=0;”需要有条件地添加到某个地方?当我编辑优惠券时,URL以“post=4432&action=edit”结尾,这表明4432是优惠券ID。是否正确?
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 = 1.50;

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

}