【发布时间】:2021-12-15 16:43:30
【问题描述】:
如果在 WooCommerce 上选择了一组产品,我想隐藏一组运输方式
我想我快到了,但我在 unset( $rates[$method_ids] ) 行上遇到错误。
这是我目前所得到的:
add_filter( 'woocommerce_package_rates', 'specific_products_shipping_methods_hide_many', 10, 2 );
function specific_products_shipping_methods_hide_many( $rates, $package ) {
$product_ids = array( 240555 ); // HERE set the product IDs in the array
$method_ids = array( 'flat_rate:7', 'flat_rate:13', 'flat_rate:26', 'flat_rate:27', 'local_pickup:24' ) ; // HERE set the shipping method IDs
$found = false;
// Loop through cart items Checking for defined product IDs
foreach( $package['contents'] as $cart_item ) {
if ( in_array( $cart_item['product_id'], $product_ids ) ){
$found = true;
break;
}
}
if ( $found )
unset( $rates[$method_ids] );
return $rates;
}
有什么建议吗?
【问题讨论】:
-
在
$rates[$method_ids]中方法 ID 看起来是一个数组。 -
有没有办法获取这些数组值并将其保存在 $rates[] 中?
-
您想取消设置
method_ids数组中的所有ID?然后,您需要遍历该数组。还是只有一个值?你能澄清一下吗?目前,您的错误是因为您无法取消设置$rates中的值数组。
标签: php wordpress woocommerce shipping-method