Magento - How to add/remove links on my account navigation?

后端 未结 11 1194
逝去的感伤
逝去的感伤 2020-12-01 03:45

I am trying to remove links on my account navigation. I looked at the customer/account/navigation.phtml template. The template grabs links by $this->getLinks(). How do I edi

相关标签:
11条回答
  • 2020-12-01 04:15

    The easiest way to remove any link from the My Account panel in Magento is to first copy:

    app/design/frontend/base/default/template/customer/account/navigation.phtml

    to

    app/design/frontend/enterprise/YOURSITE/template/customer/account/navigation.phtml

    Open the file and fine this line, it should be around line 34:

    <?php $_index = 1; ?>
    

    Right below it add this:

     <?php $_count = count($_links); /* Add or Remove Account Left Navigation Links Here -*/
            unset($_links['tags']); /* My Tags */
            unset($_links['invitations']); /* My Invitations */
            unset($_links['enterprise_customerbalance']); /* Store Credit */
            unset($_links['OAuth Customer Tokens']); /* My Applications */
            unset($_links['enterprise_reward']); /* Reward Points */
            unset($_links['giftregistry']); /* Gift Registry */
            unset($_links['downloadable_products']); /* My Downloadable Products */
            unset($_links['recurring_profiles']); /* Recurring Profiles */
            unset($_links['billing_agreements']); /* Billing Agreements */
            unset($_links['enterprise_giftcardaccount']); /* Gift Card Link */
            ?> 
    

    Just remove any of the links here that you DO want to appear.

    0 讨论(0)
  • 2020-12-01 04:15

    Technically the answer of zlovelady is preferable, but as I had only to remove items from the navigation, the approach of unsetting the not-needed navigation items in the template was the fastest/easiest way for me:

    Just duplicate

    app/design/frontend/base/default/template/customer/account/navigation
    

    to

    app/design/frontend/YOUR_THEME/default/template/customer/account/navigation
    

    and unset the unneeded navigation items before the get rendered, e.g.:

    <?php $_links = $this->getLinks(); ?>    
    <?php 
        unset($_links['recurring_profiles']);
    ?>
    
    0 讨论(0)
  • 2020-12-01 04:22

    If you want to selectively remove links without having to copy/edit entire xml files, a nice solution can be found in this post in the magento forums

    In this solution, you override the Mage_Customer_Block_Account_Navigation block with a local version, that adds a removeLinkByName method, which you then use in your layout.xml files, like so:

    <?xml version="1.0"?>
        <layout version="0.1.0">
    
        <customer_account>
            <reference name="customer_account_navigation" >
                    <!-- remove the link using your custom method -->
                    <action method="removeLinkByName">
                       <name>recurring_profiles</name>
                    </action>
                    <action method="removeLinkByName">
                       <name>billing_agreements</name>
                    </action>
            </reference>
        </customer_account>
    </layout>
    
    0 讨论(0)
  • 2020-12-01 04:25

    Also, you need to do something like this in config.xml if you are developing a customized module

        <frontend>
            <layout>
                <updates>
                    <hpcustomer>
                        <file>hpcustomer.xml</file>
                    </hpcustomer>
                </updates>
            </layout>
        </frontend>
    
    0 讨论(0)
  • 2020-12-01 04:32

    Most of the above work, but for me, this was the easiest.

    Install the plugin, log out, log in, system, advanced, front end links manager, check and uncheck the options you want to show. It also works on any of the front end navigation's on your site.

    http://www.magentocommerce.com/magento-connect/frontend-links-manager.html

    0 讨论(0)
提交回复
热议问题