マジェントの新人です
My Orders
顧客アカウント ダッシュボードのナビゲーションでリンクを削除する場所を知っている人はいますか?
わかったガイズ
これは非常にトリッキーで難しいです
以下のコードにコメントしたいだけです
sales.xmlで
<customer_account>
<!-- Mage_Sales -->
<reference name="customer_account_navigation">
<action method="addLink" translate="label" module="sales"><name>orders</name><path>sales/order/history/</path><label>My Orders</label></action>
</reference>
</customer_account>
これは具体的なリンク用だと思いますが、顧客ダッシュボードへのリンクを削除したい場合は、新しいアクションをブロック Mage_Customer_Block_Account_Navigation に追加する小さなモジュールを作成できます
ここでの解決策:
拡張機能のカスタム ブロック:
class CA_Removecustomerlinks_Block_Account_Navigation extends Mage_Customer_Block_Account_Navigation
{
/**
* Removes link by name
*
* @param string $name
* @return Mage_Page_Block_Template_Links
* @author @davidselo
* @company @compraAmiga
*/
public function removeLinkByName($name)
{
foreach ($this->_links as $k => $v) {
if ($v->getName() == $name) {
unset($this->_links[$k]);
}
}
return $this;
}
}
モジュールの構成
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<CA_Removecustomerlinks>
<version>0.1.0</version>
</CA_Removecustomerlinks>
</modules>
<global>
<blocks>
<customer>
<rewrite>
<account_navigation>CA_Removecustomerlinks_Block_Account_Navigation</account_navigation>
</rewrite>
</customer>
</blocks>
</global>
</config>
これで、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>
<action method="removeLinkByName"><name>downloadable_products</name></action>
</reference>
</customer_account>