Фатальная ошибка: вызовы к функции члена GetSource () на unobject в public_html/app/code/core/mage/catalog/model/product.php в строке 1390
-
16-10-2019 - |
Вопрос
Я пытаюсь использовать пользовательский атрибут Yes/No для показа/скрыть элемент в файле Price.phtml, но всякий раз, когда я добавляю условие, я продолжаю получать эту ошибку, и я не могу понять, почему, поскольку я работал ранее.
Вот что я добавил из строки 359 цены.
<?php if ($_taxHelper->displayBothPrices()): ?>
<p class="special-price">
<span class="price-label"><?php echo $_specialPriceStoreLabel ?></span>
<span class="price-excluding-tax">
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
<?php echo $_coreHelper->currency($_finalPrice, true, false) ?>
</span>
</span>
<span class="price-including-tax">
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
<?php echo $_coreHelper->currency($_finalPriceInclTax, true, false) ?>
</span>
</span>
</p>
<?php else: ?>
<?php if ($_product->getAttributeText($_specialPriceStoreLabel['hide_special_price']) == "Yes"): ?>
<span class="del" style="display: none;"><?php echo $this->__('RRP') ?> <?php echo $_coreHelper->currency($_regularPrice, true, false) ?><?php $regularprice = $_regularPrice; ?></span>
<?php $price_diff = $regularprice-$finalPrice;
$discountPercent = ($price_diff/$regularprice)*100;
$discountPercent = ceil($discountPercent); ?>
<span class="discount" style="display: none;">(-<?php echo $discountPercent; ?>%)</span>
<?php else: ?>
<span class="del"><?php echo $this->__('RRP') ?> <?php echo $_coreHelper->currency($_regularPrice, true, false) ?><?php $regularprice = $_regularPrice; ?></span>
<?php $price_diff = $regularprice-$finalPrice;
$discountPercent = ($price_diff/$regularprice)*100;
$discountPercent = ceil($discountPercent); ?>
<span class="discount">(-<?php echo $discountPercent; ?>%)</span>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
По сути, я хотел бы достичь, добавив новый атрибут и добавив его в группу цен, которую я могу установить, отображать специальную цену на фронте или нет для определенных продуктов.
Я продолжаю получать эту ошибку:
function getSource() on a non-object in /*****/*****/public_html/app/code/core/Mage/Catalog/Model/Product.php on line 1390
Кто -нибудь может увидеть, что я сделал неправильно?
Решение
Эта линия неверна, когда вызывает проблему:
if($_product->getAttributeText($_specialPriceStoreLabel['hide_special_price']) == "Yes")
Используйте как это:
if($_product->getHideSpecialPrice())
или же
if($_product->getData('hide_special_price'))
И ваш атрибут hide_special_price
должно быть "Используется в списке продуктов" а также «Видимо на странице просмотра продукта на переднем конце» (См. Страницу редактирования атрибутов).