似乎两个表都在woocommerce中存储订单的元数据。但是如何知道什么数据存储到哪里?
我当前正在使用update_post_meta函数,例如
update_post_meta( $order_id, 'newcheckboxfield', esc_attr($_POST['newcheckboxfield'])
在结帐时为每个订单添加一个自定义字段(newcheckboxfield)。但是我更喜欢元数据进入wp_woocommerce_order_itemmeta表,因为它似乎为每个订单存储了相关数据,对吗?
答案 0 :(得分:1)
表wp_woocommerce_order_itemmeta
仅适用于所有WooCommerce 订单项元数据(但不适用于订单元数据)。
表wp_postmeta
处理所有帖子类型的元数据,例如默认的Wordpress博客 post
,默认的Wordpress page
,默认的Wordpress图片attachment
以及所有其他自定义帖子类型。
某些WooCommerce的默认自定义帖子类型为product
,product_variation
,shop_coupon
,shop_order
,shop_order_refund
…
要更好地了解WooCommerce订单,请执行以下操作:
wp_postmeta
表中)wp_woocommerce_order_itemmeta
表中)结帐后的WooCommerce订单和订单项自定义字段
1)订购元数据
要添加自定义字段Tas订单元数据,您将使用以下挂钩:
woocommerce_checkout_create_order
带有2个参数的动作挂钩:$order
,$data
(请参见堆栈溢出的this examples)woocommerce_checkout_update_order_meta
带有2个参数的动作挂钩:$order_id
,$data
(请参见堆栈溢出的this examples)2)订单商品元数据
要将自定义字段添加为订单项元数据,您将使用以下挂钩:
woocommerce_checkout_create_order_line_item
操作钩子,如on this thread所述(请参阅堆栈溢出的other examples)