WooCommerce – ¿Cómo comprobar si un pedido tiene productos físicos?

1 minuto de lectura

Avatar de usuario de Torben
torben

Necesito determinar si el pedido es un pedido que necesita el envío de bienes físicos.

Entonces puedo verificar si el pedido tiene productos físicos o si solo tiene productos digitales/virtuales.

¿Cómo puedo hacer esto de la mejor manera?

Recibo todos los artículos del pedido con:

$order = new WC_Order($order_id);

$items = $order->get_items();

Podrías hacer algo como esto. Debe recorrer los artículos del pedido y obtener las identificaciones del producto para usar el método 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
    }
}

¿Ha sido útil esta solución?