Доступ к "Дополнительным параметрам". Как?
Здравствуйте!
Каждому товару в настройках можно добавить произвольные "Дополнительные параметры". На странице товара доступ к этим параметрам реализуется как: $product.params.название_параметра.
То есть, если в файле product.cart.html написать:
{if $product.params.local_delivery_cost}
<div>Доставка курьером по Москве - {$product.params.local_delivery_cost} руб.</div>
{else}
<div>...</div>
{/if}
Такая конструкция работает.
Было решено написать простой плагин, чтобы при обновлении темы не лезть заново в файл product.cart.html
В основном классе плагина shopDeliverycostPlugin я написал следующей код:
class shopDeliverycostPlugin extends shopPlugin {
public function frontendProduct($product){
$data = array( 'cart' => '<div>Доставка курьером по Москве - {$product.params.local_delivery_cost} руб.</div>', );
return $data;
}
}
Понятное дело, что это не работает, выводится строка {$product.params.local_delivery_cost} целиком.
Подскажите, как обратиться к дополнительным параметрам в основном классе плагина?
Заранее спасибо
7 ответов
Не пользуйтесь кодом SMARTY в PHP файлах (во всяком случае, не так в лоб - без waView). Должно быть, хотя бы так:
Спасибо за решение
Всё работает
А подскажите, как можно вызвать $product['params']['local_delivery_cost'] в корзине товара? Очень было бы здорово в способах доставки выводить не фиксированную стоимость, а local_delivery_cost
И суммировать ее с ценой продукта
Понимаю, что вопрос не совсем корректный.
В общем, идея такая, сделать в стандартном способе доставки от вебасиста flatrate (фиксированная стоимость), чтобы в корзине выводилось не число, заданное в настройках, а $product['params']['local_delivery_cost']
А если в корзине товаров несколько?
Тогда берется большая из нескольких. Например, у одного товара доставка 200, а у второго 300, у третьего бесплатная. В итоге ставим доставку 300.
Показать можно, но в заказе все равно будет стоимость из способа доставки, а не та, которую вы проставите
Нет, задача стоит не просто показать, а реализовать, чтобы это работало полноценно