プラグインWooCommerceのwoocommerce_account_menu_itemsフィルタの使用方法・解説

概要

woocommerce_account_menu_items フィルタは、WooCommerce のアカウントメニューアイテムをカスタマイズするために使用されます。このフィルタを使用することで、ユーザーのアカウントページに表示される項目の順序や内容を変更したり、新しいメニュー項目を追加したりすることができます。また、このフィルタは、特定の条件やニーズに応じてメニューの表示を調整する際に非常に便利です。以下は、よく使われる機能の例です。

  1. メニュー項目の順序変更
  2. 不要なメニュー項目の非表示
  3. 新しいメニュー項目の追加
  4. 特定のユーザーにのみ表示されたり非表示にする
  5. メニュー項目のラベル変更
  6. 外部リンクとしてメニュー項目を追加
  • 構文: 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

この関数について質問する


上の計算式の答えを入力してください