Не работает сниппет в чанке товара
Необходимо вывести завышенную стоимость товара(только визуальная функция). В карточке товара выводится нормально, а в если вызвать в чанке продукта, для отображения для всех товаров в каталоге, то ошибка error 500
В карточке товара вывожу завышенную цену так:
Вывод:
В карточке товара вывожу завышенную цену так:
Вывод:
[[FakePrice? &id=`[[*id]]`]]
Чанк:[[+fake]]
Сниппет:<?php
//получаем параметры
$id = $modx->resource->get('id');
$product = $modx->getObject('msProduct', $id);
$price = $product->get('price');
$option = $modx->getObject('msProduct', 655);
$fake_price = $option->get('fake_price.value');
$chank = $modx->getOption('tpl', $scriptProperties, 'tpl.FakePrice');
//подсчитываем
if($fake_price != 0){
$fake = $price + $fake_price;
}
//устанавливаем плейсхолдеры
$modx->setPlaceholder('fake', $fake);
//возвращаем чанк с установленными плейсхолдерами
$output = $modx->getChunk($chank);
//показываем результат
echo $output;
Комментарии: 8
Если и в чанке вот такой вызов
[[FakePrice? &id=`[[*id]]`]]
то в чанке нет [[*id]], там надо так вызывать[[FakePrice? &id=`[[+id]]`]]
Вызывал так,
error 500
отдает
$id = $modx->resource->get('id'); удали.
Помогло, спасибо бро)
надеюсь ты понял почему?
пытался вызвать id текущей страницы в сниппете а через параметр передавал id товара, поэтому на карточке товара работало так как id совпадал
Хорошо.
if($fake_price != 0)
Вот это лишнее, или нужно $modx->setPlaceholder('fake', $fake);
убрать под IF
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.