Wie kann ich die Bestell-ID in WooCommerce abrufen?Wie kann ich die Bestell-ID in WooCommerce bekommen?
Antwort
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()));
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
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
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.
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();
Das ist hilfreich –
Dies gibt die ID des Bestellpostens zurück, nicht die ID des Auftrags. $ order-> get_order_number(); ist die richtige Antwort. – piersb
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
$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.
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.
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. –