WooCommerce - 如何检查订单是否有实体产品?

Tor*_*ben 4 wordpress woocommerce

我需要确定该订单是否是需要运送实物商品的订单。

这样我就可以检查订单中是否有实体商品,或者订单中是否只有数字/虚拟产品。

我怎样才能以最好的方式做到这一点?

我收到订单的所有商品:

$order = new WC_Order($order_id);

$items = $order->get_items();
Run Code Online (Sandbox Code Playgroud)

How*_*d E 5

你可以做这样的事情。您需要循环遍历订单商品,并获取产品 ID 才能使用该方法WC_Product::is_virtual();


$order = new WC_Order($order_id);

foreach ($order->get_items() as $order_item){
    $item = wc_get_product($order_item->get_product_id());
    if (!$item->is_virtual()) {
        // this order contains a physical product do what you want here or return false
    }
}
Run Code Online (Sandbox Code Playgroud)