我有自定义代码使用 woocommerce_add_order_item_meta 挂钩。但 woocommerce 3.4.0 显示错误日志:“自版本 3.0.0 起,woocommerce_add_order_item_meta 已弃用!请改用 woocommerce_new_order_item。”
如何修复它?非常感谢。我的代码:
// add data design to order
function tshirt_order_meta_handler( $item_id, $values, $cart_item_key ) {
if( WC()->session->__isset( $cart_item_key.'_designer' ) ) {
wc_add_order_item_meta( $item_id, "custom_designer", WC()->session->get( $cart_item_key.'_designer') );
}
}
add_action( 'woocommerce_add_order_item_meta', 'tshirt_order_meta_handler', 1, 3 );
Updated
自 Woocommerce 版本 3 起,woocommerce_checkout_create_order_line_item
动作挂钩现在取代过时的woocommerce_add_order_item_meta
使用更好的方式挂钩新引入的 CRUD getter 和 setter https://github.com/woocommerce/woocommerce/wiki/CRUD-Objects-in-3.0方法:
// Save custom data to order item meta data
add_action( 'woocommerce_checkout_create_order_line_item', 'tshirt_order_meta_handler', 20, 4 );
function tshirt_order_meta_handler( $item, $cart_item_key, $values, $order ) {
$custom_designer = WC()->session->get( $cart_item_key.'_designer' );
if( ! empty($custom_designer) ) {
$item->update_meta_data( 'custom_designer', $custom_designer );
}
}
代码位于活动子主题(或活动主题)的 function.php 文件中。它应该有效。
请参阅此相关主题:
Woocommerce:用哪个钩子替换已弃用的“woocommerce_add_order_item_meta” https://stackoverflow.com/questions/29666820/woocommerce-which-hook-to-replace-deprecated-woocommerce-add-order-item-meta/49419394#49419394
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)