概要
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 );
このコードは、購入者のロイヤリティプログラムの状態を表示します。ユーザーのメタ情報から状態を取得しています。