簡體   English   中英

嘗試使用woocommerce_new_order_item鈎子保存訂單商品元數據

[英]Trying to save order item meta data with woocommerce_new_order_item hook

/*
 * 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設置器和獲取器方法,請改用以下方法:

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:使用哪個鈎子代替不推薦使用的“ woocommerce_add_order_item_meta”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM