Obtener el atributo del artículo/producto en el pedido de WooCommerce

1 minuto de lectura

Estoy tratando de obtener un artículo o atributo de producto en el pedido de WooCoomerce.

¿Cómo puedo obtenerlo?

$order  = new WC_Order( $order_id );
$items  = $order->get_items();

foreach ( $items as $item ) {
        $pid    = $item['product_id'];
        $patt   = $pid->get_attribute( 'pa_myattrname' );
        echo $patt;
}

Más tarde, quiero insertar un enlace de respuesta automática en el atributo, de modo que después de que el usuario complete el pago, se suscribirá automáticamente a mi respuesta automática.

Gracias

Sé que es una pregunta antigua, pero esa respuesta puede ayudar a alguien que está buscando una mejor opción.
Hay una forma mucho más sencilla de obtener los atributos del producto del pedido. Solo necesita ingresar a los productos (artículos) y luego cargar meta data

// at first get order object
$order = wc_get_order($orderId);

// iterate through order items/products
foreach ($order->get_items() as $item) {
  // load meta data - product attributes
  foreach ($item->get_meta_data() as $metaData) {
    $attribute = $metaData->get_data();

    // attribute value
    $value = $attribute['value'];

    // attribute slug
    $slug = $attribute['key'];
  }
}

$item['product_id']; devolverá el entero product_id, no puede llamar get_attribute método en él. Usando el entero product_id, necesita crear un objeto Producto y luego llamar al método

$pid = $item['product_id'];  // returns the product id

$p = new WC_Product( $pid );  // create an object of WC_Product class

$patt = $p->get_attribute( 'pa_myattrname' );  // call get_attribute method

echo $patt;

  • ¡Gracias, Anand! Esta funcionando. Muchísimas gracias 🙂

    – Imán Herlambang

    7 oct 2015 a las 19:28

  • En parte también me ayudó, ¡gracias! Imam Herlambang, no olvide marcar esto como la respuesta.

    – Dmitriy Gamolin

    10 de marzo de 2017 a las 8:17


¿Ha sido útil esta solución?