如何将WooCommerce自定义产品元数据zoho_id同步到订单项元数据
WooCommerce产品自定义元数据zoho_id同步到订单项解决方案
问题原因
- 你使用的
woocommerce_add_order_item_meta钩子已在WooCommerce 3.0及以上版本废弃,参数传递逻辑发生变化,导致读取到的产品数据错误,所以会出现值为data、字段存储位置错误的问题 - 废弃钩子默认不会绑定到订单项层级的元数据存储逻辑,要实现订单项自定义字段同步,需要使用官方推荐的新钩子
正确实现代码
add_action( 'woocommerce_checkout_create_order_line_item', 'sync_zoho_id_to_order_line_item', 10, 4 ); function sync_zoho_id_to_order_line_item( $item, $cart_item_key, $values, $order ) { // 从购物车项获取对应产品ID $product_id = $values['product_id']; // 读取产品自定义元数据zoho_id $zoho_id = get_post_meta( $product_id, 'zoho_id', true ); if ( ! empty( $zoho_id ) ) { // 将zoho_id存入订单项元数据 $item->add_meta_data( 'zoho_id', $zoho_id, true ); } }
验证说明
代码部署后,新生成的订单会自动给每个商品项同步对应的zoho_id值,你可以在订单详情的商品项元数据区域看到对应字段,Integromat调用时直接读取订单项的zoho_id属性即可。
内容的提问来源于stack exchange,提问作者Bassam Radi
相关产品推荐
相关产品推荐

