在以下情况下,我试图禁用送货方式(仅允许本地取货)
我可以成功地阻止一个特定类别,但是如何针对类别组合扩展该类别(如果语句不起作用)? 谢谢你
add_filter( 'woocommerce_package_rates', 'acessory_hide_shipping_methods', 90, 2 );
function acessory_hide_shipping_methods( $rates, $package ){
$category = 'acessory';
$product_cat = get_term_by( 'slug', $category, 'product_cat' );
$rates_arr = array();
if ( wp_is_category_alone_in_cart( $category ) && ! WC()->cart->is_empty() ) {
foreach($rates as $rate_id => $rate) {
if ('local_pickup' === $rate->method_id) {
$rates_arr[ $rate_id ] = $rate;
}
}
}
return !empty( $rates_arr ) ? $rates_arr : $rates;
}
function wp_is_category_alone_in_cart( $category ) {
$category_checks = array();
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
$product_in_cat = has_term( $category, 'product_cat', $product->get_id() );
array_push( $category_checks, $product_in_cat );
}
return ! in_array( false, $category_checks, true );
}