2016-06-08 87 views
4

我有一個用PHP編寫的簡單後端管理工具,它從WooCommerce數據庫提取訂單並將它們呈現給我們的廚房進行處理交付。如何將部分退款存儲在WooCommerce數據庫中?

我一直能夠突出顯示具有'wc-completed'以外的狀態的錶行,以處理可能需要的任何其他處理。不過,今天我注意到一個訂單已退還一行。 A 部分退款不會更改訂單狀態,所以我需要從數據庫中的其他表中提取退款信息。

我檢查了所有我知道的相關訂單處理的表 - wp_postswp_postmetawp_woocommerce_order_itemswp_woocommerce_order_itemmeta,但沒有任何退款信息的跡象。實際上,包含在最後一個表中的itemmeta甚至沒有調整數量,這使得我的報告對於這樣的部分訂單不正確。

當您在woocommerce後端查看訂單摘要時,它將顯示此特定項目的1數量,然後顯示其正下方的-1數量。我假設基於此,數據庫中的某處有與訂單相關的退款記錄,但我似乎無法找到它。即使是wp_postmeta中的訂單總額也不能反映部分退款。

有沒有人知道這退款數據存儲在wordpress數據庫?

謝謝。

回答

4

部分退款訂單存儲在像正常的人數據庫: 在wp_posts表與'post_type' = 'shop_order_refund''post_parent' = order_ID (number),其中order_ID是參考原始'shop_order'

要找出這個退款之一是局部的,你需要的_refund_amount量值,你可以wp_post_meta下找到此'refund_order'和他的相應'shop_order'_order_total值太大:

如果('refund_order' =>_refund_amount )!=('shop_order' =>_order_total): 然後它是部分

如果('refund_order' =>_refund_amount)==('shop_order' =>_order_total): 那麼它的正常(未局部的)

注:

  • 你可以有一個或多個部分退款爲一個數量級。
  • 退款訂單_order_total項目在wp_postmeta表中的負值,總是反映_refund_amount項目的正值。這個_order_total的值與相關的父項'shop_order' => '_order_total'的值無關。

    這是相對(負)相關父'shop_order' => '_order_total'只有當退款順序並不PARTIAL的值。

  • wp_woocommerce_order_itemswp_woocommerce_order_itemmeta表,有關於相關產品的訂單和退款訂單的詳細資料...
+0

完美!謝謝 - 那只是我需要的信息。非常感激。 –

相關問題