我需要向未登录且不属于客户群的用户隐藏“检出”和“我的购物车”顶部链接。我在源代码中查看,但似乎所有链接都是从XML中提取的。如果有人知道如何处理这个问题,我将非常感激。
答案 0 :(得分:0)
这应该从未登录用户的顶部链接中删除结帐和购物车链接:
<customer_logged_out>
<reference name="top.links">
<remove name="checkout_cart_link" />
</reference>
</customer_logged_out>
我不知道如何为不属于所选客户群的客户做同样的事情。
答案 1 :(得分:0)
我有类似的问题。虽然如果客户登录或退出,您可以通过XML显示和隐藏顶部链接,但我可以找到一个解决方案来显示或隐藏基于客户群的某些顶级链接。
继承人我做了什么
将base / template / page / template / links.phtml复制到我的主题目录
有条件删除顶部链接,如果他们有“我的购物车”或“结帐”,并且客户群组是ID 2(或该群组的任何ID)
继承人我的links.phtml文件是如何结束的
<?php
$session = Mage::getSingleton('customer/session'); // var $session Mage_Customer_Model_Session
$customer = $session->getCustomer(); // var $customer Mage_Customer_Model_Customer
$userinfo = $customer->_origData; // fetch users info
// get user's customer group id number
$customer_group = $userinfo['group_id'];
?>
<?php $_links = $this->getLinks(); ?>
<?php if(count($_links)>0): ?>
<ul class="links"<?php if($this->getName()): ?> id="<?php echo $this->getName() ?>"<?php endif;?>>
<?php foreach($_links as $_link): ?>
<?php if ($_link instanceof Mage_Core_Block_Abstract):?>
<?php echo $_link->toHtml() ?>
<?php // check to see if customer group id 2 is not in list to show default top links
elseif ($customer_group != 2): ?>
<li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li>
<?php // check to see if my cart or checkout are in links and remove from top links for customer group id 2
elseif ($_link->getTitle() != 'My Cart' && $_link->getTitle() != 'Checkout'): ?>
<li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li>
<?php endif;?>
<?php endforeach; ?>
</ul>
<?php endif; ?>