2013-08-12 18 views
11

Tôi đang cố gắng để có được các dữ liệu liên quan đến một trật tự trên các plugin woocommerce (wordpress). Hiện nay, tôi đã viết plugin của riêng tôi có chứa mã:Woocommerce - php để có được thông tin đặt hàng

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

này chỉ để kiểm tra nó ra, tôi không tin rằng đây là làm việc nặng nhọc nhưng những gì tôi thực sự cần là để có được một danh sách các đơn đặt hàng có trạng thái đơn đặt hàng nhất định và sau đó có thể truy cập vào các trường (như tên) cho mỗi đơn đặt hàng trong danh sách này. Làm thế nào để tôi làm việc này? Ngoài ra, tôi sẽ đưa vào những tệp nào để thực hiện tác phẩm này? Tệp lớp-wc-order()?

Trả lời

22

Gần đây tôi đã làm việc cho Xuất dữ liệu đơn đặt hàng bằng XML.

$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

Thats Nice và làm việc tốt nhưng tôi muốn để có được một lĩnh vực sản phẩm secific như chỉ email người mua và thời gian thế nào có thể tôi chỉ hiển thị các thư điện tử và thời gian cho id sản phẩm cụ thể. cảm ơn bạn –

+0

bạn có thể có một cái nhìn ở đây Xin vui lòng tôi đã sử dụng mã của bạn nhưng tôi muốn để có được một số chi tiết phụ thuộc vào id sản phẩm [ở đây các câu hỏi] (http://stackoverflow.com/questions/20787587/woocommerce-buyers-emails -mặt trước) –

2

Để lọc ra các đơn đặt hàng cho một sử dụng cụ thể của khách hàng thêm lập luận meta_value:

$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); 

cách cũng thay thế cho các đơn hàng tải cho một khách hàng cụ thể:

$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' 
))); 

Xem thêm here .

Các vấn đề liên quan