woocommerce_add_order_item_meta问题

时间:2018-12-09 23:02:08

标签: php wordpress woocommerce hook-woocommerce orders

我花了最后3个小时来尝试解决woocommerce弃用的钩子问题,而我发疯了,因为我尝试了数百种不同的方法来使其正常工作,而且这没有发生。

这是实际的代码,它假定保存自定义字段的值。关于如何使其与过时的挂钩一起工作的任何想法吗?

add_action('woocommerce_add_order_item_meta','save_in_order_item_meta', 10, 3 );
function save_in_order_item_meta( $item_id, $values, $cart_item_key ) {
if( isset( $values['custom_data'] ) ) {
   woocommerce_new_order_item( $item_id, $values['custom_data']['label'], $values['custom_data']['value'] );
}
}

欢迎任何帮助。谢谢

编辑; 已经尝试过。

 add_action( 'woocommerce_add_order_item_meta', 'custom_add_order_item_meta', 20, 3 ); function custom_add_order_item_meta( 
 $item_id, $values, $cart_item_key ) { // Get cart item custom data and update order item meta if( isset( $values['custom_data'] ) ) { 
 wc_add_order_item_meta( $item_id, $values['custom_data']['label'], $values['custom_data']['value'] ); } }

 add_action( 'woocommerce_add_order_item_meta', 'custom_add_order_item_meta', 20, 3 );
 function custom_add_order_item_meta( $item_id, $values, $cart_item_key ) {
 $custom_field_value = $custom_field_value;

 if ( ! empty( $custom_field_value ) ){
    wc_add_order_item_meta( $item_id, $values['custom_data']['label'], $values['custom_data']['value']  );
}

}

1 个答案:

答案 0 :(得分:1)

钩子woocommerce_add_order_item_metawoocommerce_checkout_create_order_line_item取代,因此用您的代码(假设购物车对象包含您的自定义购物车商品数据)

add_action('woocommerce_checkout_create_order_line_item', 'save_custom_order_item_meta_data', 10, 4 );
function save_custom_order_item_meta_data( $item, $cart_item_key, $values, $order ) {
    if( isset( $values['custom_data']['label'] ) && isset( $values['custom_data']['value'] ) ) {
       $item->update_meta_data( $values['custom_data']['label'], $values['custom_data']['value'] );
    }
}

代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。

相关