仅当购物车有 4 个或更少的特定运输类别的产品时,我才尝试取消设置两种运输方式。
运送方式: flat_rate:20 和 flat_rate:21
船级:182
这就是我所拥有的:
add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_shipping_class', 10, 2 );
function hide_shipping_method_based_on_shipping_class( $rates, $package )
{
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// Shipping Class To Find
$class = 182;
// Number Of Shipping Class Items In Cart
$amount = 4;
// Shipping Methods To Hide
$method_key_ids = array('flat_rate:20', 'flat_rate:21');
// Checking In Cart Items
foreach( $package['contents'] as $item ) {
// If We Find The Shipping Class and Number of Items
if( $item['data']->get_shipping_class_id() == $class && count($package['contents']) <= $amount ){
foreach( $method_key_ids as $method_key_id ){
unset($rates[$method_key_id]); // Remove Targeted Methods
}
break; // Stop The Loop
}
}
return $rates;
}
创建以下逻辑:
1. 如果购物车有 4 件或更少的运输类别 181 的产品,请取消设置以下运输方式:
'统一费率:20'
'统一费率:21'
2. 如果购物车有 5 个或更多运输类别 181 的产品,请取消设置以下运输方式:
'wf_shipping_ups:07'
'wf_shipping_ups:08'
'wf_shipping_ups:11'
'wf_shipping_ups:54'
'wf_shipping_ups:65'
'wf_shipping_ups:70'
'wf_shipping_ups:74'
'免费送货:2'
'请求运输报价'
如果我单独使用它们,这两个代码都可以工作。但是当我尝试同时使用两者时出现错误。
我收到以下错误: 无法重新声明 hide_shipping_method_based_on_shipping_class() (之前在 /functions.php:272 中声明)
梦里花落0921
慕容708150