沃梦达 / 编程问答 / php问题 / 正文

正在尝试使用WooCommerce_new_Order_Item挂钩保存订单项元数据

Trying to save order item meta data with woocommerce_new_order_item hook(正在尝试使用WooCommerce_new_Order_Item挂钩保存订单项元数据)

本文介绍了正在尝试使用WooCommerce_new_Order_Item挂钩保存订单项元数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

/*
 * 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)

推荐答案

由于WooCommerce 3和新的CRUD setters和getters方法,请改用以下方法:

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'] );
    }
}

代码放在活动子主题(或活动主题)的函数.php文件中。已测试并正常工作。

查看相关说明:Woocommerce: which hook to use instead of deprecated "woocommerce_add_order_item_meta"

这篇关于正在尝试使用WooCommerce_new_Order_Item挂钩保存订单项元数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:正在尝试使用WooCommerce_new_Order_Item挂钩保存订单项元数据

基础教程推荐