簡體   English   中英

在 WooCommerce 訂單狀態更改上添加用戶元數據作為訂單元

[英]Add user meta data as order meta on WooCommerce order status change

我正在嘗試將自定義用戶元字段添加到訂單元數據。 當我將訂單狀態更改為“wordt-verwerkt”時,我想添加它,這是我使用 WooCommerce 插件添加的自定義訂單狀態,用於自定義訂單狀態。 我嘗試使用這篇文章中的代碼,但是當我更改訂單狀態時出現錯誤。 (我也嘗試過狀態為“正在處理”,但也沒有任何成功)

我現在擁有的是以下代碼:

add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
function add_order_meta_from_custom_user_meta( $order, $data ) {

    $user_id = $order->get_user_id(); // Get the user id

    if( $WefactEmail = get_user_meta( $user_id, 'KVK_nummer_2', true ) ) {
        $order->update_meta_data( 'WeFact_email', $WefactEmail );
    }

    if( isset($WefactEmail) ) {
        $order->save();
    }
}

您的代碼中有一些錯誤(掛鈎的 function arguments 是錯誤的)。

請參閱位於WC_Order status_transition()方法中的此復合掛鈎的相關源代碼第 363 行

do_action( 'woocommerce_order_status_' . $status_transition['to'], $this->get_id(), $this );

其中$this$order WC_Order對象)$this->get_id()$order_id (訂單 ID)

改用以下內容:

add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
function add_order_meta_from_custom_user_meta( $order_id, $order ) {
    $user_id  = $order->get_user_id(); // Get the user id
    $wf_email = get_user_meta( $user_id, 'KVK_nummer_2', true );

    if( ! empty($wf_email) ) {
        $order->update_meta_data( 'WeFact_email', $wf_email );
        $order->save();
    }
}

或者這也有效:

add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );
function add_order_meta_from_custom_user_meta( $order_id, $order ) {
    $user_id  = $order->get_user_id(); // Get the user id
    $wf_email = get_user_meta( $user_id, 'KVK_nummer_2', true );

    if( ! empty($wf_email) ) {
        update_post_meta( $order_id, 'WeFact_email', $wf_email );
    }
}

代碼進入活動子主題(或活動主題)的functions.php文件。 兩者都應該工作。

對於processing狀態,替換:

add_action( 'woocommerce_order_status_wordt-verwerkt', 'add_order_meta_from_custom_user_meta', 10, 2 );

和:

add_action( 'woocommerce_order_status_processing', 'add_order_meta_from_custom_user_meta', 10, 2 );

暫無
暫無

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

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