【问题标题】:Different top links for different customer groups不同客户群的不同顶部链接
【发布时间】:2015-01-31 21:56:35
【问题描述】:

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

【问题讨论】:

    标签: php magento


    【解决方案1】:

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

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

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

    【讨论】:

    • 你不应该编辑核心文件,最好将它添加到你主题的local.xml中
    • 谢谢,已添加到 local.xml
    【解决方案2】:

    我遇到了类似的问题。尽管如果客户登录或注销,您可以通过 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; ?>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多