我正在创建一个正在使用的插件woocommerce_checkout_update_order_meta
用于添加订单项元数据的钩子。
我有一个插件叫WooCommerce TM 额外产品选项安装。
这个插件使用woocommerce_checkout_create_order_line_item
用于添加订单项元数据的钩子。
激活插件后,我会在订单接收页面上显示插件的元字段,但我的元信息没有显示。如果插件被停用或当我评论时,我的元数据就会显示woocommerce_checkout_create_order_line_item
动作挂钩。
它们实际上并不是为了同样的事情:
- 钩子
woocommerce_checkout_update_order_meta
例如,允许添加/更新订单元数据,以便数据库表wp_postmeta
.
- 钩子
woocommerce_checkout_create_order_line_item
例如,允许在数据库表中的订单中添加/更新行项目类型wp_woocommerce_order_items
(for line_item
项目类型(产品名称))和wp_woocommerce_order_itemmeta
(for line_item
物品种类details作为产品变体的数量、行项目总计和属性,
属性…).
对于优先级(实际上没有优先级,因为它们不是为类似的事情而设计的):
- 动作挂钩woocommerce_checkout_create_order_line_item https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#371位于WC_Chechout create_order_line_items() method https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#342-376.
- 动作挂钩woocommerce_checkout_update_order_meta https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#329位于WC_Chechout create_order() https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#262-335方法在最后。
- As create_order_line_items()被执行BEFORE https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#314 in create_order() https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#262-335.
So woocommerce_checkout_create_order_line_item
之前被调用.
添加订单项目元,你应该更好地使用woocommerce_checkout_create_order_line_item
动作钩子而不是优先级之前WooCommerce TM 额外产品选项 plugin.
Example:
add_action( 'woocommerce_checkout_create_order_line_item', 'custom_checkout_create_order_line_item', 20, 4 );
function custom_checkout_create_order_line_item( $item ) {
$item->add_meta_data( 'meta_key', 'meta_value' );
}
相关:WooCommerce:为订单中的每个项目添加不同的订单项目元 https://wordpress.stackexchange.com/questions/329664/woocommerce-add-different-order-item-meta-for-each-item-in-order
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)