Je souhaite modifier le menu de navigation de gauche "Mon compte" de WooCommerce.
Pour cela, j'ai apporté des modifications dans le woocommerce/templates/myaccount/navigation.php
. Les problèmes avec cette approche sont:
Quel est le meilleur moyen de personnaliser le menu de navigation "Mon compte" de WooCommerce quand bon me semble?
Pour cela, vous devez pas modifier le woocommerce/templates/myaccount/navigation.php
.
La meilleure façon de personnaliser les éléments du menu de navigation "Mon compte" est d'utiliser:
woocommerce_account_menu_items
filter hook pour ajouter de nouveaux éléments au menu.array_slice()
pour les réorganiser comme vous le souhaitez.De cette façon, en utilisant le crochet de filtre woocommerce_account_menu_items
, vous intégrez parfaitement vos propres éléments à WC, en effet:
Exemple de code:
// 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;
}
Note 1 : L'URL du lien de vos éléments est défini automatiquement par WC ici . Pour ce faire, WC ajoute simplement le point de terminaison d'élément défini dans le filtre ci-dessus à l'URL de la page "Mon compte". Définissez donc vos points de terminaison d’article en conséquence.
Note 2 : Dans votre question, il semble que vous ayez modifié le modèle WooCommerce directement dans le noyau ...woocommerce/templates/myaccount/navigation.php
Lorsque devez modifier un modèle WC, la bonne façon de le faire est de dupliquer le chemin du modèle relatif vers le dossier woocommerce/templates
dans le dossier woocommerce
de votre thème/plugin . Par exemple, dans notre cas, vous devrez coller le modèle dans:child-theme/woocommerce/myaccount/navigation.php
.