2015-03-04 7 views
5

मैं एक ऐसा फ़ंक्शन बनाने की कोशिश कर रहा हूं जो उसके आईडी द्वारा ऑर्डर पुनर्प्राप्त करेगा। किसी कारण से मुझे काम करने के लिए WooCommerce वैश्विक फ़ंक्शन get_order नहीं मिल सकता है। मैं फ़ंक्शन में एक वैध ऑर्डर id पास कर रहा हूं और यह सत्यापित करने के लिए इसे मुद्रित करने का प्रयास कर रहा हूं कि यह काम कर रहा है। समारोह को मेरे functions.php फ़ाइल में रखा गया है।WooCommerce - get_order() काम नहीं कर रहा है

function getWC_order_details($id){ 
    global $woocommerce; 

    $order = get_order($id); 

    print "<pre>"; 
    print_r($order); 
    print "</pre>"; 
} 

मैंने बिना किसी समस्या के फ़ंक्शन के अन्य डेटा को प्रतिबिंबित करने का परीक्षण किया है।

+0

और आपको लगता है कि समारोह कैसे उपयोग किया था? अधिक जानकारी यहां आवश्यक है .. –

+0

' ' – nickyb

+0

स्टैक ओवरफ़्लो में आपका स्वागत है। मैंने आपके प्रश्न में शब्दों को बेहतर बनाने की कोशिश की है ताकि आप दूसरों को यह स्पष्ट कर सकें कि आप जिस मुद्दे का सामना कर रहे हैं वह है। यदि आप 'get_order' के लिए किसी भी दस्तावेज़ से लिंक कर सकते हैं, तो यह उन लोगों के लिए आसान हो सकता है जो आपके प्रश्न का उत्तर देने के लिए WooCommerce से परिचित नहीं हैं। –

उत्तर

14

सबसे पहले बनाने के इस तरह समारोह:

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

उसके बाद, कुछ woo_commerceकार्रवाई या फ़िल्टर के साथ इसका उपयोग करें।

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

तो गाड़ी के लिए किसी भी उत्पाद को जोड़ने के बाद, आप गाड़ी तालिका के बाद देखेंगे वहाँ एक सरणी है सभी विवरण युक्त है।

नोट: आप किसी भी अन्य कार्रवाई या फ़िल्टर का उपयोग कर सकते हैं और आप उन्हें here देख सकते हैं।

संपादित:

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

धन्यवाद पहला भाग मुझे चाहिए था। यह फ़ंक्शन कार्ट या ग्राहकों के लिए नहीं है। यह उस बड़े कार्य का हिस्सा है जिसका मैं काम कर रहा हूं जब ऑर्डर स्थिति प्रसंस्करण में बदल जाती है। मैंने सोचा कि "डब्ल्यूसी_ऑर्डर" ऑर्डर के बारे में सब कुछ शामिल करेगा। किसी भी विचार को ऑर्डर आईडी से उत्पाद, नाम और कुछ शिपिंग विवरण कैसे प्राप्त करें? – nickyb

+0

आप उन उत्पादों का मतलब है जो केवल उस विशेष क्रम में हैं ... सही? –

+0

हाँ, केवल उस विशेष आदेश के लिए जानकारी। – nickyb

0

इसे आजमाएं। यह आपके लिए उपयोगी हो सकता है।

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

स्रोत: फ़ाइल का नाम: woocommerce/शामिल/API/वर्ग-WC-api-orders.php

+0

काम नहीं किया, लेकिन कोशिश करने के लिए धन्यवाद। मैंने मूल रूप से कोशिश की। '$ आदेश = WC_API_Orders :: get_order ($ id, $ फ़ील्ड);' – nickyb

संबंधित मुद्दे