2015-03-04 9 views
5

Ich versuche, eine Funktion zu erstellen, die eine Bestellung nach ihrer ID abruft. Aus irgendeinem Grund kann ich die globale Funktion WooCommerce get_order nicht funktionieren. Ich übergebe eine gültige Bestellung id an die Funktion und versuche, sie auszudrucken, um zu überprüfen, ob sie funktioniert. Die Funktion wurde in meine Datei functions.php platziert.WooCommerce - get_order() funktioniert nicht

Ich habe andere Daten aus der Funktion ohne ein Echo echo getestet.

+0

Und wie Sie diese Funktion genutzt haben? Mehr Detail erfordert hier .. –

+0

' nickyb

+0

Willkommen bei Stack Overflow. Ich habe versucht, die Formulierung in Ihrer Frage zu verbessern, um anderen klar zu machen, was das Problem ist, dem Sie begegnen. Wenn Sie mit irgendeiner Dokumentation für 'get_order' verlinken können, wird es für diejenigen, die nicht mit WooCommerce vertraut sind, einfacher, Ihre Frage zu beantworten. –

Antwort

14

Zunächst einmal machen Funktion wie folgt aus:

function getWC_order_details($order_id) { 
    $order = new WC_Order($order_id); 
    var_dump($order); 
} 

Danach, Verwenden Sie es mit einigen woo_commerceAktion oder Filter.

function use_after_cart_table(){ 
    getWC_order_details(40); 
} 
add_action('woocommerce_after_cart_table', 'use_after_cart_table'); 

So, nachdem alle Artikel in den Warenkorb legen können, werden Sie nach dem Warenkorb Tabelle sehen, dass es ein Array enthält alle Details ist.

HINWEIS: Sie können jede andere Aktion oder Filter verwenden und Sie finden sie here.

EDITED:

function getWC_order_details($order_id) { 
    $order = new WC_Order($order_id); 
    //var_dump($order); 
    $order_shipping_total = $order->get_shipping(); 
    $order_shipping_method = $order->get_shipping_methods(); 
    var_dump($order_shipping_total);//Use it for debugging purpose or to see details in that array 
    var_dump($order_shipping_method);//Use it for debugging purpose or to see details in that array 

    $_order = $order->get_items(); //to get info about product 
    foreach($_order as $order_product_detail){ 
     //var_dump($order_product_detail); 
     echo "<b>Product ID:</b> ".$order_product_detail['product_id']."<br>"; 
     echo "<b>Product Name:</b> ".$order_product_detail['name']."<br><br>"; 
    } 
    //var_dump($_order); 
} 
+0

Danke der erste Teil ist, was ich brauchte. Diese Funktion ist nicht für den Einkaufswagen oder Kunden. Es ist Teil einer größeren Funktion, an der ich arbeite, wenn sich ein Auftragsstatus in Bearbeitung ändert. Ich dachte "WC_Order" würde alles über die Bestellung beinhalten. Irgendeine Idee, wie man die Produkte, den Namen und einige Versanddetails von einer Auftragsidentifikation erhält? – nickyb

+0

Sie meinten die Produkte, die nur in dieser bestimmten Reihenfolge sind ... richtig? –

+0

ja, nur die Informationen für diese bestimmte Reihenfolge. – nickyb

0

versuchen Sie dies.Es könnte nützlich für Sie sein.

function getWC_order_details($id) 
{ 
$array = WC_API_Orders::get_order($id, $fields); 
print "<pre>"; 
print_r($order); 
print "</pre>"; 
} 

Quelle: Dateiname: WooCommerce/includes/api/Klasse-WC-api-orders.php

+0

Hat nicht funktioniert, aber danke für den Versuch. Ich habe das ursprünglich versucht. '$ bestellen = WC_API_Orders :: get_order ($ ID, $ Felder);' – nickyb