Jak dodawać / usuwać linki do nawigacji mojego konta magento2?

18

Jak usunąć linki „Umowy rozliczeniowe” i „Moja lista życzeń” z menu nawigacji na stronie konta klienta?

Rakesh Jesadiya
źródło
Istnieje wiele sposobów na usunięcie linku. (1) używając layout.xml do usunięcia bloku referencyjnego według nazwy <referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>(2) użyj wtyczki patrz github.com/magepal/magento2-customer-account-links-manager
Renon Stewart
@RenonStewart, Czy możemy usunąć linki na podstawie grup klientów?
Siva
1
@Siva ... Z pewnymi modyfikacjami na github.com/magepal/magento2-customer-account-links-manager/blob/... możesz filtrować według grup klientów
Renon Stewart
rakeshjesadiya.com/remove-customer-navigation-links-magento-2 Usuń wszystkie linki z Magento Commerce.
Rakesh Jesadiya,

Odpowiedzi:

38

Dodaj nowy uchwyt układu do jednego z miejsc:

  1. Jeśli tworzysz nowy moduł: VendorName/ModuleName/view/frontend/layout/customer_account.xml
  2. W przypadku tworzenia nowego motywu należy utworzyć 2 podobne uchwyty układu, aby zadeklarować usunięcie każdego bloku osobno: app/design/frontend/VendorName/themeName/Magento_Wishlist/layout/customer_account.xml(i podobny układ dla modułu umowy rozliczeniowej)

Układ uchwytu zawartości:

<?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
źródło
dodaj nowy uchwyt układu w aplikacji do lokalizacji \ design \ frontend \ Magento, prawda?
Abdul
Czy nie lepiej jest dodać go do niestandardowego modułu? Podejrzewam, że obecna strategia w M2 polega na umożliwieniu całkowicie modułowego podejścia, gdy nie musisz tworzyć różnych typów plików w różnych miejscach w całej bazie kodu (jak to było w M1). app/designwydaje się być dobrym miejscem dla twórców motywów.
Alex Paliarush,
obecnie używam motywu Luma, a następnie dodaj nowy uchwyt układu w lokalizacji \ vendor \ magento \ theme-frontend-luma, prawda?
Abdul
Jeśli tworzysz nowy motyw, śledź devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/… . Jeśli nowy moduł, dodaj układ do katalogu modułów.
Alex Paliarush,
rakeshjesadiya.com/wp-admin/post.php?post=1844&action=edit Magento commerce and Opensouurce.
Rakesh Jesadiya,
46

Pełna lista usuwania XML konta klienta dla M2. Będzie to pomocne dla innych programistów, którzy próbują usunąć inne linki. Myślę, że dobrym pomysłem jest, aby zachować dodatkowe informacje dla innych programistów.

<?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>
złotawy
źródło
Skąd znasz pełną listę? Szukam linków, które nie są domyślnie w Magento, proszę powiedz mi, jak znajdziesz tę listę, dzięki :)
fudu
Ach nieważne, założyłem go w tym linku magento.stackexchange.com/questions/186056/…
fudu
Przydatne są także: customer-account-navigation-delimiter-1i customer-account-navigation-delimiter-2są nazwy pustych / dekoracyjnych sekcji - zwanych również ogranicznikami.
jamil
czy to nie zadziała, jeśli utworzę strukturę jako app/code/<Vendor>/<Module>/view/frontend/layout/customer_account.xml. Mam jednak osobny folder motywów.
Butterfly
1

W mojej instalacji maga (edycja handlowa 2.2.2) jest jeszcze jeden link:

<!-- Invitations -->
<referenceBlock name="customer-account-navigation-magento-invitation-link-container" remove="true"/>
Fabrizio Vanzani
źródło
0

Dodałem następujący css, aby ukryć kartę Umowy rozliczeniowe na stronach mojego konta klienta. Jak już wspomniano, są lepsze sposoby na zrobienie tego, ale jest to szybkie i łatwe!

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

Możesz zrobić to samo z listą życzeń lub innym linkiem, który chcesz usunąć. Wystarczy wskazać element za pomocą selektora, jak wyjaśniono tutaj: https://www.w3schools.com/cssref/css_selectors.asp

Cristina
źródło
0

Najpierw ukrywam linki w MENU konta klienta za pomocą CSS, jak wspomniałem #Cristina, ponieważ myślałem, że rozwiązanie z xml będzie zbyt pracochłonne.

Ale to wcale nie jest skomplikowane. Musisz tylko wybrać linki, które chcesz usunąć.

Co ważne: patrząc na źródło kodu strony - nie ma linków do rozwiązania CSS (display: none;)

Peter Lem
źródło