Как добавить / удалить ссылки на моем аккаунте навигации magento2?


18

Как удалить ссылки «Соглашения о выставлении счетов» и «Мой список пожеланий» из меню навигации на странице учетной записи клиента?


Это несколько способов удалить ссылку. (1) использование layout.xml для удаления ссылочного блока по имени <referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>(2) использование плагина, см. Github.com/magepal/magento2-customer-account-links-manager
Ренон Стюарт,

@RenonStewart, мы можем удалить ссылки на основе групп клиентов?
Шива

1
@Siva ... С некоторыми изменениями в github.com/magepal/magento2-customer-account-links-manager/blob/… вы можете фильтровать по группам клиентов
Ренон Стюарт,

rakeshjesadiya.com/remove-customer-navigation-links-magento-2 Удалите все ссылки из Magento Commerce.
Ракеш Джесадия

Ответы:


38

Добавьте новый дескриптор макета в одно из мест:

  1. При создании нового модуля: VendorName/ModuleName/view/frontend/layout/customer_account.xml
  2. При создании новой темы необходимо создать 2 одинаковых маркера макета, чтобы объявить удаление каждого блока отдельно: app/design/frontend/VendorName/themeName/Magento_Wishlist/layout/customer_account.xml(и аналогичный макет для модуля соглашения об оплате)

Содержание дескриптора макета:

<?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>

добавить новый дескриптор макета в расположение приложения \ design \ frontend \ Magento, верно?
Абдул

Не лучше ли добавить его в пользовательский модуль? Я предполагаю, что текущая стратегия в M2 состоит в том, чтобы разрешить полностью модульный подход, когда вам не нужно создавать разные типы файлов в разных местах по всей базе кода (как это было в M1). app/designкажется хорошим местом для разработчиков тем.
Алекс Палиаруш

в настоящее время я использую тему luma, затем я добавляю новый дескриптор макета в папку location \ vendor \ magento \ theme-frontend-luma, верно?
Абдул

Если вы создаете новую тему, следуйте devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/… . Если новый модуль, добавьте макет в каталог вашего модуля.
Алекс Палиаруш


46

Полный список удаления аккаунта клиента XML для M2. Это будет полезно для других разработчиков, которые пытаются удалить другие ссылки. Я думаю, что это хорошая идея, чтобы иметь дополнительную информацию для других разработчиков.

<?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>

Как вы узнали полный список? Я ищу некоторые ссылки, которые не по умолчанию magento, пожалуйста, скажите мне, как вы находите этот список, спасибо :)
fudu

А фигу, я основал ее в этой ссылке magento.stackexchange.com/questions/186056/...
Fudu

Также полезно: customer-account-navigation-delimiter-1и customer-account-navigation-delimiter-2названия пустых / декоративных разделов - иначе разделители.
Джамиль

не будет работать, если я создам структуру как app/code/<Vendor>/<Module>/view/frontend/layout/customer_account.xml. У меня есть отдельная папка темы, хотя.
Бабочка

1

В моей установке мага (2.2.2 коммерческая версия) есть еще одна ссылка:

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

0

Я добавил следующую CSS, чтобы скрыть вкладку «Соглашения о выставлении счетов» на страницах моей учетной записи. Как уже упоминалось, есть лучшие способы сделать это, но это быстро и легко!

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

Вы можете сделать то же самое Список пожеланий или любую другую ссылку, которую вы хотите удалить. Просто выберите элемент, используя селектор, как описано здесь: https://www.w3schools.com/cssref/css_selectors.asp


0

Сначала я скрываю ссылки в МЕНЮ аккаунта клиента, используя CSS, как упомянул #Cristina, потому что я думал, что решение с xml будет слишком трудоемким.

Но это совсем не сложно. Вам просто нужно выбрать ссылки, которые вы хотели бы удалить.

Что важно: глядя на источник кода страницы - нет ссылок на CSS-решение (display: none;)


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.