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

概要

woocommerce_order_item_meta_startは、WooCommerceのフックの一つで、注文内のアイテムメタ情報を表示する際に実行されます。このアクションを使用することで、特定の条件に応じてカスタムデータやメタ情報をアイテムリストの前に追加することが可能です。

使用頻度の高い機能

このアクションは、以下のような機能を実装する際によく使われます:
1. 商品メタ情報のカスタマイズ表示
2. 追加の情報(ルールや特別なメッセージなど)の表示
3. 商品オプションのカスタム表示
4. ロイヤリティプログラムのステータス表示
5. プロモーションや割引情報の表示
6. アフィリエイトリンクの追加

構文

do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $order, $plain_text );

パラメータ

  • $item_id (int): 注文アイテムのID。
  • $item (WC_Order_Item_Product): 注文アイテムのオブジェクト。
  • $order (WC_Order): 注文のオブジェクト。
  • $plain_text (bool): プレーンテキストモードかどうか。

戻り値

このアクションは戻り値を持たない(void)ため、出力を直接行うことが前提となります。

使用可能なバージョン

  • WooCommerce: 2.1.0 以降
  • WordPress: 3.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_order_item_meta_start', function( $item_id, $item, $order, $plain_text ) {
    echo '<p class="my-custom-info">カスタム情報: ' . esc_html( get_post_meta( $item_id, '_my_custom_meta', true ) ) . '</p>';
}, 10, 4 );

このコードは、注文アイテムのメタ情報としてカスタム情報を表示します。アイテムのメタデータを取得し、その情報を出力しています。

サンプルコード 2

add_action( 'woocommerce_order_item_meta_start', function( $item_id, $item, $order, $plain_text ) {
    if ( $item->get_product_id() === 123 ) {
        echo '<p class="special-note">この商品には特別なオファーがあります!</p>';
    }
}, 10, 4 );

このコードは、指定された商品ID(123)の場合に特別なメッセージを表示します。

サンプルコード 3

add_action( 'woocommerce_order_item_meta_start', function( $item_id, $item, $order, $plain_text ) {
    echo '<strong>追加オプション:</strong> ' . esc_html( get_post_meta( $item_id, '_additional_options', true ) );
}, 10, 4 );

この例では、注文アイテムに関連する追加オプションを表示します。

サンプルコード 4

add_action( 'woocommerce_order_item_meta_start', function( $item_id, $item, $order, $plain_text ) {
    $discount_info = get_post_meta( $item_id, '_discount_info', true );
    if ( ! empty( $discount_info ) ) {
        echo '<span class="discount-info">この商品には割引があります: ' . esc_html( $discount_info ) . '</span>';
    }
}, 10, 4 );

このコードは、注文アイテムに関する割引情報を条件に基づき表示します。

サンプルコード 5

add_action( 'woocommerce_order_item_meta_start', function( $item_id, $item, $order, $plain_text ) {
    echo '<div class="loyalty-status">ロイヤリティプログラムの状態: ' . esc_html( get_user_meta( $order->get_user_id(), '_loyalty_status', true ) ) . '</div>';
}, 10, 4 );

このコードは、購入者のロイヤリティプログラムの状態を表示します。ユーザーのメタ情報から状態を取得しています。

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


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