Как сделать обязательное поле размера если у товара есть размер

Всем доброе время суток. Подскажите как сделать обязательным при добавлении в корзину размера, цены в карточке товара?

не могу написать сниппет:
<?php
switch ($modx->event->name) {
    // События на добавление товара
    case 'msOnBeforeAddToCart': 
        // тут проверка на выбрана ли опция размера?
	// как сделать проверку на наличие $options у товара?
        print_r($options); // тут получаю id товара
	// а как получить информацию из карточки товара?
	// тут просто вывожу сообщение
        if (empty($options)) {
            $modx->event->output('Необходимо выбрать размер');
        }
        
        break; // получает $product, $count, $options и $cart
}
Михаил мне подсказал Вот таблица, которая связывает товар и опцию.
Проверяй id ресурса и ключ опции. Если есть, тогда проверяй на наличии в options

но я не знаю как взять ключ опции. id ресурса я быстро вывел

у меня не хватает знаний, что бы самому сделать если честно. Помогите мне пожалуйста
Саша Иващенко
20 февраля 2018, 16:11
modx.pro
944
0

Комментарии: 3

Саша Иващенко
20 февраля 2018, 20:24
0
так получить размеры.
$product->get('size');
а как написать если есть размеры то выдавать ответ
$modx->event->output('Необходимо выбрать размер');
    Саша Иващенко
    21 февраля 2018, 00:20
    0
    <?php
    switch ($modx->event->name) {
        // События на добавление товара
        case 'msOnBeforeAddToCart': 
            // массив размеров товара
            $sizename = $options['size'];  // беру имя размера, на который делается заказ
            $arr = $product->get('size'); // беру массив размеров товара
            
            if (empty($arr)) {
            }
            elseif (in_array($sizename, $arr)){
            }
            else {
                $modx->event->output('Необходимо выбрать размер');
            }
    
            break;  //получает $product, $count, $options и $cart
    }
    подскажите как ifelse изменить на более корректный вариант?
      Максим
      21 февраля 2018, 13:33
      0
      Может так:
      if (empty($arr) || !in_array($sizename, $arr)) {
      	$modx->event->output('Необходимо выбрать размер');
      }
      Если пустой массив или в массиве отсутствует имя опции, тогда выводим сообщение.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        3