it-swarm.com.de

Holen Sie sich die Produkt-ID von der Bestell-ID im Woocommerce

Ich habe Probleme mit Woocommerce-Produktdetails und der Beziehung zu Bestelldetails. Ich kann die Produkt-ID einer zugehörigen Bestell-ID auf der Seite Bestellungen anzeigen des Woocommerce-Themas nicht finden. Ich möchte einfach nur den Produktinhalt und den Permalink usw. auf Bestellungen anzeigen Seite erhalten.

Ich habe versucht, in wp_postmeta zu suchen, hatte aber kein Glück.

36
arslaan ejaz

WooCommerce 3.0+

sie können die Bestellpositionen einer Bestellung per erhalten

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

wenn Sie dann die Elemente durchlaufen, können Sie alle relevanten Daten abrufen:

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

ein guter Tipp ist, zu überprüfen, wie die Admin-Bestellseiten die Daten erhalten. Dort finden Sie viele Antworten!

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'];
}
66
Ewout

Ich habe daran gearbeitet und etwas erreicht. Das möchte ich anderen Entwicklern mitteilen. Dies ist keine bevorzugte Methode, aber aus Wissensgründen veröffentliche ich meine Antwort.

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

hoffnung hilft jemandem.

Zusätzlich:

Verwenden Sie besser das Präfix für WordPress-Tabellen, um Probleme bei mehreren Websites oder bei der Migration usw. zu vermeiden.

global $wpdb;
$table_name = $wpdb->prefix . 'table_name'; 
5
arslaan ejaz