msOptionsPrice2 - условие в зависимости от опции товара в модификации.
Здравствуйте. Категория товаров (сетка товаров) реализована через «mFilter2». Товары с модификациями «msOptionsPrice2 », при переключении опций происходит смена цены и фото товара. В каждой модификации товара есть опция minishop2 «to_order», в зависимости от модификации цифровое значение 0 или 1 или 2. Подскажите пожалуйста как сделать проверку на эту опцию, в зависимости от значения «to_order» выводим или нет кнопку «в корзину»
Что то на вроде:
Что то на вроде:
{if $to_order == 0}
нет на складе
{elseif $to_order == 1}
под заказ
{elseif $to_order == 2}
в корзину
{/if}
Переменная {$to_order} в категории выводит Arrey. Комментарии: 8
Вероятно нужно будет делать дополнительный запрос на сервер после переключения модификации и по результатам запроса прятать или показывать кнопку В корзину.
Да, по логике нужно делать запрос. Вопрос: как?
Посмотрите что хранит переменная:
<pre>{$to_order | print_r}</pre>
Вот что хранит переменная:
Array
(
[0] => 0
[1] => 1
[2] => 2
)
1
Вывод один — что-то не так делаете и что-то не так проверяете…
тк в переменной массив из всех значений. И понять в какой опции у вас что активно — не возможно.
Если вы хотите что-то менять в зависимости от модификации, то в модификации нужно указывать эту зависимость от параметра.
Посмотрите выбрано ли в каждой опции какой либо значение. И проверьте правильно ли вы выводите.
Если хотите помощи, то нужны скриншоты заполненых полей модификации хотя бы одной. и коды вывода на сайте снипеты и переменные.
тк в переменной массив из всех значений. И понять в какой опции у вас что активно — не возможно.
Если вы хотите что-то менять в зависимости от модификации, то в модификации нужно указывать эту зависимость от параметра.
Посмотрите выбрано ли в каждой опции какой либо значение. И проверьте правильно ли вы выводите.
Если хотите помощи, то нужны скриншоты заполненых полей модификации хотя бы одной. и коды вывода на сайте снипеты и переменные.
Вот скрин модификации:
Скрин товара на сайте:
Так выводятся опции «color, memory», опцию «to_order» выводить не нужно, нужно только сделать проверку по ней:
Скрин товара на сайте:
Так выводятся опции «color, memory», опцию «to_order» выводить не нужно, нужно только сделать проверку по ней:
{$_modx->runSnippet('msOptionsPrice.option', [
'options' => 'color, memory',
'product' => $id,
'tpl' => '@FILE chunks/tpl_product_options_iphone.tpl',
'sortOptions' => 'memory:SORT_ASC:SORT_NUMERIC',
'processColors' => 1,
'constraintOptions' => [
'color' => ['memory']
]
])}
Чанк «tpl_product_options_iphone.tpl»:{foreach $options as $name => $values}
<div class="uk-text-emphasis uk-margin-small-bottom uk-text-center">{('ms2_product_' ~ $name) | lexicon}</div>
<div class="uk-margin-bottom options_box uk-text-center"
{if $constraints[$name]}
data-constraints="{$constraints[$name]| json_encode: 256 | htmlentities}"
{/if}
>
{foreach $values as $value index=$index}
<label class="radio input-parent">
<input type="radio" value="{$values[$index]}" name="options[{$name}]"
{if $index == 0}checked="checked"{/if}
{if $constraints[$name]}
data-relations="{$relations[$name][$value]| json_encode: 256 | htmlentities}"
{/if}
/>
{if $colors[$name] && $colors[$name][$value]}
{if $colors[$name][$value]['pattern']?}
<span title="{$value}" data-uk-tooltip="{$value}" class="uk-background-center-center uk-background-norepeat uk-display-inline-block uk-margin-small-right option_color"
style="background-image:url({$colors[$name][$value]['pattern']}); background-position: center; width:40px; height:40px;"></span>
{else}
<!--<span class="uk-margin-small-right" data-uk-tooltip="{$values[$index]}">{$values[$index]}</span>-->
<span title="{$values[$index]}" class="uk-display-inline-block uk-margin-small-right option_color" style="background-color:#{$colors[$name][$value]['color']}; width:40px; height:40px;" data-uk-tooltip="title: {$values[$index]}"></span>
{/if}
{else}
{if $name=='memory'}
<span class="uk-margin-small-right uk-margin-small-bottom rectangle" data-uk-tooltip="{$values[$index]}">{$values[$index]}</span>
{else}
<span class="uk-margin-small-right" data-uk-tooltip="{$values[$index]}">{$values[$index]}</span>
{/if}
{/if}
</label>
{/foreach}
</div>
{/foreach}
Вы в снипете не указали to_order, а memory, например, указали.
ну и внутри чанка в переменной $name будет ключ названия to_order
Сделайте условие и проверяйте в зависимости от значения. (в $name ключ опции, а в $values — значение)
Если не поняли о чем я, то лучше обратитесь в раздел работы тк тут нужно начинать с php и понимания переменных и циклов. и потом в fenom уже прыгать.
ну и внутри чанка в переменной $name будет ключ названия to_order
Сделайте условие и проверяйте в зависимости от значения. (в $name ключ опции, а в $values — значение)
Если не поняли о чем я, то лучше обратитесь в раздел работы тк тут нужно начинать с php и понимания переменных и циклов. и потом в fenom уже прыгать.
Спасибо за совет. Если не справлюсь, обращусь в раздел работа, надеюсь такой функционал не очень дорого будет стоить.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.