Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove navigation links from My Account

Tags:

magento

I am running Mage 1.5.0.1 and I am trying to remove the navigation links from the My Account section.

My local.xml has the following which works fine:

 <customer_account>
    <reference name="root">
        <action method="setTemplate"><template>page/staticpage.phtml</template></action>
    </reference>
   <reference name="left">
        <remove name="cart_sidebar" /> 
        <remove name="catalog.compare.sidebar" />   
    </reference>
 </customer_account>

When I try to add the following code the system throws and error:

   <reference name="customer_account_navigation">
    <action method="removeLinkByName"><name>recurring_profiles</name></action>
    <action method="removeLinkByName"><name>billing_agreements</name></action>
</reference>

Error

Invalid method Mage_Customer_Block_Account_Navigation::removeLinkByName

I saw this function in 1.4, is it not supported anymore or am I doing something wrong?

like image 925
Chris Avatar asked May 04 '11 17:05

Chris


Video Answer


1 Answers

I had a similar problem, and I didn't want to comment out addLink node because we want to implement our changes in local.xml only. Ended up writing a small module to do it:

app\etc\modules\Stackoverflow_Customerlinks.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Stackoverflow_Customerlinks>
            <active>true</active>
            <codePool>local</codePool>
        </Stackoverflow_Customerlinks>
    </modules>
</config>

app\code\local\Stackoverflow\Customerlinks\Block\Account\Navigation.php:

<?php

class Stackoverflow_Customerlinks_Block_Account_Navigation extends Mage_Customer_Block_Account_Navigation {

    public function removeLinkByName($name) {
        unset($this->_links[$name]);
    }

}

app\code\local\Stackoverflow\Customerlinks\etc\config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <global>
        <blocks>
            <customer>
                <rewrite>
                    <account_navigation>Stackoverflow_Customerlinks_Block_Account_Navigation</account_navigation>
                </rewrite>
            </customer>
        </blocks>
    </global>
</config>

After that, you can simply make the changes through local.xml:

<customer_account>
    <reference name="customer_account_navigation">
        <action method="removeLinkByName"><name>recurring_profiles</name></action>
        <action method="removeLinkByName"><name>billing_agreements</name></action>
    </reference>
</customer_account>

Have fun :)

like image 69
Daniel Sloof Avatar answered Oct 12 '22 11:10

Daniel Sloof