Comment ajouter / supprimer des liens sur mon compte navigation magento2?


18

Comment supprimer les liens "Accords de facturation" et "Ma liste de souhaits" du menu de navigation sur la page du compte client?


Il existe plusieurs façons de supprimer un lien. (1) en utilisant layout.xml pour supprimer le bloc de référence par son nom <referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>(2) utilisez un plugin voir github.com/magepal/magento2-customer-account-links-manager
Renon Stewart

@RenonStewart, pouvons-nous supprimer les liens basés sur des groupes de clients?
Siva

1
@Siva ... Avec quelques modifications sur github.com/magepal/magento2-customer-account-links-manager/blob/… vous pouvez filtrer par groupe de clients
Renon Stewart

Réponses:


38

Ajoutez une nouvelle poignée de présentation à l'un des emplacements:

  1. Si vous créez un nouveau module: VendorName/ModuleName/view/frontend/layout/customer_account.xml
  2. Si vous créez un nouveau thème, 2 poignées de mise en page similaires doivent être créées pour déclarer la suppression de chaque bloc séparément: app/design/frontend/VendorName/themeName/Magento_Wishlist/layout/customer_account.xml(et mise en page similaire pour le module d'accord de facturation)

Contenu de la poignée de mise en page:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>
        <referenceBlock name="customer-account-navigation-billing-agreements-link" remove="true"/>
    </body>
</page>

ajouter une nouvelle poignée de mise en page dans l'application de localisation \ design \ frontend \ Magento non?
Abdul

N'est-il pas préférable de l'ajouter au module personnalisé? Je suppose que la stratégie actuelle dans M2 est de permettre une approche totalement modulaire, lorsque vous n'avez pas à créer différents types de fichiers à différents endroits de la base de code (comme c'était le cas dans M1). app/designsemble être un bon endroit pour les développeurs de thèmes.
Alex Paliarush

actuellement j'utilise le thème luma, puis j'ajoute une nouvelle poignée de mise en page dans l'emplacement \ vendeur \ magento \ theme-frontend-luma non?
Abdul

Si vous créez un nouveau thème, suivez devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/… . Si nouveau module, ajoutez la mise en page à votre répertoire de modules.
Alex Paliarush du


46

Liste complète de la suppression XML du compte client pour M2. Il sera utile pour les autres développeurs qui essaient de supprimer d'autres liens. Je pense que c'est une bonne idée de conserver des informations supplémentaires pour les autres développeurs.

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <!-- Remove unwanted account navigation links -->
        <!-- Put this file in: app/design/frontend/[Namespace]/[Theme]/Magento_Customer/layout/customer_account.xml -->

        <!-- Store credit -->
        <referenceBlock name="customer-account-navigation-customer-balance-link" remove="true"/>

        <!-- Downloadable product link -->
        <referenceBlock name="customer-account-navigation-downloadable-products-link" remove="true"/>

        <!-- Subscription link -->
        <referenceBlock name="customer-account-navigation-newsletter-subscriptions-link" remove="true"/>

        <!-- Billing agreement link -->
        <referenceBlock name="customer-account-navigation-billing-agreements-link" remove="true"/>

        <!-- Product review link -->
        <referenceBlock name="customer-account-navigation-product-reviews-link" remove="true"/>

        <!-- My credit card link -->
        <referenceBlock name="customer-account-navigation-my-credit-cards-link" remove="true"/>

        <!-- Account link -->
        <referenceBlock name="customer-account-navigation-account-link" remove="true"/>

        <!-- Account edit link -->
        <referenceBlock name="customer-account-navigation-account-edit-link" remove="true"/>

        <!-- Address link -->
        <referenceBlock name="customer-account-navigation-address-link" remove="true"/>

        <!-- Orders link -->
        <referenceBlock name="customer-account-navigation-orders-link" remove="true"/>

        <!-- Wish list link -->
        <referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>

        <!-- Gift card link -->
        <referenceBlock name="customer-account-navigation-gift-card-link" remove="true"/>

        <!-- Order by SKU -->
        <referenceBlock name="customer-account-navigation-checkout-sku-link" remove="true"/>

        <!-- Gift registry -->
        <referenceBlock name="customer-account-navigation-giftregistry-link" remove="true"/>

        <!-- Reward points -->
        <referenceBlock name="customer-account-navigation-reward-link" remove="true"/>
    </body>
</page>

Comment avez-vous connu la liste complète? Je suis à la recherche de liens qui ne sont pas par défaut de magento, dites-moi comment trouvez-vous cette liste, merci :)
fudu

Ah nevermind, je l'ai fondé dans ce lien magento.stackexchange.com/questions/186056/…
fudu

Également utile: customer-account-navigation-delimiter-1et customer-account-navigation-delimiter-2sont les noms des sections vides / décoratives - alias délimiteurs.
jamil

ça ne marchera pas si je crée une structure en tant que app/code/<Vendor>/<Module>/view/frontend/layout/customer_account.xml. J'ai cependant un dossier de thème séparé.
Butterfly

1

Dans mon installation de mage (2.2.2 édition commerciale) il y a un autre lien:

<!-- Invitations -->
<referenceBlock name="customer-account-navigation-magento-invitation-link-container" remove="true"/>

0

J'ai ajouté le CSS suivant pour masquer l'onglet Accords de facturation sur les pages de mon compte client. Il existe de meilleures façons de le faire comme mentionné, mais c'est rapide et facile!

nav.account-nav li.nav.item a [href * = "billing_agreement"] {display: none;}

Vous pouvez faire de même la liste de souhaits ou tout autre lien que vous souhaitez supprimer. Cibler simplement l'élément à l'aide d'un sélecteur, comme expliqué ici: https://www.w3schools.com/cssref/css_selectors.asp


0

Au début, je cache les liens dans le compte client MENU en utilisant CSS comme #Cristina l'a mentionné parce que je pensais que la solution avec xml serait trop laborieuse.

Mais ce n'est pas compliqué du tout. Il vous suffit de choisir les liens que vous souhaitez supprimer.

Ce qui est important: en regardant la source du code de la page - il n'y a pas de liens vers par opposition à la solution CSS (affichage: aucun;)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.