Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何限制购物车运输方式_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 如何限制购物车运输方式

Php 如何限制购物车运输方式,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正试图在woocommerce中整理我的配送,这样,如果启用了一个配送,它将具有优先权,并且将是唯一可用的配送类别 在下面的示例中,我试图说明如果装运类别平仓费率:13在购物车中,则取消设置其他两个装运费率平仓费率:9和平仓费率:6。然而,它似乎仍然显示所有要选择的装运类别,即使装运类别flat_rate:13在购物车中 代码如下: add_filter( 'woocommerce_package_rates', 'businessbloomer_hide_free_shipping_for_

我正试图在woocommerce中整理我的配送,这样,如果启用了一个配送,它将具有优先权,并且将是唯一可用的配送类别

在下面的示例中,我试图说明如果装运类别
平仓费率:13
在购物车中,则取消设置其他两个装运费率
平仓费率:9
平仓费率: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;
}

我相信这回答了你的问题