2014-02-07 6 views
12

Wie kann ich die Bestell-ID in WooCommerce abrufen?Wie kann ich die Bestell-ID in WooCommerce bekommen?

+1

Nur um zu verdeutlichen: 'order id 'ist gleich' post id ', wie in Wordpress-Standardtabellen gefunden. 'Bestellnummer' ist der Code, der die Bestellung von WooCommerce darstellt, wie sie in WC-Tabellen dargestellt wird. –

Antwort

19

es funktioniert. Nur es modifizierte

global $woocommerce, $post; 

$order = new WC_Order($post->ID); 

//to escape # from order id 

$order_id = trim(str_replace('#', '', $order->get_order_number())); 
+0

Ich habe gerade versucht - '$ order-> get_order_number()' und es gab nur die ID zurück (Es gab keine #). Ich musste das # nicht ersetzen. Wahrscheinlich neuesten Woocommerce Update entfernt #. Kann jemand bestätigen? – Aajahid

+0

Ja, ich kann bestätigen, dass '$ order-> get_order_number()' nur die ID zurückgibt (es gibt kein "#" Zeichen) seit mindestens Woocommerce Version 2.4 (bis einschließlich 3.0 und höher). Es kann von Plugins mit einem Wordpress-Filter "woocommerce_order_number" überschrieben werden, so dass es am besten davon ausgeht, dass es nur für die Anzeige gedacht ist und möglicherweise nicht numerisch ist. Vielen Dank! – truemedia

9

ich nicht testen und weiß nicht Waren Sie es brauchen, aber:

$order = new WC_Order(post->ID); 
echo $order->get_order_number(); 

Lassen Sie mich wissen, ob es funktioniert. Ich glaube Bestellnummer Echos mit der "#" aber Sie können teilen, wenn nur die Nummer nur benötigt.

+0

Ich habe dies vorher getan, es funktioniert nicht, das Problem ist, was in WC_Order für Parameter sein muss, ich denke, ich muss den Cookie löschen und dann den Lagerbestand manuell reduzieren. – moslem

+0

(Post-> ID) was wird es geben? – 981

14

Dies ist eine ganz alte Frage jetzt, aber jemand kommt hier kann nach einer Antwort suchen:

echo $order->id; 

Dies sollte die Reihenfolge ID ohne „#“ zurückzukehren.

EDIT (FEV/2018)

Die aktuelle Art und Weise, dies zu erreichen, ist die Verwendung:

$order->get_id(); 
+0

Das ist hilfreich –

+2

Dies gibt die ID des Bestellpostens zurück, nicht die ID des Auftrags. $ order-> get_order_number(); ist die richtige Antwort. – piersb

+2

Wenn Sie bei Google nach etwas Ähnlichem suchen, ist dies der erste Beitrag. '$ order-> id' wird nicht mehr unterstützt, Sie erhalten einen Fehler (Mitglied hat geschützten Zugriff). Aber wenn Sie ID erhalten möchten (nicht die Nummer bestellen) Sie es mit tun können: 'auftrags- $> GET_ID();' – emilushi

1
$order = new WC_Order($post_id); 

Wenn Sie

echo $order->id; 

dann werden Sie die ID des Beitrags von dem zurückgegeben werden, die im Auftrag hergestellt. Wie du schon weißt, ist es wahrscheinlich nicht das, was du willst.

echo $order->get_order_number(); 

wird die ID der Bestellung (mit einem # davor) zurückgeben. Um die #,

echo trim(str_replace('#', '', $order->get_order_number())); 

wie die angenommene Antwort loszuwerden.

0

Ab WooCommerce 3,0

$order->id; 

wird nicht funktionieren, es Ankündigung generieren, verwenden Getter-Funktion:

$order->get_id(); 

Das gleiche gilt für andere WooCommerce Objekte wie ProCut gilt.

Verwandte Themen