OC v3.х Как отключить возможность выбора опций определенному типу опций?

Radical

Разрушитель (V)
Сообщения
308
Симпатии
129
Баллы
14 354
Возник вопрос, каким образом возможно отключить выбор определенноого типа опций в карточке товара? В моем случае это "Флажок". Нужно, что бы клиент не мог выбрать эту опцию, но что бы мог ее увидеть. Задача показать под ценой товара список цветовой палитры в комплекте товара, но при этом, что бы другие типы опций нормально работали в штатном режиме. Подскажите пожалуйста решение или плагин!
Версия Opencart 3.0.2.0
 
Если универсально решать задачу, без привязки к шаблону и одними стилями CSS, то можно накрыть чекбокс прозрачным слоем, состоящим из псевдоэлемента :before или :after
 
Если универсально решать задачу, без привязки к шаблону и одними стилями CSS, то можно накрыть чекбокс прозрачным слоем, состоящим из псевдоэлемента :before или :after
Интересное решение, но боюсь после этого при наведении не будет всплывать подсказка :)
Поэтому буду продолжать копаться в шаблоне и искать куда впихнуть disable...
Если кто сможет быриком помочь - прикреплю шаблон и буду крайне презнателен за помощь! А у меня может получиться только методом тыка :)
 
Пример для дефолтного шаблона (файл product.twig)
HTML:
<input type="checkbox" name="option[{{ option.product_option_id }}][]" value="{{ option_value.product_option_value_id }}" {% if option_value.name == 'Checkbox 1' %} disabled {% endif %} />
 
Пример для дефолтного шаблона (файл product.twig)
HTML:
<input type="checkbox" name="option[{{ option.product_option_id }}][]" value="{{ option_value.product_option_value_id }}" {% if option_value.name == 'Checkbox 1' %} disabled {% endif %} />
Я пытался вставить твои изминения в коде... но тщетно, шаблон и модификаторы каждый раз обновляю для проверки... код который пытался вставить вот этот:
Код:
{% if option_value.name == 'Checkbox 1' %} disabled {% endif %}
Вот одна из попыток:
Код:
<input type="checkbox" name="option[{{ option.product_option_id }}][]" value="{{ option_value.product_option_value_id }}" data-prefix="{{ option_value.price_prefix }}" data-price="{{ option_value.price_value }}" {% if option_value.name == 'Checkbox 1' %} disabled {% endif %}  class="hidden" />
 
Последнее редактирование:
Я пытался вставить твои изминения в коде... но тщетно, шаблон и модификаторы каждый раз обновляю для проверки... код который пытался вставить вот этот:

Код:
{% if option_value.name == 'Checkbox 1' %} disabled {% endif %}
А у тебя название опции "Checkbox 1"?
 
У меня название опций на 3х языках, если про админ часть..
Если уникальное название на латинице... то я не знаю где его посмотреть
Чтобы узнать имя опции для подстановки в условие перед <input нужно вставить
HTML:
{{ option_value.name }}
 
Чтобы узнать имя опции для подстановки в условие перед <input нужно вставить
HTML:
{{ option_value.name }}
Ура заработало! :) Огромное спасибо!
Теперь одна опция на одном языке отключена! :)
Возник вопрос как добавить два имени опции на 2х других языках?
Через запятую не работает...
 
Последнее редактирование:
Возник вопрос как добавить два имени опции на 2х других языках?
Через запятую не работает...
Для нескольких имен опций можно их проверить на принадлежность значениям массива
HTML:
{% if option_value.name in ['Checkbox 1', 'Checkbox 3', 'Checkbox 4'] %} disabled {% endif %}
Вместо ['Checkbox 1', 'Checkbox 3', 'Checkbox 4'] ставить свои имена опций.
 
Для нескольких имен опций можно их проверить на принадлежность значениям массива
HTML:
{% if option_value.name in ['Checkbox 1', 'Checkbox 3', 'Checkbox 4'] %} disabled {% endif %}
Вместо ['Checkbox 1', 'Checkbox 3', 'Checkbox 4'] ставить свои имена опций.
Спасибо огромное! Все получилось, даже лучше чем я планировал! По сути с данным кодом мы не обрезаем функционал Чекбоксов, а выборочно блокируем необходимые опции, то что нужно!
 
Назад
Верх