/*
* Add meta to order item
* @param int $item_id
* @param array $values
* @return void
*/
function cart_add_meta_data_booking( $item_id, $values ) {
if ( ! empty( $values['adults_qty'] ) ):
wc_add_order_item_meta( $item_id, 'Adults', $values['adults_qty']);
endif;
}
add_action( 'woocommerce_new_order_item', 'cart_add_meta_data_booking', 10, 2 );
我已更新了我的代码,因为之前的函数(woocommerce_add_order_item_meta
)已弃用,但我不知道为什么它不起作用(wc_add_order_item_meta
)
答案 0 :(得分:2)
自Woocommerce 3和新的CRUD设置器和getter方法以来,请改用:
add_action( 'woocommerce_checkout_create_order_line_item', 'add_booking_order_line_item', 20, 4 );
function add_booking_order_line_item( $item, $cart_item_key, $values, $order ) {
// Get cart item custom data and update order item meta
if( isset( $values['adults_qty'] ) ){
if( ! empty( $values['adults_qty'] ) )
$item->update_meta_data( 'Adults', $values['adults_qty'] );
}
}
代码放在活动子主题(或活动主题)的function.php文件中。经过测试和工作。
请参阅此相关说明:Woocommerce: which hook to use instead of deprecated "woocommerce_add_order_item_meta"