¿Cómo agregar / eliminar enlaces en mi cuenta de navegación magento2?

18

¿Cómo eliminar los enlaces "Acuerdos de facturación" y "Mi lista de deseos" del menú de navegación en la página de la cuenta del cliente?

Rakesh Jesadiya
fuente
Son múltiples formas de eliminar un enlace. (1) usando layout.xml para eliminar el bloque de referencia por nombre <referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>(2) use un complemento, consulte github.com/magepal/magento2-customer-account-links-manager
Renon Stewart
@ RenonStewart, ¿podemos eliminar los enlaces basados ​​en grupos de clientes?
Siva
1
@Siva ... Con algunas modificaciones en github.com/magepal/magento2-customer-account-links-manager/blob/… , puede filtrar por grupo de clientes
Renon Stewart
rakeshjesadiya.com/remove-customer-navigation-links-magento-2 Elimine todos los enlaces de Magento Commerce.
Rakesh Jesadiya

Respuestas:

38

Agregue un nuevo controlador de diseño a uno de los lugares:

  1. Si crea un nuevo módulo: VendorName/ModuleName/view/frontend/layout/customer_account.xml
  2. Si se crea un nuevo tema, se deben crear 2 controladores de diseño similares para declarar la eliminación de cada bloque por separado: app/design/frontend/VendorName/themeName/Magento_Wishlist/layout/customer_account.xml(y un diseño similar para el módulo de acuerdo de facturación)

Contenido del controlador de diseño:

<?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
fuente
agregue un nuevo controlador de diseño en la aplicación de ubicación \ design \ frontend \ Magento ¿verdad?
Abdul
¿No es mejor agregarlo al módulo personalizado? Supongo que la estrategia actual en M2 es permitir un enfoque totalmente modular, cuando no tiene que crear diferentes tipos de archivos en diferentes lugares a través de la base de código (como era en M1). app/designParece ser un buen lugar para los desarrolladores de temas.
Alex Paliarush
Actualmente estoy usando el tema luma y luego agrego un nuevo controlador de diseño en ubicación \ vendor \ magento \ theme-frontend-luma ¿verdad?
Abdul
Si crea un nuevo tema, siga devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/… . Si es un módulo nuevo, agregue diseño al directorio de su módulo.
Alex Paliarush
rakeshjesadiya.com/wp-admin/post.php?post=1844&action=edit Comercio Magento y Opensouurce.
Rakesh Jesadiya
46

Lista completa de eliminación de XML de cuenta de cliente para M2. Será útil para otros desarrolladores que intenten eliminar otros enlaces. Creo que es una buena idea mantenerlo con información adicional para otros desarrolladores.

<?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
fuente
¿Cómo conociste la lista completa? Estoy buscando algunos enlaces que no están en default de magento, por favor dime cómo encuentras esta lista, gracias :)
fudu
Ah, no importa, lo he fundado en este enlace magento.stackexchange.com/questions/186056/…
fudu
También es útil: customer-account-navigation-delimiter-1y customer-account-navigation-delimiter-2son los nombres de las secciones vacías / decorativas, también conocidos como delimitadores.
jamil
¿No funcionará si creo una estructura como app/code/<Vendor>/<Module>/view/frontend/layout/customer_account.xml. Sin embargo, tengo una carpeta de tema separada.
Mariposa
1

En mi instalación de mago (2.2.2 edición comercial) hay otro enlace:

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

Agregué el siguiente CSS para ocultar la pestaña Acuerdos de facturación en las páginas de mi cuenta de cliente. Hay mejores formas de hacer esto como se mencionó, ¡pero esto es rápido y fácil!

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

Puede hacer lo mismo con la Lista de deseos o cualquier otro enlace que desee eliminar. Simplemente apunte el elemento usando un selector, como se explica aquí: https://www.w3schools.com/cssref/css_selectors.asp

Cristina
fuente
0

Al principio, oculto los enlaces en el MENÚ de la cuenta del cliente usando CSS como #Cristina mencionó porque pensé que la solución con xml sería demasiado laboriosa.

Pero no es complicado en absoluto. Solo necesita elegir enlaces, que le gustaría eliminar.

Lo que es importante: al mirar la fuente del código de la página, no hay enlaces en lugar de la solución CSS (display: none;)

Peter Lem
fuente