我正在使用Magento CE,我想知道是否可以隐藏价格,并仅为注册用户显示它们,我应该做什么?
提前感谢。
答案 0 :(得分:2)
如果您使用标准方法显示价格,您可以使用观察员执行此操作。
在模块config.xml中定义观察者
<catalog_product_collection_load_after>
<observers>
<hide_price_list_collection>
<type>singleton</type>
<class>your_module/observer</class>
<method>listCollection</method>
</hide_price_list_collection>
</observers>
</catalog_product_collection_load_after>
<catalog_product_load_after>
<observers>
<hide_price_product>
<type>singleton</type>
<class>your_module/observer</class>
<method>productLoadAfter</method>
</hide_price_product>
</observers>
</catalog_product_load_after>
在observer类中创建方法:
public function listCollection(Varien_Event_Observer $observer)
{
if (!Mage::helper('customer')->isLoggedIn()) {
$collection = $observer->getEvent()->getCollection();
foreach ($collection->getItems() as $_item ) {
$_item->setCanShowPrice(false);
}
}
return $this;
}
public function productLoadAfter(Varien_Event_Observer $observer)
{
if (!Mage::helper('customer')->isLoggedIn()) {
$product = $observer->getEvent()->getProduct();
$product->setCanShowPrice(false);
}
return $this;
}
答案 1 :(得分:0)
您需要更新list.phtml的类别页面和view.phtml的产品页面:
<?php
if ($this->helper('customer')->isLoggedIn() ) {
$showprice = "style=display:block";
} else {
$showprice = "style=display:none";
}?>
<div id="your-price-container" <?php echo $showprice;?> > </div";