在Woocommerce中禁用特定优惠券代码的“购物车需要付款”

时间:2019-09-16 19:19:29

标签: php wordpress woocommerce cart hook-woocommerce

当我有特定的优惠券(例如“ tcrfam”)时,我需要隐藏信用卡付款,并且当我使用任何其他方式来显示信用卡付款时,我的想法是我不会提供100%的优惠券还是免费的,在任何情况下我都不会询问信用卡数据。

请参见示例: I need

我尝试了此代码,但不起作用:

add_action('woocommerce_before_checkout_form', 'apply_product_on_coupon');
function apply_product_on_coupon() {
  global $woocommerce;
  $coupon_id = 'tcrfam';
  if(in_array($coupon_id, $woocommerce->cart->get_applied_coupons())){    
    echo "Yes the coupon its inserted dd";
    add_filter( 'woocommerce_cart_needs_payment', '__return_false' );
  }
}

我需要在上面的代码中使用 add_filter(“ woocommerce购物车需要付款”,“ __ return_false”),但是我不知道该怎么做,有人可以给吗我对如何做的想法?谢谢

2 个答案:

答案 0 :(得分:1)

您需要的代码应直接位于过滤器挂钩中,例如:

add_filter( 'woocommerce_cart_needs_payment', 'filter_cart_needs_payment', 10, 2 );
function filter_cart_needs_payment( $needs_payment, $cart  ) {
    // The targeted coupon code
    $targeted_coupon_code = 'tcrfam';

    if( in_array( $targeted_coupon_code, $cart->get_applied_coupons() ) ) {
        $needs_payment = false;
    }
    return  $needs_payment;
}

代码进入活动子主题(或活动主题)的functions.php文件中。应该可以。

答案 1 :(得分:-2)

我发现此代码段对我非常有用,但我有一个问题……禁用付款方式的优惠券代码是否不止一个?可以用吗?

testing 1, testing 21

我试过了,但 Woocommerce 并没有问我每个优惠券代码的付款方式,而不仅仅是我写的两个。

提前致谢