概要
woocommerce_account_menu_items
フィルタは、WooCommerce のアカウントメニューアイテムをカスタマイズするために使用されます。このフィルタを使用することで、ユーザーのアカウントページに表示される項目の順序や内容を変更したり、新しいメニュー項目を追加したりすることができます。また、このフィルタは、特定の条件やニーズに応じてメニューの表示を調整する際に非常に便利です。以下は、よく使われる機能の例です。
- メニュー項目の順序変更
- 不要なメニュー項目の非表示
- 新しいメニュー項目の追加
- 特定のユーザーにのみ表示されたり非表示にする
- メニュー項目のラベル変更
- 外部リンクとしてメニュー項目を追加
- 構文:
add_filter( 'woocommerce_account_menu_items', 'your_function_name' );
- パラメータ:
$items
(配列) – アカウントメニュー項目の配列。 - 戻り値: 修正された
$items
配列。 - WooCommerce バージョン: 2.5 以降。
- WordPress バージョン: 4.0 以降。
サンプルコード
サンプル1: メニュー項目を非表示にする
add_filter( 'woocommerce_account_menu_items', 'remove_menu_item' );
function remove_menu_item( $items ) {
unset( $items['downloads'] ); // ダウンロードのメニュー項目を削除
return $items;
}
このコードは、「ダウンロード」メニュー項目を削除します。
サンプル2: 新しいメニュー項目を追加する
add_filter( 'woocommerce_account_menu_items', 'add_custom_menu_item' );
function add_custom_menu_item( $items ) {
$items['custom-link'] = 'カスタムリンク'; // 新しいメニュー項目を追加
return $items;
}
このコードは、アカウントメニューに「カスタムリンク」という新しい項目を追加します。
サンプル3: メニュー項目の順序を変更する
add_filter( 'woocommerce_account_menu_items', 'change_menu_order' );
function change_menu_order( $items ) {
$items = array_merge( array( 'orders' => $items['orders'] ), $items ); // 「注文」を先頭に移動
return $items;
}
このコードは、「注文」メニュー項目を他のアイテムの最初に移動します。
サンプル4: 特定のユーザー条件でメニュー項目を表示しない
add_filter( 'woocommerce_account_menu_items', 'conditional_menu_item_removal' );
function conditional_menu_item_removal( $items ) {
if ( current_user_can( 'subscriber' ) ) {
unset( $items['orders'] ); // 購読者の場合、「注文」を削除
}
return $items;
}
このコードは、購読者のユーザー権限を持つユーザーから「注文」メニュー項目を削除します。
サンプル5: メニュー項目のラベルを変更する
add_filter( 'woocommerce_account_menu_items', 'rename_menu_item' );
function rename_menu_item( $items ) {
$items['edit-account'] = 'アカウント情報'; // 「アカウントの編集」を「アカウント情報」に変更
return $items;
}
このコードは、「アカウントの編集」メニュー項目のラベルを「アカウント情報」に変更します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |