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

概要

woocommerce_ajax_add_order_item_meta は、WooCommerce において、注文アイテムにメタデータを追加する際に使用されるアクションフックです。このフックは、Ajax リクエストを介して注文アイテムのメタデータを追加するために使われ、以下のような機能を実装する際によく使用されます。

  1. 注文アイテムにカスタム属性を追加する。
  2. デジタル商品のダウンロードリンクを追加する。
  3. カスタムオプションや備考を保存する。
  4. 商品のギフトラッピングオプションを追加する。
  5. 特別なプロモーションコードや割引情報を付加する。
  6. 注文時の顧客の選択情報を保存する。

構文

do_action( 'woocommerce_ajax_add_order_item_meta', $item_id, $values, $order_id );

パラメータ

  • $item_id (int): 注文アイテムの ID。
  • $values (array): 注文アイテムに関連する値の配列。
  • $order_id (int): 対象となる注文の ID。

戻り値

このアクションは戻り値を持ちません。主に他の関数での処理を行うためのトリガーとして使われます。

使用可能な WooCommerce および WordPress バージョン

  • WooCommerce バージョン: 3.0 以上
  • 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_ajax_add_order_item_meta', 'add_custom_meta_to_order_item', 10, 3 );

function add_custom_meta_to_order_item( $item_id, $values, $order_id ) {
    if ( isset( $values['custom_note'] ) ) {
        wc_add_order_item_meta( $item_id, 'Custom Note', sanitize_text_field( $values['custom_note'] ) );
    }
}

このサンプルコードは、注文アイテムにカスタムノートを追加する機能を実装しています。

サンプル 2

add_action( 'woocommerce_ajax_add_order_item_meta', 'add_gift_wrap_option_meta', 10, 3 );

function add_gift_wrap_option_meta( $item_id, $values, $order_id ) {
    if ( isset( $values['gift_wrap'] ) && $values['gift_wrap'] ) {
        wc_add_order_item_meta( $item_id, 'Gift Wrap', 'Yes' );
    }
}

このサンプルコードは、ギフトラッピングのオプションを注文アイテムに追加する例です。

サンプル 3

add_action( 'woocommerce_ajax_add_order_item_meta', 'add_digital_link_meta', 10, 3 );

function add_digital_link_meta( $item_id, $values, $order_id ) {
    if ( isset( $values['download_link'] ) ) {
        wc_add_order_item_meta( $item_id, 'Download Link', esc_url( $values['download_link'] ) );
    }
}

このサンプルコードでは、デジタル商品にダウンロードリンクを追加する機能を示しています。

サンプル 4

add_action( 'woocommerce_ajax_add_order_item_meta', 'add_discount_code_meta', 10, 3 );

function add_discount_code_meta( $item_id, $values, $order_id ) {
    if ( isset( $values['discount_code'] ) ) {
        wc_add_order_item_meta( $item_id, 'Discount Code', sanitize_text_field( $values['discount_code'] ) );
    }
}

このサンプルコードは、注文アイテムに割引コードを追加するための例です。

サンプル 5

add_action( 'woocommerce_ajax_add_order_item_meta', 'add_custom_fields_meta', 10, 3 );

function add_custom_fields_meta( $item_id, $values, $order_id ) {
    if ( isset( $values['custom_field'] ) ) {
        wc_add_order_item_meta( $item_id, 'Custom Field', sanitize_text_field( $values['custom_field'] ) );
    }
}

このサンプルコードは、任意のカスタムフィールドを注文アイテムに追加する機能を実装しています。

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


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