部分退款如何存储在 WooCommerce 数据库中?
How are partial refunds stored in the WooCommerce Database?
我有一个用 PHP 编写的简单后端管理工具,它从 WooCommerce 数据库中提取订单并将它们呈现给我们的厨房以处理交货。
我总是能够突出显示状态不同于 'wc-completed'
的 table 行,以处理可能需要的任何其他处理。但是,今天引起我注意的是,一个特定订单已针对一个订单项进行了退款。 部分退款 不会更改订单状态,因此我需要从数据库中的另一个 table 提取退款信息。
我检查了所有我知道的与订单处理相关的 tables - wp_posts
、wp_postmeta
、wp_woocommerce_order_items
和 wp_woocommerce_order_itemmeta
,但没有迹象任何退款信息。事实上,最后 table 中包含的 itemmeta 甚至没有调整数量,使我的报告对于像这样的部分订单不正确。
当您在 woocommerce 后端查看订单摘要时,它会显示该特定商品的数量 1
,然后在其正下方显示 -1
。基于此,我假设数据库中某处有与订单关联的退款记录,但我似乎无法找到它。即使 wp_postmeta
中的订单总额也没有反映部分退款。
有谁知道这个退款数据存储在wordpress数据库中的什么地方?
谢谢。
部分退款订单像普通订单一样存储在数据库中:
在 wp_posts
table 中有一个 '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
值:
if ( 'refund_order'
=> _refund_amount
) != ( 'shop_order'
=> _order_total
) :
然后是部分.
if ( 'refund_order'
=> _refund_amount
) == ( 'shop_order'
=> _order_total
) :
那么就是正常(不偏).
备注:
- 一个订单可以有一个或多个部分退款。
- 退款订单
wp_postmeta
table 中的一个 _order_total
项的负值始终反映正值_refund_amount
项。此_order_total
值与相关父'shop_order' => '_order_total'
值无关。
It's the opposite (negative) value of the related parent 'shop_order' => '_order_total'
value
only when refund order IS NOT PARTIAL.
- 在
wp_woocommerce_order_items
和wp_woocommerce_order_itemmeta
table中,有订单商品和退款订单的相关详细数据...
我有一个用 PHP 编写的简单后端管理工具,它从 WooCommerce 数据库中提取订单并将它们呈现给我们的厨房以处理交货。
我总是能够突出显示状态不同于 'wc-completed'
的 table 行,以处理可能需要的任何其他处理。但是,今天引起我注意的是,一个特定订单已针对一个订单项进行了退款。 部分退款 不会更改订单状态,因此我需要从数据库中的另一个 table 提取退款信息。
我检查了所有我知道的与订单处理相关的 tables - wp_posts
、wp_postmeta
、wp_woocommerce_order_items
和 wp_woocommerce_order_itemmeta
,但没有迹象任何退款信息。事实上,最后 table 中包含的 itemmeta 甚至没有调整数量,使我的报告对于像这样的部分订单不正确。
当您在 woocommerce 后端查看订单摘要时,它会显示该特定商品的数量 1
,然后在其正下方显示 -1
。基于此,我假设数据库中某处有与订单关联的退款记录,但我似乎无法找到它。即使 wp_postmeta
中的订单总额也没有反映部分退款。
有谁知道这个退款数据存储在wordpress数据库中的什么地方?
谢谢。
部分退款订单像普通订单一样存储在数据库中:
在 wp_posts
table 中有一个 '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
值:
if ( 'refund_order'
=> _refund_amount
) != ( 'shop_order'
=> _order_total
) :
然后是部分.
if ( 'refund_order'
=> _refund_amount
) == ( 'shop_order'
=> _order_total
) :
那么就是正常(不偏).
备注:
- 一个订单可以有一个或多个部分退款。
- 退款订单
wp_postmeta
table 中的一个_order_total
项的负值始终反映正值_refund_amount
项。此_order_total
值与相关父'shop_order' => '_order_total'
值无关。It's the opposite (negative) value of the related parent
'shop_order' => '_order_total'
value only when refund order IS NOT PARTIAL. - 在
wp_woocommerce_order_items
和wp_woocommerce_order_itemmeta
table中,有订单商品和退款订单的相关详细数据...