如何限制购物车中的运输方式 - woocommerce

时间:2021-05-17 08:01:00

标签: php wordpress woocommerce

我正在尝试在 woocommerce 中解决我的运输问题,以便如果启用了一项运输,它将优先并且将成为唯一可用的运输类别。

在下面的示例中,我想说明运输类别 flat_rate:13 是否在购物车中,然后取消其他两个运费 flat_rate:9flat_rate:6。但是,即使运输类别 flat_rate:13 在购物车中,它似乎仍会显示所有运输类别以供选择。

代码下方:

add_filter( 'woocommerce_package_rates', 'businessbloomer_hide_free_shipping_for_shipping_class', 10, 2 );
   
function businessbloomer_hide_free_shipping_for_shipping_class( $rates, $package ) {
   $shipping_class_target = 13; // shipping class ID (to find it, see screenshot below)
   $in_cart = false;
   foreach ( WC()->cart->get_cart_contents() as $key => $values ) {
      if ( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_target ) {
         $in_cart = true;
         break;
      } 
   }
   if ( $in_cart ) {
      unset( $rates['flat_rate:6'] ); 
      unset( $rates['flat_rate:9'] ); 
   }
   return $rates;
}

0 个答案:

没有答案