Erhalten Sie Produkt-ID und Varianten-ID von einer Bestell-ID von außerhalb von WordPress
Lesezeit: 2 Minuten
Karem Connor
Ich versuche, WooCommerce mit PHP/MYSQL abzufragen Produkt-ID/Varianten-ID aus Auftragsnummer
Wenn das/die Produkt(e) in der Bestellung einfach ist/sind, erhalten Sie die Produkt-ID(s)
Wenn das/die Produkt(e) in der Bestellung variabel ist/sind, erhalten Sie die Variations-ID(s)
Wenn beide (einfach und variabel) beide erhalten (Produkt-ID(s) und Variations-ID(s))
HINWEIS: Das Skript, das ich codiere, ist unabhängig von WordPress.
Unter Verwendung verschiedener Aspekte der WooCommerce-API kann dies mit einer Version des Folgenden erreicht werden.
$order_id = XXX;
$order = wc_get_order( $order_id ); //returns WC_Order if valid order
$items = $order->get_items(); //returns an array of WC_Order_item or a child class (i.e. WC_Order_Item_Product)
foreach( $items as $item ) {
//returns the type (i.e. variable or simple)
$type = $item->get_type();
//the product id, always, no matter what type of product
$product_id = $item->get_product_id();
//a default
$variation_id = false;
//check if this is a variation using is_type
if( $item->is_type('variable') ) {
$variation_id = $item->get_variation_id();
}
//more code
}
Vorsicht, ich fürchte $item->get_type() wird nicht zurückkehren Variable oder einfach aber line_item
– Pablo SG Pacheco
15. März 2021 um 1:18 Uhr
Ich wünschte, ich hätte den Kommentar von @PabloSGPacheco früher gesehen. is_type gibt tatsächlich ‘line_item’ zurück und erweist sich als nicht hilfreich. Es ist wahrscheinlich am besten, einfach zu verwenden $product_id = $item->get_product_id() und $product_variation_id = $item->get_variation_id().
– Eric K
18. März 2021 um 15:31 Uhr
@ericK Ich bin froh, dass mein Kommentar nützlich war. Genau, wenn ich mich nicht irre, wenn Sie nachsehen $item->get_variation_id() bei einem Artikel, der kein variables Produkt ist, erhalten Sie null. Vielleicht ist dies tatsächlich ein zuverlässigerer Ansatz
– Pablo SG Pacheco
19. März 2021 um 13:11 Uhr
Wenn Sie möchten, dass die Produkt-ID einfach ist und die Variations-ID, wenn es sich um eine Variation handelt, können Sie Folgendes verwenden: $pid = $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id();
– TASan
26. November 2021 um 10:12 Uhr
Ich habe diese Antwort für Mod-Eingriffe markiert, da sie in der Tat völlig falsch ist. get_type kann nicht verwendet werden, um den Produkttyp zu ermitteln, da es immer “line_item” zurückgibt.
– Hybride Webentwicklung
15. März um 4:40 Uhr
Wie Sie in Anmerkung “Das Skript, das ich codiere, kodiere, ist unabhängig von WordPress” erwähnt haben.
Dann gibt es eine Abfrage, die Sie verwenden können
So erhalten Sie eine Liste der Variations-ID von der Produkt-ID.
ID AUSWÄHLEN AUS wp_posts WO post_parent = “PRODUKT_ID” UND post_type WIE ‘product_variation’
13108800cookie-checkErhalten Sie Produkt-ID und Varianten-ID von einer Bestell-ID von außerhalb von WordPressyes