add_filter('woocommerce_package_rates', 'hide_shipping_based_on_cart_content', 10, 2); function hide_shipping_based_on_cart_content($rates, $package) { $cart_contains_digital_products = false; foreach ($package['contents'] as $item) { $product = $item['data']; if ($product->is_downloadable()) { $cart_contains_digital_products = true; break; } } if ($cart_contains_digital_products) { foreach ($rates as $rate_id => $rate) { if ('flat_rate' === $rate->method_id) { unset($rates[$rate_id]); // Flat Rate Versand entfernen } } } return $rates; }