2013-08-12 9 views
11

Ich versuche, die Daten mit einer Bestellung auf dem Woocommerce-Plugin (WordPress) verbunden zu bekommen. Zur Zeit habe ich mein eigenes Plugin geschrieben, das den Code enthält:Woocommerce - PHP, um Bestellinformationen zu erhalten

<?php 
global $woocommerce; 
$order = new WC_Order($order_id); 
$order_shipping_total = $order->get_shipping(); 
echo $order_shipping_total; 
?> 

Dies ist nur um es zu testen, ich glaube nicht, das ist erwerbsfähigen, aber was ich wirklich brauchen, ist eine Liste der Aufträge zu erhalten Diese haben einen bestimmten Bestellstatus und können dann auf die Felder (wie den Vornamen) für jede Bestellung in dieser Liste zugreifen. Wie gehe ich dabei vor? Welche Dateien schließe ich auch ein, damit dies funktioniert? Die Datei class-wc-order()?

Antwort

22

Vor kurzem arbeitete ich für den Export von Bestellungen Daten in XML.

$user_id = get_current_user_id(); 
$args = array(
    'post_type' => 'shop_order', 
    'post_status' => 'publish', 
    'meta_key' => '_customer_user', 
    'meta_value' => $user_id, 
    'numberposts' => -1, // -1 for all orders 
    'posts_per_page' => '-1' 
); 
$my_query = new WP_Query($args); 

Auch alternative Art und Weise zum Laden von Aufträgen für einen bestimmten Kunden:

$args = array(
    'post_type' => 'shop_order', 
    'post_status' => 'publish', 
    'meta_key' => '_customer_user', 
    'posts_per_page' => '-1' 
); 
$my_query = new WP_Query($args); 

$customer_orders = $my_query->posts; 

foreach ($customer_orders as $customer_order) { 
$order = new WC_Order(); 

$order->populate($customer_order); 
$orderdata = (array) $order; 

// $orderdata Array will have Information. for e.g Shippin firstname, Lastname, Address ... and MUCH more.... Just enjoy! 
} 
+0

Das ist nett und funktioniert gut, aber ich möchte eine bestimmte Produktfelder wie nur Käufer E-Mail und Zeit wie kann ich nur die E-Mail und Zeit für bestimmte Produkt-ID zeigen. danke –

+0

Könnten Sie einen Blick hier werfen Bitte habe ich Ihren Code verwendet, aber ich möchte einige Details je nach Produkt-ID erhalten [hier die Frage] (http://StackOverflow.com/Questions/20787587/Woocommerce-Buyers-Emails -on-Frontend) –

2

Um Aufträge für einen bestimmten Kunden Gebrauch zusätzliches Argument meta_value auszufiltern

$orders = get_posts(apply_filters('woocommerce_my_account_my_orders_query', array(
    'numberposts' => 1, // -1 for all orders 
    'meta_key' => '_customer_user', 
    'meta_value' => $user_id, 
    'post_type' => 'shop_order', 
    'post_status' => 'publish' 
))); 

Siehe auch here .

Verwandte Themen