mysql - wp_postmeta 和 wp_woocommerce_order_itemmeta 表之间的区别
问题描述
似乎两个表都在 woocommerce 中存储订单的元数据。但是如何知道将哪些数据存储到哪里呢?
我目前正在使用 update_post_meta 函数,例如,
update_post_meta( $order_id, 'newcheckboxfield', esc_attr($_POST['newcheckboxfield'])
在每个订单的结帐处添加一个自定义字段(newcheckboxfield)。但我更喜欢元数据进入 wp_woocommerce_order_itemmeta 表,因为这似乎存储了每个订单的相关数据,对吗?
解决方案
该表wp_woocommerce_order_itemmeta
仅适用于所有 WooCommerce订单商品元数据(但不适用于订单元数据)。
该表wp_postmeta
处理所有帖子类型的元数据,例如默认 Wordpress 博客post
、默认 Wordpress page
、默认 Wordpress 图片attachment
和所有其他自定义帖子类型。
一些 WooCommerce 默认自定义帖子类型是product
, product_variation
, shop_coupon
, shop_order
, shop_order_refund
...</p>
为了更好地了解 WooCommerce 订单:
- 大多数结帐字段都存储为订单元数据(在
wp_postmeta
表中) - 购物车项目数据存储为订单项目元数据(在
wp_woocommerce_order_itemmeta
表中)
结帐后的 WooCommerce 订单和订单项目自定义字段
1)订单元数据
要添加自定义字段任务订单元数据,您将使用以下挂钩:
woocommerce_checkout_create_order
带有 2 个参数的动作钩子:$order
,$data
(请参阅Stack OverFlow 上的此示例)woocommerce_checkout_update_order_meta
带有 2 个参数的动作钩子:$order_id
,$data
(请参阅Stack OverFlow 上的此示例)
2)订单商品元数据
要将自定义字段添加为订单项元数据,您将使用以下挂钩:
推荐阅读
- c++ - 如何存储http响应并发送到浏览器?
- sql - 当我搜索任何关键词时,我的数据重复了
- sql - ORDER 中无法识别的别名
- java - RichPresence 不再适用于 JDA
- python - selenium.common.exceptions.TimeoutException:消息:脚本超时:30 秒内未收到结果
- php - 地理位置显示不同的城市不是很准确
- javascript - API0005 从 Google Apps 脚本到 BitStamp API 的无效签名连接错误
- reactjs - React Next 的 Openlayers 编译错误
- php - 如果未填写输入类型 =“日期”,则防止插入行 db
- c - C 代码的混淆行为与阴影结构声明