Comprobar si un pedido contiene algún reembolso en Woocommerce 3

1 minuto de lectura

Avatar de usuario de xDrago
xDrago

¿Es posible verificar un pedido si contiene algún reembolso programáticamente?

Quiero mostrar un texto específico si ese es el caso. Hasta ahora estoy comprobando si está cancelado:

if($order->has_status('cancelled') echo "display text";

Pero dado que el estado del pedido no cambia si solo se reembolsa un solo artículo en un pedido de varios artículos, no sé cómo hacerlo.

¿Alguna idea?

Puedes usar WC_Order el método get_refunds() me gusta:

if( sizeof( $order->get_refunds() ) > 0 ) {
    printf( 'Order id %s has some refund', $order->get_id() ); 
}

O como una función condicional personalizada:

function has_refunds( $order ) {
    return sizeof( $order->get_refunds() ) > 0 ? true : false;
}

Uso:

if( has_refunds( $order ) ) {
   // Do something
}

Hilo de respuesta relacionado: Obtener pedidos reembolsados ​​y detalles de artículos de pedidos reembolsados ​​en Woocommerce 3

¿Ha sido útil esta solución?