首页 文章

Woocommerce折扣优惠券定制运费

提问于
浏览
0

我在过去4个小时内尝试过研究这个问题的答案,但我还没有找到答案 .

我在我的woocommerce结帐页面上添加了自定义费用 . 这是由于woocommerce航运无法提供的复杂的交付计算 .

我现在需要创建一张优惠券,如果输入优惠券,则将此自定义费用设置为零 .

这是我的定制费用

WC()->cart->add_fee( __('Shipping', 'woocommerce'), $shipping_price );

这是我需要实现的目标 .

if($coupon_code == "this-string"){
$shipping_price = 0;
}

我需要一种方法来检查提交的优惠券代码是否等于“this-string”,如果是,我需要将$ shipping Fee设置为零 .

请各位帮助将不胜感激 .

3 回答

  • 0

    您可以拨打 WC()->cart->get_applied_coupons() 以获取应用于购物车的所有优惠券 . 然后,您可以检查您的优惠券代码是否在该数组中 . 像这样的东西:

    if(in_array($coupon_code, WC()->cart->get_applied_coupons())) {
      // Do something
    }
    
  • 0

    未经测试,但我认为你应该在应用代码时做一些事情,所以 woocommerce_applied_coupon 钩子是相关的 .

    function so_46429329_applied_coupon( $coupon_code ) {
        if( $coupon_code == "this-string" ){
            $shipping_price = 0;
            WC()->cart->add_fee( __('Shipping', 'woocommerce'), $shipping_price );
        }
    }
    add_action( 'woocommerce_applied_coupon', 'so_46429329_applied_coupon' );
    

    我没有测试的部分是这是否会覆盖现有的“运费”,或者您是否需要找到一种方法来先删除它 .

  • 0

    以下功能将为您的woo-commerce Cart添加运费,之后会增加结账价格 .

    // ADD SHIPPING COST
    
    function woo_add_cart_fee() {
    
      WC()->cart->add_fee( __('Shipping', 'woocommerce'), 100 );
    
    }
    
    add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );
    

    如果您想将自定义优惠券应用于运费,您可以采取一些措施

    // ADD SHIPPING COST
    
    function woo_add_cart_fee() {
    
       $custom_coupon = $_GET["coupon_name"];
    
        if ($custom_coupon = 'discount_code_half') {
    
          WC()->cart->add_fee( __('Shipping', 'woocommerce'), 100 );
    
        }elseif ($custom_coupon = 'discount_code_more_than_half') {
    
          WC()->cart->add_fee( __('Shipping', 'woocommerce'), 50 );
    
        }elseif ($custom_coupon = 'discount_code_free') {
    
          WC()->cart->add_fee( __('Shipping', 'woocommerce'), 0 );
    
        }else ( ! $custom_coupon) {
    
          WC()->cart->add_fee( __('Shipping', 'woocommerce'), 200 );
    
        }
    }
    add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );
    

    要使用此方法,您需要使用优惠券按钮将优惠券名称提交到购物车页面 .

    从上一页开始,或者您可以将其提交到它所在的同一页面 . 无论哪种方式,您的页面都必须刷新,以便您可以使用

    $custom_coupon = $_GET["coupon_name"];
    

    希望这个答案有所帮助:)

相关问题