2016-12-30 9 views
2

この顧客が注文したときに、顧客のカスタムフィールドの値を注文のカスタムフィールドに自動的にコピーすることはできますか?注文メタデータにユーザーカスタムフィールドを自動的に追加する

プラグイン/エクステンションを使用するか、舞台裏でカスタマイズされたコーディングを行う必要がありますか?

このカスタムフィールドは、顧客の注文画面に表示する必要はありません。私たちはAPIを使って注文するかどうかをConsumerかWholesaleかによって区別する必要があります。

私はこのシステムで全く新しいです、私は多くの研究をしましたが、これに対する方向を見つけることができませんでした。

ご意見やご提案をいただければ幸いです。

+0

はあなたに感謝あなたの素早い対応のために、@ LoicTheAztec!私はちょうどあなたが理にかなって、うまくいけば、質問を編集しました。 – Zark

+0

ありがとう、@ LoicTheAztecそれは非常に素晴らしいコードです。私は答えとしてマークしていました。私はそれを試してみると、どこかにつかまったら知りましょう:) – Zark

答えて

2

あなたは順序のメタデータには、このユーザデータを追加するためにwoocommerce_thankyouフックを使用することができます。

add_action('woocommerce_thankyou', 'orders_from_processing_to_pending', 10, 1); 
function orders_from_processing_to_pending($order_id) { 

    if (! $order_id) 
     return; 

    $order = wc_get_order($order_id); 
    $user_id = get_current_user_id(); 

    //Set HERE the meta key of your custom user field 
    $user_meta_key = 'some_meta_key'; 

    // Get here the user custom field (meta data) value 
    $user_meta_value = get_user_meta($user_id, $user_meta_key, true); 


    if (! empty($user_meta_value)) 
     update_post_meta($order_id, $user_meta_key, $user_meta_value); 
    else 
     return; 

} 

コードは、あなたのアクティブな子テーマ(アクティブテーマのfunction.phpファイルまたは任意のプラグインファイルに行きます)。

このコードはテスト済みであり、動作します。

あなたは管理者の編集オーダーのバックエンドやフロントエンドの顧客ビュー注文やメール通知にその値を表示したい場合、あなたはいくつかのより多くのコードや他のいくつかのフックを使用する必要があります、後...

関連する問題