概要
woocommerce_ajax_add_order_item_meta
は、WooCommerce において、注文アイテムにメタデータを追加する際に使用されるアクションフックです。このフックは、Ajax リクエストを介して注文アイテムのメタデータを追加するために使われ、以下のような機能を実装する際によく使用されます。
- 注文アイテムにカスタム属性を追加する。
- デジタル商品のダウンロードリンクを追加する。
- カスタムオプションや備考を保存する。
- 商品のギフトラッピングオプションを追加する。
- 特別なプロモーションコードや割引情報を付加する。
- 注文時の顧客の選択情報を保存する。
構文
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'] ) );
}
}
このサンプルコードは、任意のカスタムフィールドを注文アイテムに追加する機能を実装しています。