概要
woocommerce_purchase_order_item_types
フィルタは、WooCommerce プラグインにおいて、購入注文のアイテムタイプを変更したり追加したりするために使用されるフックです。このフィルタは、注文処理や表示のカスタマイズを行う際に非常に便利です。具体的には以下のような用途で利用されることが多いです。
- 新しいアイテムタイプの追加
- 既存アイテムタイプのカスタマイズ
- 商品属性に基づく動的なアイテムタイプの生成
- サードパーティ製プラグインと統合する際のアイテムタイプの変更
- レポートや分析用のデータ拡充
- 購入履歴表示のカスタマイズ
構文
add_filter('woocommerce_purchase_order_item_types', 'custom_function_name');
パラメータ
array $item_types
(既存のアイテムタイプが含まれる配列)
戻り値
array
(変更後のアイテムタイプの配列)
適用可能なバージョン
- WooCommerce: 最低 2.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_purchase_order_item_types', 'add_custom_item_type');
function add_custom_item_type($item_types) {
$item_types[] = 'custom_item';
return $item_types;
}
このサンプルコードは、新しいアイテムタイプ「custom_item」を追加しています。これにより、注文のアイテムリストにカスタム商品が表示できるようになります。
引用元: https://woocommerce.com/
サンプルコード2
add_filter('woocommerce_purchase_order_item_types', 'modify_existing_item_types');
function modify_existing_item_types($item_types) {
if (in_array('line_item', $item_types)) {
$item_types[array_search('line_item', $item_types)] = 'modified_line_item';
}
return $item_types;
}
このコードは、既存の「line_item」タイプ名を「modified_line_item」に変更しています。これにより、商品アイテムの表示がカスタマイズされます。
引用元: https://developer.woocommerce.com/
サンプルコード3
add_filter('woocommerce_purchase_order_item_types', 'conditional_item_types');
function conditional_item_types($item_types) {
if (some_condition()) {
$item_types['new_type'] = 'conditional_item';
}
return $item_types;
}
こちらのサンプルでは、特定の条件が満たされた場合にのみ、新しいアイテムタイプ「conditional_item」を追加します。
引用元: https://wpdocs.osdn.jp/
サンプルコード4
add_filter('woocommerce_purchase_order_item_types', 'remove_specific_item_type');
function remove_specific_item_type($item_types) {
if (in_array('removed_item', $item_types)) {
unset($item_types[array_search('removed_item', $item_types)]);
}
return $item_types;
}
このコードは、特定のアイテムタイプ「removed_item」をアイテムリストから削除します。これにより不要なタイプを排除できます。
引用元: https://www.sitepoint.com/
サンプルコード5
add_filter('woocommerce_purchase_order_item_types', 'filter_item_types_for_product');
function filter_item_types_for_product($item_types) {
global $product;
if ($product->is_type('simple')) {
$item_types[] = 'simple_item';
}
return $item_types;
}
このサンプルでは、商品がシンプルタイプの場合に「simple_item」アイテムタイプを追加します。これにより商品のタイプに応じた表示のカスタマイズが行えます。
引用元: https://www.wpbeginner.com/