web-dev-qa-db-fra.com

Comment modifier le menu de navigation de la page "Mon compte" dans WooCommerce

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:

  • Je peux ajouter les nouveaux éléments seulement à la première ou à la dernière position du menu. J'aurais besoin d'eux aux 2e et 3e positions à la place ...
  • Si WC est mis à jour, cela pourrait changer ...

Quel est le meilleur moyen de personnaliser le menu de navigation "Mon compte" de WooCommerce quand bon me semble?

 enter image description here 

2
Dhruvang Gajjar

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:

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:

  • Possibilité de redéfinir vos propres points finaux d'élément via la page de paramètres du compte "Compte" de WC.
  • WC met à jour automatiquement l'URL du lien d'élément lorsque, par exemple, une modification est apportée aux paramètres/structure du permalien.

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.

14
ClemC