Obtenha o ID do produto do ID do pedido no Woocommerce [closed]

34

Estou com problemas com os detalhes do produto Woocommerce e o relacionamento com os detalhes do pedido. Não consigo encontrar o ID do produto de um ID de pedido relacionado na página Visualizar pedidos do tema do Woocommerce. Eu simplesmente quero obter o conteúdo do produto e permalink etc na página Ver pedidos .

Eu tentei pesquisar em wp_postmeta , mas não tive sorte.

    
por arslaan ejaz 25.04.2013 / 09:57

2 respostas

64

WooCommerce 3.0 +

você pode obter os itens do pedido de um pedido

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

se você percorrer os itens, poderá obter todos os dados relevantes:

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

uma boa dica é verificar como as páginas de pedidos do administrador recebem os dados, você encontrará muitas respostas lá!

Pré-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'];
}
    
por Ewout 25.04.2013 / 18:13
5

Eu trabalhei nisso e consegui algo. Que gostaria de compartilhar com outros desenvolvedores. Essa não é a maneira preferida de fazer isso, mas, para o conhecimento, estou postando minha resposta.

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>'; 

a esperança ajudará alguém.

Além disso:

Melhor usar o prefixo da tabela wordpress para evitar problemas em vários sites ou na migração, etc.

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

Tags