Всем привет. Во 2 опенкарте в товарах есть переключатель "необходима доставка". Когда выбирано НЕТ и этот товар в корзине - способы доставки не показываются (вариант 1 - пусто). Если в корзине товары с доставкой и без доставки - мы видим способы доставки - все стандартно (вариант 2). Вопрос: как вместо пусто (вариант 1) вывести определенный текст, а в варианте 2 вывести текст + стандартные варианты доставки. Есть у кого идеи?
Привет... я бы сделал так: в system\library\cart.php есть прекрасный метод проверки "необходимости доставки": Код: public function hasShipping() { $shipping = false; foreach ($this->getProducts() as $product) { if ($product['shipping']) { $shipping = true; break; } } return $shipping; } тоесть для корзины или страницы оформления можешь добавить блок с проверкой, начиная с контроллера: Код: $data['is_shipping'] = $this->cart->hasShipping() ? 'block' : 'none'; а в самой TPL-ке добавляешь блок со стилем display и переменную $is_shipping, вот как то так: <div class="mini_description" style="display:<?php echo $is_shipping; ?>;"> Многабукафф... </div>
Васо, опробовал метод. В общем он выводит текст для товара, у которого есть доставка, а мне нужно выводить для товара, у которого нет доставки, то есть наоборот. Как запросить "наоборот"?) Я перегуглил варианты, но, скажем, вариант со сменой вывода block и none не подходит, тк мне нужно отталкиваться именно от товара без доставки. То текущем варианте завишу от того, добавлен ли товар с доставкой в корзину, а надо наоборот. PS: я попробовал false и true в library, но это кощунство))
Тогда можно вот так метод новый добавить: Код: public function noShipping() { $no_ship = false; foreach ($this->getProducts() as $product) { if (!$product['shipping']) { $no_ship = true; break; } } return $no_ship; } ну а сам контроллер: $data['no_shipping'] = $this->cart->noShipping() ? 'block' : 'none'; //ЕСЛИ есть товар без доставки ТО покажет блок ИНАЧЕ не покажет ничего