WooCommerceの「マイアカウント」左側のナビゲーションメニューを変更したいです。
そのために、woocommerce/templates/myaccount/navigation.php
に変更を加えました。この方法の問題点は次のとおりです。
私の都合の良いときにWooCommerceの「マイアカウント」ナビゲーションメニューをカスタマイズするための最良の方法は何ですか?
そのためには、notwoocommerce/templates/myaccount/navigation.php
を変更する必要があります。
「マイアカウント」ナビゲーションメニュー項目をカスタマイズする最良の方法は、次を使用することです。
woocommerce_account_menu_items
メニューに新しいアイテムを追加するためのフィルターフック。array_slice()
希望通りに並べ替えます。このように、woocommerce_account_menu_items
フィルターフックを使用することで、独自のアイテムをWCにperfectly統合します。
コード例:
// Note the low hook priority, this should give to your other plugins the time to add their own items...
add_filter( 'woocommerce_account_menu_items', 'add_my_menu_items', 99, 1 );
function add_my_menu_items( $items ) {
$my_items = array(
// endpoint => label
'2nd-item' => __( '2nd Item', 'my_plugin' ),
'3rd-item' => __( '3rd Item', 'my_plugin' ),
);
$my_items = array_slice( $items, 0, 1, true ) +
$my_items +
array_slice( $items, 1, count( $items ), true );
return $my_items;
}
注1:アイテムのリンクのURLは、WC here によって自動的に定義されます。これを行うには、WCは上記のフィルターで定義されたアイテムエンドポイントを[マイアカウント]ページのURLに追加するだけです。したがって、それに応じてアイテムのエンドポイントを定義します。
注2:あなたの質問では、WooCommerceテンプレートをコアで直接変更したようです...woocommerce/templates/myaccount/navigation.php
WCテンプレートを変更する必要がある場合、正しい方法はテンプレートのパスを複製することですrelativeをwoocommerce/templates
フォルダーからテーマ/プラグインのwoocommerce
フォルダーに追加します。たとえば、この場合、テンプレートを次の場所に貼り付ける必要があります。child-theme/woocommerce/myaccount/navigation.php
。