Magento 2 : How to remove and change My Account Navigation

All we need is an easy explanation of the problem, so here it is.

I’m trying to remove some tabs and change the navigations title :
enter image description here

As you can see above navigation How to remove some navigation and change the title ? For example removing Address Book change NewsLetter Subscriptons to Subscription

I was looking for the css file nav items and found this :

<?php
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
/** @var $block \Magento\Framework\View\Element\Html\Links */
?>
<?php /** @var $block \Magento\Customer\Block\Account\Navigation */ ?>
<div class="block account-nav">
    <div class="title">
        <strong><?php /* @escapeNotVerified */ echo __('My Account'); ?></strong>
    </div>
    <div class="content">
        <nav class="account-nav">
            <ul class="nav items">
                <?php echo $block->getChildHtml();?>
            </ul>
        </nav>
    </div>
</div>

From here I was looking for the \Magento\Framework\View\Element\Html\Links but kinda stuck and have no idea what to do.

I’m new to magento 2 so kinda noob here.

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

1 ) Add below code in your extended default.xml file to remove Account tabs links.

app/design/frontend/vendorname/themename/Magento_Theme/layout/default.xml

Here is list of code to remove account tabs as needed. Will helpful to you and other users as well

        <!-- Address link -->
        <referenceBlock name="customer-account-navigation-address-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"/>


        <!-- Orders link -->
        <referenceBlock name="customer-account-navigation-orders-link" remove="true"/>

        <!-- Wish list link -->
        <referenceBlock name="customer-account-navigation-wish-list-link" remove="true"/>

2 ) Renaming Newsletter Subscriptions

Copy customer_account.xml from

vendor/magento/module-newsletter/view/frontend/layout/customer_account.xml

To your extended module

app/design/frontend/vendorname/themename/Magento_Newsletter/layout/customer_account.xml

Let me know if any problem.

Keep cache disable while changing any XML file

Method 2

Create xml file in your custom theme app/design/frontend/Custom/mytheme/Magento_Customer/layout/customer_account.xml

<?xml version="1.0" encoding="UTF-8"?>
<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-address-link" remove="true"/>
    </body>
</page> 

For Changing newsletter subscriptions to subscriptions, copy file vendor/magento/module-newsletter/view/frontend/layout/customer_account.xml in your custom theme app/design/frontend/Custom/mytheme/Magento_Newsletter/layout/customer_account.xml and change the required text.

Then run commands for static content deploy and cache flush.

Method 3

Remove the Invitation Link from Dashboard Sections.

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

Remove Additional Sidebar from My account (Dashboard)

<!-- Additional Sidebar -->
<referenceContainer name="sidebar.additional" remove="true" />

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply