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?

Rakesh Jesadiya
fonte
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
rakeshjesadiya.com/remove-customer-navigation-links-magento-2 Remova todos os links do Magento Commerce.
Rakesh Jesadiya

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>
Alex Paliarush
fonte
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
rakeshjesadiya.com/wp-admin/post.php?post=1844&action=edit Comércio Magento e Opensouurce.
Rakesh Jesadiya
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>
Goldy
fonte
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"/>
Fabrizio Vanzani
fonte
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

Cristina
fonte
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;)

Peter Lem
fonte