0

我需要对未登录且不属于客户组的用户隐藏“结帐”和“我的购物车”顶部链接。我正在查看源代码,但似乎所有链接都是从 XML 中提取的。如果有人知道我可以如何解决这个问题,我将不胜感激。

4

2 回答 2

0

我有一个类似的问题。尽管如果客户登录或注销,您可以通过 XML 显示和隐藏顶部链接,但我找不到基于客户组显示或隐藏某些顶部链接的解决方案。

这是我所做的

  1. 将 base/template/page/template/links.phtml 复制到我的主题目录中

  2. 如果他们有“我的购物车”或“结帐”并且客户组的 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; ?>

于 2015-01-31T13:56:35.963 回答
0

这应该从未登录用户的顶部链接中删除结帐和购物车链接:

<customer_logged_out>
    <reference name="top.links">
        <remove name="checkout_cart_link" />
    </reference>
</customer_logged_out>

我不知道如何为不属于选定客户组的客户做同样的事情。

于 2013-05-07T14:35:12.187 回答