微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在WooCommerce中需要最小重量的交付方式

如何解决在WooCommerce中需要最小重量的交付方式

在Woocommerce商店中,有3种运输选项

  • 免费送货
  • 统一费率
  • 领取

Free shipping depending on weight and on minimal cart amount的启发,我希望在选择送货方式时要求购物车的总重量最小。

  • 如果客户订购的重量不超过24千克,则只能提货。
  • 如果购物车的总重量在25kg至49kg之间,则只能在固定费用方式或皮卡车之间选择。
  • 如果购物车的总重量为50公斤或以上,他们可以选择免费送货和取货。

在互联网上,我找到了WooCommerce: How to Setup Tiered Shipping Rates by Order Amount,我对其进行了自定义以使其在商店中正常工作,因为我们有2个运输区域(因此有多个固定费率,本地取货等)。

不幸的是,它不能满足我的需求,尽管我认为代码是正确的?任何帮助将不胜感激。

add_filter( 'woocommerce_package_rates','bbloomer_woocommerce_tiered_shipping',9999,2 );

function bbloomer_woocommerce_tiered_shipping( $rates,$package ) {
 
 if ( WC()->cart->get_cart_contents_weight() < 25 ) {
   
     if ( isset( $rates['local_pickup:5'],$rates['local_pickup:9'] ) ) unset( $rates['flat_rate:3'],$rates['flat_rate:6'],$rates['free_shipping:1'],$rates['free_shipping:8'] );
   
 } elseif ( WC()->cart->get_cart_contents_weight() < 50 ) {
   
     if ( isset( $rates['flat_rate:3'],$rates['local_pickup:5'],$rates['local_pickup:9'] ) ) unset( $rates['free_shipping:1'],$rates['free_shipping:8'] );
   
 } else {
   
     if ( isset( $rates['free_shipping:1'],$rates['free_shipping:8'],$rates['flat_rate:6'] );
   
 }

 return $rates;

}

解决方法

注意:您不能以应用方式将multiple conditions添加到if条件。


将要在特定条件下保留的运输选项添加到 protected override void OnAppearing() { base.OnAppearing(); SetButtonAccordingToPosition(); } 阵列

  • 当客户订购24公斤或更少的货物时=当地取货
  • 如果购物车总重量在25kg至49kg之间=本地取货和统一费用
  • 如果购物车总重量为50公斤或以上=当地取件并免费送货
$available_shipping

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。