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


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

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>

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


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>

¿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"/>

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


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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.