概要
woocommerce_get_item_data
フィルタは、WooCommerce のカートに追加された商品アイテムのデータをカスタマイズするために使用されます。このフィルタを使用すると、商品詳細やカスタムフィールドを表示する際に、ユーザーのインターフェースを向上させることができます。具体的には、以下のような機能の実装に役立ちます:
- 商品のカスタム属性の表示
- 特殊なオプションの選択肢の追加
- ユーザーが選択したオプションの情報を表示
- バリエーション商品の詳細情報の表示
- 商品ライセンス情報の表示
- 商品メモや特記事項の表示
構文
add_filter('woocommerce_get_item_data', 'your_function_name', 10, 2);
パラメータ
– $item_data
: 商品に関連するデータの配列
– $cart_item
: カート内の特定の商品アイテムの配列
戻り値
– カスタマイズされた $item_data
配列
対応する WooCommerce バージョン
– WooCommerce 2.1 以降
対応する WordPress バージョン
– WordPress 4.0 以降
サンプルコード
サンプルコード1: 商品のカスタム属性を追加する
このコードは、カートに追加された商品にカスタム属性(例: サイズ)を表示します。
add_filter('woocommerce_get_item_data', 'add_custom_size_to_cart_item', 10, 2);
function add_custom_size_to_cart_item($item_data, $cart_item) {
if (!empty($cart_item['size'])) {
$item_data[] = array(
'name' => __('Size', 'your-text-domain'),
'value' => wc_clean($cart_item['size']),
);
}
return $item_data;
}
引用元: https://www.businessbloomer.com/woocommerce-custom-cart-item-data/
サンプルコード2: 商品メモをカートに表示する
このコードは、カートに商品の特記事項を表示します。
add_filter('woocommerce_get_item_data', 'display_custom_item_note', 10, 2);
function display_custom_item_note($item_data, $cart_item) {
if (!empty($cart_item['item_note'])) {
$item_data[] = array(
'name' => __('Note', 'your-text-domain'),
'value' => wc_clean($cart_item['item_note']),
);
}
return $item_data;
}
引用元: https://woocommerce.com
サンプルコード3: 商品ライセンス情報を追加
このコードでは、カート内にライセンス情報を追加する方法を示します。
add_filter('woocommerce_get_item_data', 'add_license_info_cart_item', 10, 2);
function add_license_info_cart_item($item_data, $cart_item) {
if (!empty($cart_item['license'])) {
$item_data[] = array(
'name' => __('License', 'your-text-domain'),
'value' => wc_clean($cart_item['license']),
);
}
return $item_data;
}
引用元: https://www.wpbeginner.com
サンプルコード4: バリエーション商品の情報を追加
このコードは、バリエーション商品がカートに追加された際に、その情報を表示します。
add_filter('woocommerce_get_item_data', 'add_variation_info_to_cart', 10, 2);
function add_variation_info_to_cart($item_data, $cart_item) {
if (!empty($cart_item['variation'])) {
foreach ($cart_item['variation'] as $key => $value) {
$item_data[] = array(
'name' => wc_attribute_label($key),
'value' => $value,
);
}
}
return $item_data;
}
引用元: https://woocommerce.com
サンプルコード5: ユーザーが選択したオプションを表示
この例では、ユーザーが選択した特別なオプションがカートに表示されるようにします。
add_filter('woocommerce_get_item_data', 'show_user_selected_options', 10, 2);
function show_user_selected_options($item_data, $cart_item) {
if (!empty($cart_item['custom_option'])) {
$item_data[] = array(
'name' => __('Your Option', 'your-text-domain'),
'value' => wc_clean($cart_item['custom_option']),
);
}
return $item_data;
}
引用元: https://www.wpexplorer.com
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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 |