首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WooCommerce:有条件手续费,不只适用于一个代金券代码

WooCommerce:有条件手续费,不只适用于一个代金券代码
EN

Stack Overflow用户
提问于 2019-12-14 01:54:41
回答 1查看 76关注 0票数 0

我已经实现了代码,将收取1.50美元的手续费,所有的WooCommerce产品,除非使用优惠券代码。然而,我只想取消手续费的单一优惠券,而不是当任何优惠券使用。有什么想法?下面是我目前的代码,唯一不应该有手续费的优惠券是QFPZ8KSS (如果需要的话,优惠券的帖子ID是4432 )。

代码语言:javascript
复制
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' );

}
EN

回答 1

Stack Overflow用户

发布于 2019-12-14 02:48:34

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

代码语言:javascript
复制
<?php
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();

$fee = 1.50;

  $applied_coupon_ids;

  // Coupons used in the order loop
  foreach( $applied_coupons_arr as $coupon ){

      // Get Coupon ID
      $coupon_post_obj = get_page_by_title($coupon, OBJECT, 'shop_coupon');
      $coupon_id       = $coupon_post_obj->ID;

      // Store in array
      array_push($applied_coupon_ids, $coupon_id);
  };
  
  // Check if your free shipping coupon is used
  if(! in_array('COUPON_ID_HERE', $applied_coupon_ids)){
    WC()->cart->add_fee( ''.$applied_coupons_count, $fee, true, 'standard' );
  };
?>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59327597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档