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

概要

woocommerce_checkout_update_order_metaは、WooCommerceの注文チェックアウト時に、注文メタデータを更新するためのアクションフックです。このフックは、カスタムデータを注文メタに追加する際によく使用されます。具体的には以下のような場面で使用されることが多いです。

  1. 顧客情報の追加(例:特別なリクエストや配送情報)
  2. 注文へのカスタムフィールドの追加(例:ギフトラッピングの選択)
  3. 支払い情報の保存(例:クレジットカード情報の関連)
  4. 特典やクーポンの適用情報を保存
  5. 注文ステータスの変更に伴うメタデータの更新
  6. データベースに特定のトラッキング情報を保存

このアクションは、WooCommerce 3.0以降で使用可能で、WordPressでは4.0以降から対応しています。

構文

add_action('woocommerce_checkout_update_order_meta', 'custom_function_name', 10, 2);

パラメータ

  • $order_id (int): 注文のID。
  • $data (array): 注文に関連するデータの配列。

戻り値

このアクションは戻り値を持ちません。指定したカスタムメタデータを更新または追加します。

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

アクション 使用可能性
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_order_meta', 'add_custom_field_to_order_meta', 10, 2);

function add_custom_field_to_order_meta($order_id, $data) {
    if (!empty($_POST['custom_field'])) {
        update_post_meta($order_id, 'custom_field', sanitize_text_field($_POST['custom_field']));
    }
}

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

サンプルコード2: 特別なリクエストを保存

add_action('woocommerce_checkout_update_order_meta', 'save_special_request', 10, 2);

function save_special_request($order_id, $data) {
    if (!empty($_POST['special_request'])) {
        update_post_meta($order_id, 'special_request', sanitize_textarea_field($_POST['special_request']));
    }
}

このコードスニペットは、特別なリクエストフィールドの内容を注文に追加します。

サンプルコード3: 特典の適用情報を変更

add_action('woocommerce_checkout_update_order_meta', 'apply_discount_info', 10, 2);

function apply_discount_info($order_id, $data) {
    if (!empty($data['discount_code'])) {
        update_post_meta($order_id, 'discount_code', sanitize_text_field($data['discount_code']));
    }
}

このコードは、チェックアウト時に入力されたディスカウントコードを注文メタデータに保存します。

サンプルコード4: 追加の支払い情報を保存

add_action('woocommerce_checkout_update_order_meta', 'save_payment_info', 10, 2);

function save_payment_info($order_id, $data) {
    if (!empty($data['payment_method_info'])) {
        update_post_meta($order_id, 'payment_method_info', sanitize_text_field($data['payment_method_info']));
    }
}

このコードは、支払い方法に関する追加情報を注文メタデータに保存します。

サンプルコード5: ギフトラッピングのオプションを追加

add_action('woocommerce_checkout_update_order_meta', 'add_gift_wrap_option', 10, 2);

function add_gift_wrap_option($order_id, $data) {
    if (!empty($_POST['gift_wrap'])) {
        update_post_meta($order_id, 'gift_wrap', 1);
    }
}

このスニペットは、ギフトラッピングオプションが選択されている場合に、その情報を注文に追加します。

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


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