Magento 1.9 - 在 "Out of Stock" 标签旁边回显产品库存提醒
Magento 1.9 - echo Product Stock Alert next to "Out of Stock" Label
如标题所示,我正在尝试在 "Out of Stock" 标签旁边显示 "Sign up to be notified when this product is back in stock" link。
所以它应该看起来像:
我正在浏览所有模板,在 template/catalog/product/view.phtml
中有这个代码片段:
<?php echo $this->getChildHtml('alert_urls') ?>
,它来自:
template/productalert/product/view.phtml
(仅包含回显实际 link 的代码。)我想在此模板中执行的操作类似于以下内容,其中我有 INSERT STOCK ALERT LINK HERE
:
<?php $_product = $this->getProduct() ?>
<?php if ($this->displayProductStockStatus()): ?>
<?php if ($_product->isAvailable()): ?>
<p class="availability in-stock">
<span><?php echo $this->__('In stock') ?></span>
</p>
<?php else: ?>
<p class="availability out-of-stock">
<span><?php echo $this->__('Out of stock') ?></span>
<!-- ******* INSERT STOCK ALERT LINK HERE ******* -->
</p>
<?php endif; ?>
<?php endif; ?>
<?php echo $this->getChildHtml('product_type_data_extra') ?>
<?php echo $this->getPriceHtml($_product) ?>
我已禁用价格提醒,因为这不是必需的。因此,唯一的警报将是注册股票通知。
我已经尝试了很多东西,但我认为可能是 $this
变量的范围阻止了我访问它。非常欢迎您的意见或建议!
好的,所以我刚刚看到这个页面:http://forum.azmagento.com/how-to/product-alert-notify-html-in-product-list-view-55751.html,它提供了有关如何在核心文件中编辑 getSaveURL()
函数的说明(yikes!) /app/code/core/Mage/ProductAlert/Helper/Data.php
使用以下代码:
public function getSaveUrl($type, $product = null)
{
if (!empty($product))
{
$product_id = $product->getId();
}
else
{
$product_id = $this->getProduct()->getId();
}
return $this->_getUrl('productalert/add/' . $type, array(
'product_id' => $product_id,
Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->getEncodedUrl()
));
}
然后在您的 phtml 中输出 link: <a href="<?php echo Mage::helper('productalert')->getSaveUrl('stock', $_product); ?>"> Notify Me When Available</a>
。
现在效果很好,但我有点犹豫要不要选择涉及修改核心文件的解决方案。有什么方法可以在不覆盖任何核心文件的情况下使用上面的代码片段吗?
如标题所示,我正在尝试在 "Out of Stock" 标签旁边显示 "Sign up to be notified when this product is back in stock" link。
所以它应该看起来像:
我正在浏览所有模板,在 template/catalog/product/view.phtml
中有这个代码片段:<?php echo $this->getChildHtml('alert_urls') ?>
,它来自:template/productalert/product/view.phtml
(仅包含回显实际 link 的代码。)我想在此模板中执行的操作类似于以下内容,其中我有 INSERT STOCK ALERT LINK HERE
:
<?php $_product = $this->getProduct() ?>
<?php if ($this->displayProductStockStatus()): ?>
<?php if ($_product->isAvailable()): ?>
<p class="availability in-stock">
<span><?php echo $this->__('In stock') ?></span>
</p>
<?php else: ?>
<p class="availability out-of-stock">
<span><?php echo $this->__('Out of stock') ?></span>
<!-- ******* INSERT STOCK ALERT LINK HERE ******* -->
</p>
<?php endif; ?>
<?php endif; ?>
<?php echo $this->getChildHtml('product_type_data_extra') ?>
<?php echo $this->getPriceHtml($_product) ?>
我已禁用价格提醒,因为这不是必需的。因此,唯一的警报将是注册股票通知。
我已经尝试了很多东西,但我认为可能是 $this
变量的范围阻止了我访问它。非常欢迎您的意见或建议!
好的,所以我刚刚看到这个页面:http://forum.azmagento.com/how-to/product-alert-notify-html-in-product-list-view-55751.html,它提供了有关如何在核心文件中编辑 getSaveURL()
函数的说明(yikes!) /app/code/core/Mage/ProductAlert/Helper/Data.php
使用以下代码:
public function getSaveUrl($type, $product = null)
{
if (!empty($product))
{
$product_id = $product->getId();
}
else
{
$product_id = $this->getProduct()->getId();
}
return $this->_getUrl('productalert/add/' . $type, array(
'product_id' => $product_id,
Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->getEncodedUrl()
));
}
然后在您的 phtml 中输出 link: <a href="<?php echo Mage::helper('productalert')->getSaveUrl('stock', $_product); ?>"> Notify Me When Available</a>
。
现在效果很好,但我有点犹豫要不要选择涉及修改核心文件的解决方案。有什么方法可以在不覆盖任何核心文件的情况下使用上面的代码片段吗?