プラグインWooCommerceのwoocommerce_checkout_update_user_metaアクションの使用方法・解説

概要

woocommerce_checkout_update_user_metaアクションは、WooCommerceのチェックアウトプロセス中に適用されるフックで、新規または既存のユーザーのメタデータを更新するのに使用されます。このアクションは、ユーザーがチェックアウト時に入力した情報をカスタマイズして保存する際に特に便利です。具体的には、以下のような機能を実装する際によく使われます。

  1. ユーザーのカスタムフィールドの更新
  2. 注文の履歴に基づくユーザー情報の更新
  3. 特定の配信先住所の設定
  4. ユーザーの購買履歴に関連する情報の管理
  5. ユーザーの設定を元にしたマーケティングオプションの更新
  6. その他のカスタムデータの保存や更新

構文

add_action('woocommerce_checkout_update_user_meta', 'your_function_name', 10, 2);

パラメータ

  • $user_id: 更新するユーザーのID
  • $posted: チェックアウト時にユーザーが入力したデータを含む配列

戻り値

このアクション自体には戻り値はありませんが、関数内で実行されたコードに応じて、ユーザーのメタデータが更新されます。

対応するWooCommerceのバージョン

WooCommerce 2.1以降

対応するWordPressのバージョン

WordPress 4.0以降

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1: ユーザーのカスタムフィールドの更新

add_action('woocommerce_checkout_update_user_meta', 'update_user_custom_field', 10, 2);
function update_user_custom_field($user_id, $posted) {
    if (isset($posted['custom_field_name'])) {
        update_user_meta($user_id, 'custom_field_name', sanitize_text_field($posted['custom_field_name']));
    }
}

このコードは、チェックアウト時に送信されたカスタムフィールドのデータをユーザーメタに保存します。

サンプルコード2: 一時的な配達指示の保存

add_action('woocommerce_checkout_update_user_meta', 'save_delivery_instructions', 10, 2);
function save_delivery_instructions($user_id, $posted) {
    if (!empty($posted['delivery_instructions'])) {
        update_user_meta($user_id, 'delivery_instructions', sanitize_textarea_field($posted['delivery_instructions']));
    }
}

この例では、ユーザーがチェックアウト時に提供した配達指示を保存します。

サンプルコード3: ユーザーの電話番号の更新

add_action('woocommerce_checkout_update_user_meta', 'update_user_phone', 10, 2);
function update_user_phone($user_id, $posted) {
    update_user_meta($user_id, 'billing_phone', sanitize_text_field($posted['billing_phone']));
}

このコードは、ユーザーの電話番号をカスタマイズして更新します。

サンプルコード4: 注文関連のカスタムデータの保存

add_action('woocommerce_checkout_update_user_meta', 'save_order_note', 10, 2);
function save_order_note($user_id, $posted) {
    if (!empty($posted['order_note'])) {
        update_user_meta($user_id, 'order_note', sanitize_textarea_field($posted['order_note']));
    }
}

ここでは、ユーザーがチェックアウトフォームに記入した注文ノートをメタデータとして保存します。

サンプルコード5: 追加のプロモーション情報の保存

add_action('woocommerce_checkout_update_user_meta', 'save_promotion_info', 10, 2);
function save_promotion_info($user_id, $posted) {
    if (!empty($posted['promotion_info'])) {
        update_user_meta($user_id, 'promotion_info', sanitize_text_field($posted['promotion_info']));
    }
}

この例は、プロモーション情報をユーザーのメタデータとして保存します。

この関数について質問する


上の計算式の答えを入力してください