Hide shipping methods if a virtual product is in the cart in WooCommerce on child sites.
Snippet Type
Execute on Child Sites
Snippet
add_filter( 'woocommerce_cart_needs_shipping', 'remove_virtual_product_shipping_methods' );
function remove_virtual_product_shipping_methods( $needs_shipping ){
//Loop trough cart items
foreach ( WC()->cart->get_cart() as $item ) {
//If a product in cart is a vritual product remove all shipping
if ( $item['data']->is_virtual() ) {
$needs_shipping = false;
break;
}
}
return $needs_shipping;
}