Як додати / видалити посилання на навігаційному обліковому записі magento2?


18

Як видалити посилання "Угоди про виставлення рахунків" та "Мій список бажань" із навігаційного меню на сторінці облікового запису клієнта?


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

@RenonStewart, Чи можемо ми видалити посилання на основі груп клієнтів?
Сіва

1
@Siva ... З деякими змінами до github.com/magepal/magento2-customer-account-links-manager/blob/… ви могли фільтрувати за групою клієнтів
Renon Stewart

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>

додати нову ручку макета в додаток про розташування \ дизайн \ frontend \ Magento правильно?
Абдул

Хіба не краще додати його до спеціального модуля? Я думаю, що поточна стратегія в M2 полягає в тому, щоб дозволити абсолютно модульний підхід, коли вам не доведеться створювати різні типи файлів у різних місцях по всій кодовій базі (як це було в M1). app/designздається, це гарне місце для розробників тем.
Олексій Паляруш

В даний час я використовую тему luma, то я додаю нову макет ручки в розташуванні \ vendor \ magento \ topic-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>

Як ви дізналися повний список? Я шукаю посилання, які не за замовчуванням магенто, скажіть, будь ласка, як ви знайдете цей список, дякую :)
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"] {показ: немає;}

Ви можете зробити те саме, що Ви хочете видалити, або будь-яке інше посилання. Просто націліть елемент за допомогою селектора, як пояснено тут: https://www.w3schools.com/cssref/css_selectors.asp


0

Спочатку я приховую посилання в обліковому записі клієнта MENU, використовуючи CSS, як згадував # Cristina, тому що думав, що рішення з xml буде занадто трудомістким.

Але це зовсім не складно. Вам просто потрібно вибрати посилання, які ви хочете видалити.

Що важливо: дивлячись на джерело коду сторінки - немає посилань на відміну від рішення CSS (дисплей: немає;)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.