概要
woocommerce_order_item_get_formatted_meta_data
フィルタは、WooCommerceのオーダーアイテムのメタデータをフォーマットする際に使用されるフックです。このフィルタを使うことで、オーダーアイテムに関連するメタデータの表示内容をカスタマイズしたり、追加の情報を付加したりすることが可能です。
よく使われる機能
- オーダーアイテムのメタデータのフォーマットをカスタマイズ
- 特定のオーダーアイテムに追加情報を表示
- メタデータの表示内容をローカライズ
- メタデータの表示形式を変更
- 特定の条件に基づいてメタデータをフィルタリング
- 発送伝票や請求書に表示されるメタデータをカスタマイズ
構文
add_filter( 'woocommerce_order_item_get_formatted_meta_data', 'your_custom_function', 10, 2 );
パラメータ
$formatted_meta
(array): フォーマットされたメタデータ$item
(WC_Order_Item): オーダーアイテムオブジェクト
戻り値
- フォーマットされたメタデータの配列(array)
使用可能なバージョン
- 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_filter( 'woocommerce_order_item_get_formatted_meta_data', 'custom_format_order_item_meta', 10, 2 );
function custom_format_order_item_meta( $formatted_meta, $item ) {
foreach ( $formatted_meta as $key => $meta ) {
if ( 'サイズ' === $meta->key ) {
$formatted_meta[$key]->display_key = 'カスタムサイズ';
}
}
return $formatted_meta;
}
引用元: WooCommerce Hooks
サンプル 2: メタデータの追加情報
オーダーアイテムに対して新たに「カスタムメモ」というメタデータを追加します。
add_filter( 'woocommerce_order_item_get_formatted_meta_data', 'add_custom_note_to_order_item_meta', 10, 2 );
function add_custom_note_to_order_item_meta( $formatted_meta, $item ) {
$formatted_meta[] = (object) [
'key' => 'カスタムメモ',
'value' => 'この商品は特別な処理が必要です。',
'display_key' => 'カスタムメモ',
'display_value' => 'この商品は特別な処理が必要です。',
];
return $formatted_meta;
}
サンプル 3: メタデータの条件付き表示
特定の条件に基づいてメタデータを表示するサンプルです。
add_filter( 'woocommerce_order_item_get_formatted_meta_data', 'conditional_display_order_item_meta', 10, 2 );
function conditional_display_order_item_meta( $formatted_meta, $item ) {
if ( $item->get_meta( '特定の条件' ) ) {
$formatted_meta[] = (object) [
'key' => '特別な通知',
'value' => 'このアイテムは特別な条件が適用されます。',
'display_key' => '特別な通知',
'display_value' => 'このアイテムは特別な条件が適用されます。',
];
}
return $formatted_meta;
}
引用元: WooCommerce Conditional Logic
サンプル 4: メタデータのローカライズ
オーダーアイテムのメタデータを別の言語に翻訳するサンプルです。
add_filter( 'woocommerce_order_item_get_formatted_meta_data', 'localize_order_item_meta', 10, 2 );
function localize_order_item_meta( $formatted_meta, $item ) {
foreach ( $formatted_meta as $key => $meta ) {
if ( '説明' === $meta->key ) {
$formatted_meta[$key]->display_value = translate( $meta->value, 'domain' );
}
}
return $formatted_meta;
}
サンプル 5: メタデータの並べ替え
メタデータの表示順を変更するサンプルコードです。
add_filter( 'woocommerce_order_item_get_formatted_meta_data', 'sort_order_item_meta', 10, 2 );
function sort_order_item_meta( $formatted_meta, $item ) {
usort( $formatted_meta, function( $a, $b ) {
return strcmp( $a->key, $b->key );
});
return $formatted_meta;
}
これらのサンプルコードを通じて、woocommerce_order_item_get_formatted_meta_data
フィルタの使い方やカスタマイズの方法を理解することができます。各サンプルコードは異なる目的でこのフィルタを利用しており、それぞれのユースケースに応じて活用できるでしょう。