Como adicionar / remover links na minha conta de navegação magento2?


18

Como remover os links "Contratos de cobrança" e "Minha lista de desejos" no menu de navegação na página da conta do cliente?


São várias maneiras de remover um link. (1) usando layout.xml para remover o bloco de referência pelo nome <referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>(2) usar um plug-in ver github.com/magepal/magento2-customer-account-links-manager
Renon Stewart

@RenonStewart, podemos remover os links com base em grupos de clientes?
Siva

1
@Siva ... Com algumas modificações no github.com/magepal/magento2-customer-account-links-manager/blob/…, você pode filtrar por grupo de clientes
Renon Stewart

Respostas:


38

Adicione um novo identificador de layout a um dos locais:

  1. Se estiver criando um novo módulo: VendorName/ModuleName/view/frontend/layout/customer_account.xml
  2. Se você estiver criando um novo tema, duas alças de layout semelhantes devem ser criadas para declarar a remoção de cada bloco separadamente: app/design/frontend/VendorName/themeName/Magento_Wishlist/layout/customer_account.xml(e layout semelhante para o módulo do contrato de cobrança)

Conteúdo do identificador de layout:

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

adicionar novo identificador de layout no local app \ design \ frontend \ Magento, certo?
Abdul

Não é melhor adicioná-lo ao módulo personalizado? Suponho que a estratégia atual no M2 seja permitir uma abordagem totalmente modular, quando você não precisar criar tipos diferentes de arquivos em locais diferentes na base de código (como no M1). app/designparece ser um bom lugar para desenvolvedores de temas.
AlexPaliarush #

Atualmente, usando o tema luma, adiciono um novo identificador de layout no local \ vendor \ magento \ theme-frontend-luma, certo?
Abdul

Se você criar um novo tema, siga devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/… . Se novo módulo, adicione layout ao diretório do módulo.
Alex Paliarush


46

Lista completa de remoção de XML da conta do cliente para M2. Será útil para outros desenvolvedores que tentarem remover outros links. Eu acho que é uma boa idéia mantê-lo com informações extras para outros desenvolvedores.

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

Como você conheceu a lista completa? Eu estou procurando alguns links que não na falta de Magento, por favor me diga como você encontrar esta lista, graças :)
Fudu

Ah deixa pra lá, eu tenho fundou em este link magento.stackexchange.com/questions/186056/...
Fudu

Também é útil: customer-account-navigation-delimiter-1e customer-account-navigation-delimiter-2são os nomes das seções vazias / decorativas - também conhecidas como delimitadores.
21418 jamil

não funcionará se eu criar uma estrutura como app/code/<Vendor>/<Module>/view/frontend/layout/customer_account.xml. Eu tenho uma pasta de tema separada embora.
Butterfly

1

Na instalação do meu mage (2.2.2 edition), existe outro link:

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

0

Adicionei o seguinte CSS para ocultar a guia Contratos de cobrança nas páginas da minha conta de cliente. Existem maneiras melhores de fazer isso, conforme mencionado, mas isso é rápido e fácil!

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

Você pode fazer o mesmo com a lista de desejos ou qualquer outro link que queira remover. Basta direcionar o elemento usando um seletor, conforme explicado aqui: https://www.w3schools.com/cssref/css_selectors.asp


0

No começo, oculto links no MENU da conta do cliente usando CSS como #Cristina mencionado, porque pensei que a solução com xml seria muito trabalhosa.

Mas não é nada complicado. Você só precisa escolher os links que você deseja remover.

O que é importante: olhando a fonte do código da página - não há links para a solução CSS (exibição: none;)


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.