2015-11-22 55 views
0

我想將一些woocommerce訂單數據處理爲單獨的數據庫。除了項目列表之外,一切都有效。如何在wordpress/woocommerce中處理訂單商品數組

add_action('woocommerce_payment_complete', 'handle_order_completed'); 
function handle_order_completed($order_id){ 
    $order = wc_get_order($order_id); 
    $name = $order->billing_first_name . " " . $order->billing_last_name; 
    $billingEmail = $order->billing_email; 
    $billingPhone = $order->billing_phone; 
    $orderlink = $order->get_view_order_url(); 
    $products = $order->get_items(); 
    $orderMeta = get_post_meta($order_id, 'pass_type'); 

    foreach($products as $prod){ 
    $sql_insert = <<<SQL 
     INSERT INTO cards (cardnumber, name, phone, type, sku) 
     VALUES ("$cardnumber", "$name", "$billingPhone", "$type", "$prod['product_sku']") 
SQL; 
    $prod['product_id']; 
    } 

我需要知道什麼數組鍵$order->get_items()但我無法找到任何地方的列表。我需要產品SKU,產品線總數以及添加到產品中的自定義字段。我需要使用自定義字段來決定如何將其他數據添加到數據庫。

+1

請在此代碼中添加更多信息您試圖獲取/執行的操作。它不清楚。 – BenB

+0

這些信息來自哪裏? –

回答

0

我認爲你可以得到SKU是這樣的:

$product->get_sku() ; 

你的情況:

$prod->get_sku() ; 

我建議,而不是手動收集數據,如你現在,使用woocommerce REST的API 。

您可以將ID發送到遠程服務器,然後使用訂單ID調用訂單數據並保存。或者在同一臺服務器上使用其餘的api來獲取所有訂單數據。

如果您希望在未來獲得更多訂單信息,它更快更靈活。 https://woothemes.github.io/woocommerce-rest-api-docs/#orders

+0

我確實考慮過使用API​​,但是在我的其他程序中需要更復雜的檢查代碼。 (博物館通行證卡平衡計劃)。我只需要從woocommerce PDF Vouchers插件生成的憑證號碼和關於訂單的一些細節。如果我將它們作爲卡片程序在卡片程序中使用,它可以工作得更多。我試圖讓很多志願者儘可能簡單。 – JpaytonWPD

+0

我明白了。你有沒有嘗試在$ order-> get_items()上做var_dump?類似var_damp($ order-> get_items());死(); – BenB

+0

不,但是API給出了對輸出的一些洞察。我在哪裏做prod ['product_sku']只是prod ['sku']是正確的關鍵。 $ order-> get_items()給出了一個行項目的數組。就像API一樣。因此,儘管Woocommerce PDF憑證是我認爲將包含在get_items數組中的元數據,但它並未包含在訂單中。我想它在它自己的表格中。所以現在我需要找到從該表獲取信息的函數。 – JpaytonWPD

相關問題