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