Obtener ID de producto a partir de ID de pedido en Woocommerce [cerrado]

34

Tengo problemas con los detalles de los productos de Woocommerce y la relación de detalles de pedidos. No puedo encontrar el ID de producto de un ID de pedido relacionado en la página Ver pedidos del tema Woocommerce. Simplemente quiero obtener el contenido del producto y el enlace permanente, etc. en la página Ver pedidos .

Intenté buscar en wp_postmeta pero no tuve suerte.

    
pregunta arslaan ejaz 25.04.2013 - 09:57

2 respuestas

64

WooCommerce 3.0+

puede obtener los artículos del pedido de un pedido por

$order = wc_get_order( $order_id );
$items = $order->get_items();

luego, si recorres los elementos, puedes obtener todos los datos relevantes:

foreach ( $items as $item ) {
    $product_name = $item->get_name();
    $product_id = $item->get_product_id();
    $product_variation_id = $item->get_variation_id();
}

un buen consejo es comprobar cómo las páginas de orden de administración obtienen los datos, ¡encontrará muchas respuestas allí!

Pre-WooCommerce 3.0

$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
    $product_name = $item['name'];
    $product_id = $item['product_id'];
    $product_variation_id = $item['variation_id'];
}
    
respondido por el Ewout 25.04.2013 - 18:13
5

Trabajé en ello y logré algo. Que me gustaría compartir con otros desarrolladores. Esta no es la forma preferida de hacerlo, pero para mi conocimiento, estoy publicando mi respuesta.

global $wpdb;
            $result = $wpdb->get_results('select t1.order_item_id, t2.* FROM 
            wp_woocommerce_order_items as t1 JOIN wp_woocommerce_order_itemmeta as t2 ON t1.order_item_id = t2.order_item_id
            where t1.order_id='.$order->ID);
            echo '<pre>';
            print_r($result);
            echo '</pre>'; 

la esperanza ayudará a alguien.

Además:

Es mejor usar el prefijo de tabla de wordpress para evitar problemas en varios sitios web o en la migración, etc.

global $wpdb;
$table_name = $wpdb->prefix . 'table_name'; 
    
respondido por el arslaan ejaz 25.04.2013 - 19:19

Lea otras preguntas en las etiquetas