Wie füge ich Links zu meiner Account-Navigation hinzu / entferne sie?

18

Wie entferne ich die Links "Abrechnungsvereinbarungen" und "Mein Wunschzettel" aus dem Navigationsmenü auf der Kundenkontoseite?

Rakesh Jesadiya
quelle
Sie haben mehrere Möglichkeiten, einen Link zu entfernen. (1) Verwenden Sie layout.xml, um den Referenzblock nach Namen zu entfernen. <referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>(2) Verwenden Sie ein Plugin. Siehe github.com/magepal/magento2-customer-account-links-manager
Renon Stewart
@RenonStewart, Können wir die Links basierend auf Kundengruppen entfernen?
Siva
1
@Siva ... Mit einigen Änderungen an github.com/magepal/magento2-customer-account-links-manager/blob/… können Sie nach Kundengruppe filtern
Renon Stewart

Antworten:

38

Hinzufügen eines neuen Layout-Handles zu einer der folgenden Stellen:

  1. Wenn Sie ein neues Modul erstellen: VendorName/ModuleName/view/frontend/layout/customer_account.xml
  2. Wenn Sie ein neues Design erstellen, sollten Sie zwei ähnliche Layout-Handles erstellen, um die Entfernung jedes Blocks separat zu erklären: app/design/frontend/VendorName/themeName/Magento_Wishlist/layout/customer_account.xml(und ein ähnliches Layout für das Abrechnungsvereinbarungsmodul)

Inhalt des Layout-Handles:

<?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>
Alex Paliarush
quelle
Neues Layout-Handle im Verzeichnis app \ design \ frontend \ Magento hinzufügen oder?
Abdul
Ist es nicht besser, es zu einem benutzerdefinierten Modul hinzuzufügen? Ich nehme an, dass die derzeitige Strategie in M2 darin besteht, einen vollständig modularen Ansatz zu ermöglichen, wenn Sie nicht an verschiedenen Stellen in der Codebasis verschiedene Dateitypen erstellen müssen (wie in M1). app/designscheint ein guter Ort für Theme-Entwickler zu sein.
Alex Paliarush
Derzeit verwende ich Luma Theme, dann füge ich ein neues Layout-Handle in Location \ Vendor \ Magento \ Theme-Frontend-Luma hinzu, oder?
Abdul
Wenn Sie ein neues Thema erstellen, folgen Sie devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/… . Wenn es sich um ein neues Modul handelt, fügen Sie Ihrem Modulverzeichnis ein Layout hinzu.
Alex Paliarush
46

Vollständige Liste der XML-Entfernungen für Kundenkonten für M2. Dies ist hilfreich für andere Entwickler, die versuchen, andere Links zu entfernen. Ich halte es für eine gute Idee, zusätzliche Informationen für andere Entwickler bereitzustellen.

<?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>
Goldy
quelle
Woher kannten Sie die vollständige Liste? Ich suche nach ein paar Links, die nicht in der Standardeinstellung von Magento sind, bitte sag mir, wie du diese Liste findest, danke :)
fudu
Ach egal, ich habe es in diesem Link gegründet. Magento.stackexchange.com/questions/186056/…
fudu
Auch nützlich: customer-account-navigation-delimiter-1und customer-account-navigation-delimiter-2sind die Namen der leeren / dekorativen Abschnitte - auch bekannt als Begrenzer.
Jamil
wird es nicht funktionieren, wenn ich eine struktur als app/code/<Vendor>/<Module>/view/frontend/layout/customer_account.xml. Ich habe jedoch einen separaten Themenordner.
Schmetterling
1

In meiner Magier-Installation (2.2.2 Commerce Edition) gibt es einen weiteren Link:

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

Ich habe das folgende CSS hinzugefügt, um die Registerkarte Abrechnungsvereinbarungen auf meinen Kundenkontoseiten auszublenden. Wie bereits erwähnt, gibt es bessere Möglichkeiten, dies zu tun, aber dies ist schnell und einfach!

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

Sie können genauso die Wunschliste oder einen anderen Link, den Sie entfernen möchten, ausführen. Richten Sie das Element einfach mit einem Selektor aus, wie hier erläutert: https://www.w3schools.com/cssref/css_selectors.asp

Cristina
quelle
0

Zuerst verstecke ich Links im Kundenkonto-Menü mit CSS, wie #Cristina erwähnt, weil ich dachte, dass die Lösung mit XML zu mühsam sein wird.

Aber es ist überhaupt nicht kompliziert. Sie müssen nur Links auswählen, die Sie entfernen möchten.

Was ist wichtig: Wenn Sie sich die Quelle des Seitencodes ansehen, gibt es keine Links zur CSS-Lösung im Gegensatz zur CSS-Lösung (Anzeige: keine;)

Peter Lem
quelle