如何在我的帐户导航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,我们可以根据客户群删除链接吗?
西瓦(Siva)

1
@Siva ...对github.com/magepal/magento2-customer-account-links-manager/blob/进行了一些修改,您可以按客户群进行过滤
Renon Stewart

Answers:


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>

在location app \ design \ frontend \ Magento中添加新的布局句柄,对吗?
阿卜杜勒

将其添加到自定义模块不是更好吗?我想M2中的当前策略是允许完全模块化的方法,而不必在代码库的不同位置创建不同类型的文件(就像M1中那样)。app/design对于主题开发人员来说似乎是个好地方。
Alex Paliarush 2015年

目前我使用亮度主题,然后在位置\ vendor \ magento \ theme-frontend-luma中添加新的布局句柄,对吗?
阿卜杜勒

如果创建新主题,请遵循devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/…。如果是新模块,则将布局添加到模块目录。
Alex Paliarush 2015年


46

M2的客户帐户XML删除的完整列表。这将对尝试删除其他链接的其他开发人员很有帮助。我认为最好保留其他开发人员的额外信息。

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

您怎么知道完整列表的?我正在寻找magento默认不提供的一些链接,请告诉我您如何找到此列表,谢谢:)
fudu

没关系,我已经在此链接中建立了它magento.stackexchange.com/questions/186056/…–
fudu

也很有用:customer-account-navigation-delimiter-1customer-account-navigation-delimiter-2是空白/装饰部分的名称-又名定界符。
jamil

如果我将结构创建为,它行不通吗app/code/<Vendor>/<Module>/view/frontend/layout/customer_account.xml?我有一个单独的主题文件夹。
蝴蝶


0

我添加了以下CSS,以在客户帐户页面上隐藏“结算协议”标签。如前所述,有更好的方法可以做到这一点,但这是快速而简单的!

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

您可以执行相同的“心愿单”或要删除的任何其他链接。只需使用选择器定位元素即可,如下所述:https : //www.w3schools.com/cssref/css_selectors.asp


0

最初,我使用#Cristina提到的CSS来隐藏客户帐户MENU中的链接,因为我认为使用xml解决方案会很费力。

但这并不复杂。您只需要选择要删除的链接。

重要的是:通过查看页面代码的源代码,没有指向CSS解决方案的链接(显示:无;)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.