Как сделать обязательное поле размера если у товара есть размер
Всем доброе время суток. Подскажите как сделать обязательным при добавлении в корзину размера, цены в карточке товара?
не могу написать сниппет:
Проверяй id ресурса и ключ опции. Если есть, тогда проверяй на наличии в options
но я не знаю как взять ключ опции. id ресурса я быстро вывел
у меня не хватает знаний, что бы самому сделать если честно. Помогите мне пожалуйста
не могу написать сниппет:
<?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 ресурса я быстро вывел
у меня не хватает знаний, что бы самому сделать если честно. Помогите мне пожалуйста
Комментарии: 3
так получить размеры.
$product->get('size');
а как написать если есть размеры то выдавать ответ $modx->event->output('Необходимо выбрать размер');
<?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 изменить на более корректный вариант?
Может так:
if (empty($arr) || !in_array($sizename, $arr)) {
$modx->event->output('Необходимо выбрать размер');
}
Если пустой массив или в массиве отсутствует имя опции, тогда выводим сообщение.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.