wp_postmeta和wp_woocommerce_order_itemmeta表之间的区别

时间:2019-05-09 08:28:36

标签: mysql database wordpress woocommerce custom-post-type

似乎两个表都在woocommerce中存储订单的元数据。但是如何知道什么数据存储到哪里?

我当前正在使用update_post_meta函数,例如

update_post_meta( $order_id, 'newcheckboxfield', esc_attr($_POST['newcheckboxfield']) 

在结帐时为每个订单添加一个自定义字段(newcheckboxfield)。但是我更喜欢元数据进入wp_woocommerce_order_itemmeta表,因为它似乎为每个订单存储了相关数据,对吗?

1 个答案:

答案 0 :(得分:1)

wp_woocommerce_order_itemmeta仅适用于所有WooCommerce 订单项元数据(但不适用于订单元数据)

wp_postmeta处理所有帖子类型的元数据,例如默认的Wordpress博客 post ,默认的Wordpress page,默认的Wordpress图片attachment以及所有其他自定义帖子类型。

某些WooCommerce的默认自定义帖子类型为productproduct_variationshop_couponshop_ordershop_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)订单商品元数据

要将自定义字段添加为订单项元数据,您将使用以下挂钩: