Bearbeiten Sie die Links zu Kundenkontoinformationen


7

In /customer/accountgibt es mehrere Links

  • Benutzerkonto Übersicht
  • Kontoinformationen
  • Adressbuch
  • usw

Ich brauche (soweit ich das beurteilen kann) nicht:

  • wiederkehrende Profile
  • meine Anwendungen
  • meine herunterladbaren Produkte (oder ich muss dies benötigen, wenn ich ein Geschenkkartenmodul verwende, ich weiß es noch nicht)

Wo kann ich diese ausschalten? Es sollte ein Update-Beweis sein ;-)

Antworten:


10

Ein alternativer Ansatz zu Amits besteht local.xmldarin, den übergeordneten Block customer_account_navigation vollständig zu ersetzen und dann nur die Links hinzuzufügen, die Sie anzeigen möchten. Verwenden Sie das Folgende und löschen Sie dann die Zeilen, die Sie nicht möchten. Bitte beachten Sie, dass Sie, wenn in Zukunft weitere Links hinzugefügt werden müssen, diese in Ihre kopieren müssen, um angezeigt local.xmlzu werden. Als zusätzlichen Vorteil können Sie die Artikel einfach nachbestellen.

<?xml version="1.0"?>
<layout version="0.1.0">
    <customer_account>
        <block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/navigation.phtml">
                <action method="addLink" translate="label" module="customer"><name>account</name><path>customer/account/</path><label>Account Dashboard</label></action>
                <action method="addLink" translate="label" module="customer"><name>account_edit</name><path>customer/account/edit/</path><label>Account Information</label></action>
                <action method="addLink" translate="label" module="customer"><name>address_book</name><path>customer/address/</path><label>Address Book</label></action>                    
                <action method="addLink" translate="label" module="downloadable"><name>downloadable_products</name><path>downloadable/customer/products</path><label>My Downloadable Products</label></action>                    
                <action method="addLink" translate="label" module="newsletter"><name>newsletter</name><path>newsletter/manage/</path><label>Newsletter Subscriptions</label></action>                    
                <action method="addLink" translate="label" module="review"><name>reviews</name><path>review/customer</path><label>My Product Reviews</label></action>                    
                <action method="addLink" translate="label" module="sales"><name>orders</name><path>sales/order/history/</path><label>My Orders</label></action>
                <action method="addLink" translate="label" module="tag"><name>tags</name><path>tag/customer/</path><label>My Tags</label></action>
                <action method="addLink" translate="label" module="wishlist" ifconfig="wishlist/general/active"><name>wishlist</name><path>wishlist/</path><label>My Wishlist</label></action>
                <action method="addLink" translate="label" module="oauth">
                    <name>OAuth Customer Tokens</name>
                    <path>oauth/customer_token</path>
                    <label>My Applications</label>
                </action>                    
        </block>
    </customer_account>
</layout>

Einfach zu bedienen und erfordert keine Installation. Gute Arbeit. Upvoted
Aakash

4

Tun Sie dies einfach in Ihrer local.xml

<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>
            <action method="removeLinkByName"><name>reviews</name></action>
            <action method="removeLinkByName"><name>downloadable_products</name></action>
            <action method="removeLinkByName"><name>OAuth Customer Tokens</name></action>

            <action method="removeLinkByName"><name>account</name></action>
            <action method="removeLinkByName"><name>account_edit</name></action>
            <action method="removeLinkByName"><name>address_book</name></action>
            <action method="removeLinkByName"><name>orders</name></action>
            <action method="removeLinkByName"><name>tags</name></action>
            <action method="removeLinkByName"><name>wishlist</name></action>
            <action method="removeLinkByName"><name>newsletter</name></action>

    </reference>
</customer_account>

Löschen Sie die Links, die Sie behalten möchten. :-)


Das hat bei mir nicht funktioniert. Resultierte einen Fehler.
Webninja

3

Magento ist Link auf der customer account leftSeite mit der addLinkFunktion Mage_Customer_Block_Account_Navigationhier hinzufügen

public function addLink($name, $path, $label, $urlParams=array())
{
    $this->_links[$name] = new Varien_Object(array(
        'name' => $name,
        'path' => $path,
        'label' => $label,
        'url' => $this->getUrl($path, $urlParams),
    ));
    return $this;
}

Magento fügt diesen Link über diesen XML-Code hinzu

<action method="addLink" translate="label" module="customer"><name>account</name>

<path>customer/account/</path><label>Account Dashboard</label></action>

Einfachster Prozess

dort lot of layout xmlDatei wietag.xml,outh.xml,customer.xml,checkout.xml

sind, was dort enthalten ist. link on left navigation using addLink function Wenn Ihr Layout-Ordner app/design/frontend/your package/your template/layout/ nicht diese Dateien hatte, aber es links are availablebei Ihnen account left navigationdann nach Magento-Fallback-Logik müssen diese von app/design/frontend/base/default/layout/nach kopieren app/design/frontend/your package/your template/layout/.

Dann kommentieren Sie diesen Code diese Datei.

um Ihren layout xmls fileSuchcode <action method="addLink"aufzurufen und diesen Code zu entfernen

Richtiger Prozess Mit local.xml

Erstellen Sie eine Methode zum Mage_Customer_Block_Account_NavigationEntfernen des Links mithilfe des folgenden Codes

public function removeLink($removename)
{
    unset($this->_links[$removename]);
    return $this;
}

Sie müssen hierfür eine Erweiterung erstellen

Schritt 1: Schreiben Sie die Klasse Mage_Customer_Block_Account_Navigation mit class neuAmit_RemoveNavigation_Block_Customer_Account_Navigation

Erstellen Sie eine Datei Navigation.php unter app \ code \ local \ Amit \ RemoveNavigation \ Block \ Customer \ Account

<?php
class Amit_RemoveNavigation_Block_Customer_Account_Navigation extends Mage_Customer_Block_Account_Navigation
{
    public function removeLink($removename)
    {
        unset($this->_links[$removename]);
        return $this;
    }
}

Schritt 2: Erstellen config.xmlbei app\code\local\Amit\RemoveNavigation\etcund

<?xml version="1.0"?>
<config>
  <modules>
    <Amit_RemoveNavigation>
      <version>1.0.0</version>
    </Amit_RemoveNavigation>
  </modules>
  <global>
    <helpers>
      <removenavigation>
        <class>Amit_RemoveNavigation_Helper</class>
      </removenavigation>
    </helpers>
    <blocks>
      <removenavigation>
        <class>Amit_RemoveNavigation_Block</class>
      </removenavigation>
            <customer>
                <rewrite>
                    <account_navigation>Amit_RemoveNavigation_Block_Customer_Account_Navigation</account_navigation>
                </rewrite>
            </customer>
    </blocks>
  </global>
</config> 

Schritt 3: Erstellen Sie eine Hilfsklasse für dieses Modul Data.phpunter app\code\local\Amit\RemoveNavigation\Helper

<?php
class Amit_RemoveNavigation_Helper_Data extends Mage_Core_Helper_Abstract
{
}

Schritt 4: Erstellen Sie die Modulsteuerdatei Amit_RemoveNavigation.xmlunterapp/etc/modules/

<?xml version="1.0"?>
<config>
  <modules>
    <Amit_RemoveNavigation>
      <active>true</active>
      <codePool>local</codePool>
      <version>1.0.0</version>
    </Amit_RemoveNavigation>
  </modules>
</config>

Sie sehen diesen Code unter outh.xml

  <reference name="customer_account_navigation">
        <action method="addLink" translate="label" module="oauth">
            <name>OAuth Customer Tokens</name>
            <path>oauth/customer_token</path>
            <label>My Applications</label>
        </action>
    </reference>

Das ist auf meinem Anwendungslink auf der linken Navigation hinzufügen

so erstellen local.xmlbeiapp/design/frontend/your package/your template/layout/

Fügen Sie diesen Code hinzu

<?xml version="1.0"?>
<layout version="0.1.0">
       <reference name="customer_account_navigation">
            <action method="removeLink" translate="label" module="oauth">
                <name>OAuth Customer Tokens</name> <!-- remove by name -->
            </action>
        </reference>
</layout>

Sie sehen den folgenden Code unter downloadable.xml

<customer_account>
        <reference name="customer_account_navigation">
            <action method="addLink" translate="label" module="downloadable"><name>downloadable_products</name><path>downloadable/customer/products</path><label>My Downloadable Products</label></action>
        </reference>
    </customer_account>

Wie gesagt, ich habe hinzugefügt, entferne den Link per Tag, <name>downloadable_products</name>also füge den local.xml-Code hinzu, wie ich aussehe

<?xml version="1.0"?>
<layout version="0.1.0">
       <reference name="customer_account_navigation">
            <action method="removeLink" translate="label" module="oauth">
                <name>OAuth Customer Tokens</name> <!-- remove by name -->
            </action>
       <action method="removeLink" translate="label" module="oauth">
                <name>downloadable_products</name> <!-- remove by name -->
            </action>

    </reference>
</layout>

In Magento fügen Sie dies durch hinzu

diese Tag gemäß Ihrer Logik

<name>recurring_profiles</name>   
<name>billing_agreements</name>
<name>reviews</name>
<name>downloadable_products</name>
<name>OAuth Customer Tokens</name>

<name>account</name>
<name>account_edit</name>
<name>address_book</name>
<name>orders</name>
<name>tags</name>
<name>wishlist</name>
<name>newsletter</name>

Wow, das ist ein großer Unterschied zur ersten Antwort ... was macht das besser (oder schlechter?)
carlo

calro, diese Funktion removeLinkByName ist nicht in msgento 1.9
Amit Bera

ah ok, klar ... ich werde deine Methode ausprobieren ... ist es sicher zu tun?
Carlo

siehe Update
Amit Bera

0

In CE 1.9.3 können Sie Folgendes tun:

1. Entfernen Sie den Kontonavigationsblock vollständig:

<!--Unset the whole block then add back later-->
<action method="unsetChild">
    <name>customer_account_navigation</name>
</action>
<block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/navigation.phtml">
    <action method="addLink" translate="label" module="customer">
        <name>account</name>
        <path>customer/account/</path>
        <label>Account Dashboard</label>
    </action>
    <action method="addLink" translate="label" module="customer">
        <name>account_edit</name>
        <path>customer/account/edit/</path>
        <label>Account Information</label>
    </action>
    <action method="addLink" translate="label" module="customer">
        <name>address_book</name>
        <path>customer/address/</path>
        <label>Address Book</label>
    </action>
    <action method="addLink" translate="label" module="sales">
        <name>orders</name>
        <path>sales/order/history/</path>
        <label>My Orders</label>
    </action>
    <action method="addLink" translate="label" module="wishlist" ifconfig="wishlist/general/active">
        <name>wishlist</name>
        <path>wishlist/</path>
        <label>My Favorite</label>
    </action>
    <action method="addLink" translate="label" module="newsletter">
        <name>newsletter</name>
        <path>newsletter/manage/</path>
        <label>Newsletter Subscriptions</label>
    </action>
</block>

Wenn Sie den Navigationsblock für das Kundenkonto erneut hinzufügen und dann die erforderlichen Links hinzufügen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.