Spinto
@Spinto

Как вывести значение определенной опции товара Opencart на страницу категорий?

Всем привет! Столкнулся с задачей в Opencart.
Необходимо в маленькой карочке товара(та, которая отображается в категориях, поиске и проч)
вывести значение опции размера товара. У некоторых товаров есть несколько вариантов размеров,
у других - всего один. У остальных данной опции нет.
В случае, когда у товара всего одна опция размера - выводим размер, в случае, когда несколько - "Размеры на выбор", когда нет размера - не выводим ничего.
Через <?php var_dump($product['options']) ?>
я вывел все элементы массива с опциями.

array(2) { [0]=> array(7) { ["product_option_id"]=> string(4) "1504" ["product_option_value"]=> array(7) { [0]=> array(6) { ["product_option_value_id"]=> string(5) "17905" ["option_value_id"]=> string(3) "609" ["name"]=> string(10) "Белый" ["image"]=> NULL ["price"]=> bool(false) ["price_prefix"]=> string(1) "+" } [1]=> array(6) { ["product_option_value_id"]=> string(5) "17906" ["option_value_id"]=> string(3) "598" ["name"]=> string(14) "Бежевый" ["image"]=> NULL ["price"]=> bool(false) ["price_prefix"]=> string(1) "+" } [2]=> array(6) { ["product_option_value_id"]=> string(5) "17907" ["option_value_id"]=> string(3) "604" ["name"]=> string(12) "Лагуна" ["image"]=> NULL ["price"]=> bool(false) ["price_prefix"]=> string(1) "+" } [3]=> array(6) { ["product_option_value_id"]=> string(5) "17621" ["option_value_id"]=> string(3) "601" ["name"]=> string(20) "Фиолетовый" ["image"]=> NULL ["price"]=> bool(false) ["price_prefix"]=> string(1) "+" } [4]=> array(6) { ["product_option_value_id"]=> string(5) "17909" ["option_value_id"]=> string(3) "701" ["name"]=> string(14) "Розовый" ["image"]=> NULL ["price"]=> bool(false) ["price_prefix"]=> string(1) "+" } [5]=> array(6) { ["product_option_value_id"]=> string(5) "17910" ["option_value_id"]=> string(3) "700" ["name"]=> string(12) "Персик" ["image"]=> NULL ["price"]=> bool(false) ["price_prefix"]=> string(1) "+" } [6]=> array(6) { ["product_option_value_id"]=> string(5) "17911" ["option_value_id"]=> string(3) "702" ["name"]=> string(35) "Насыщенный розовый" ["image"]=> string(90) "inf-mebel.nichost.ru/image/cache/catalog/options/c..." ["price"]=> bool(false) ["price_prefix"]=> string(1) "+" } } ["option_id"]=> string(2) "20" ["name"]=> string(21) "Цвет обивки" ["type"]=> string(5) "image" ["value"]=> string(0) "" ["required"]=> string(1) "1" } [1]=> array(7) { ["product_option_id"]=> string(4) "1512" ["product_option_value"]=> array(3) { [0]=> array(6) { ["product_option_value_id"]=> string(5) "17786" ["option_value_id"]=> string(3) "680" ["name"]=> string(39) ""M 90/190" - 1045х2060х1045" ["image"]=> NULL ["price"]=> bool(false) ["price_prefix"]=> string(1) "+" } [1]=> array(6) { ["product_option_value_id"]=> string(5) "17787" ["option_value_id"]=> string(3) "681" ["name"]=> string(39) ""M 90/200" - 1045х2160х1045" ["image"]=> NULL ["price"]=> string(11) "3185.00 р." ["price_prefix"]=> string(1) "+" } [2]=> array(6) { ["product_option_value_id"]=> string(5) "17797" ["option_value_id"]=> string(3) "682" ["name"]=> string(36) ""M 120" - 1045х2160х1345" ["image"]=> NULL ["price"]=> string(12) "15720.00 р." ["price_prefix"]=> string(1) "+" } } ["option_id"]=> string(2) "17" ["name"]=> string(12) "Размер" ["type"]=> string(5) "radio" ["value"]=> string(0) "" ["required"]=> string(1) "1" } }

Как мне получить доступ именно к той части массива, которая отвечает за размер, чтобы сделать через if else выборку по количеству этих размеров и по каждому случаю сформировать результат, а также получить значение самого размера?
Спасибо!
  • Вопрос задан
  • 768 просмотров
Пригласить эксперта
Ответы на вопрос 1
zoozag
@zoozag
Opencart
$size_options = array(17, ...); // id опций которые отвечают за размер, в примере это 17
foreach ($product['options'] as $option) {
  if (in_array( $option['option_id'], $size_options)) { // работаем только с теми опциями, которые отвечают за размер.
    ... // тут проверяем нудные вам условия
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы