我希望能够为每个商店的前端设置产品属性的可见性。假设我们有属性“尺寸”,我想在商店 A 的产品详细信息页面上显示这个,而不是在商店 B 上。
在管理目录 > 属性 > 管理属性中,我可以将“在前端的产品视图页面上可见”设置为是或否。目前是“不”。此设置适用于所有商店。我想仅为一个商店(或模板)将其设置为“是”。
我怎样才能得到这个工作?
我希望能够为每个商店的前端设置产品属性的可见性。假设我们有属性“尺寸”,我想在商店 A 的产品详细信息页面上显示这个,而不是在商店 B 上。
在管理目录 > 属性 > 管理属性中,我可以将“在前端的产品视图页面上可见”设置为是或否。目前是“不”。此设置适用于所有商店。我想仅为一个商店(或模板)将其设置为“是”。
我怎样才能得到这个工作?
首先,您必须使用以下代码在前端获取当前商店信息
Mage::app()->getStore()->getCode();
或者
Mage::app()->getStore()->getName();
或者
Mage::app()->getStore()->getStoreId();
或者
Mage::app()->getStore()->getWebsiteId();
获取当前商店信息后,您可以手动创建任何条件来显示您的特定属性。示例:假设我创建了一个名为“类型”的属性,并且它显示在我的两个商店的产品详细信息页面的“附加信息”部分。我已经创建了一个条件来仅在我的网站的一个商店中显示此特定属性,为此我修改了 template/catalog/product/view/additional.phtml 页面并添加了以下代码
<?php foreach ($_additional as $_data):
$store_name = Mage::app()->getStore()->getCode();
if ( ($_data['code'] != "type") || ($store_name != "english_store_view_website_2")) { ?>
<tr>
<th class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></th>
<td class="data"><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
</tr>
<?php }
endforeach; ?>