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

Radical

Писатель
Сообщения
309
Симпатии
102
Баллы
13 174
Возник вопрос, каким образом возможно отключить выбор определенноого типа опций в карточке товара? В моем случае это "Флажок". Нужно, что бы клиент не мог выбрать эту опцию, но что бы мог ее увидеть. Задача показать под ценой товара список цветовой палитры в комплекте товара, но при этом, что бы другие типы опций нормально работали в штатном режиме. Подскажите пожалуйста решение или плагин!
Версия Opencart 3.0.2.0
 

SuperMega

Созидатель
Сообщения
21
Симпатии
12
Баллы
119
Если универсально решать задачу, без привязки к шаблону и одними стилями CSS, то можно накрыть чекбокс прозрачным слоем, состоящим из псевдоэлемента :before или :after
 

Radical

Писатель
Сообщения
309
Симпатии
102
Баллы
13 174
Если универсально решать задачу, без привязки к шаблону и одними стилями CSS, то можно накрыть чекбокс прозрачным слоем, состоящим из псевдоэлемента :before или :after
Интересное решение, но боюсь после этого при наведении не будет всплывать подсказка :)
Поэтому буду продолжать копаться в шаблоне и искать куда впихнуть disable...
Если кто сможет быриком помочь - прикреплю шаблон и буду крайне презнателен за помощь! А у меня может получиться только методом тыка :)
 

innerjoin86

Творец
Сообщения
49
Симпатии
42
Баллы
167
Пример для дефолтного шаблона (файл 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 %} />
 

Radical

Писатель
Сообщения
309
Симпатии
102
Баллы
13 174
Пример для дефолтного шаблона (файл 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" />
 
Последнее редактирование:

CAPAXA

Писатель
Сообщения
175
Симпатии
183
Баллы
4 102
Я пытался вставить твои изминения в коде... но тщетно, шаблон и модификаторы каждый раз обновляю для проверки... код который пытался вставить вот этот:

Код:
{% if option_value.name == 'Checkbox 1' %} disabled {% endif %}
А у тебя название опции "Checkbox 1"?
 

innerjoin86

Творец
Сообщения
49
Симпатии
42
Баллы
167
У меня название опций на 3х языках, если про админ часть..
Если уникальное название на латинице... то я не знаю где его посмотреть
Чтобы узнать имя опции для подстановки в условие перед <input нужно вставить
HTML:
{{ option_value.name }}
 

Radical

Писатель
Сообщения
309
Симпатии
102
Баллы
13 174
Чтобы узнать имя опции для подстановки в условие перед <input нужно вставить
HTML:
{{ option_value.name }}
Ура заработало! :) Огромное спасибо!
Теперь одна опция на одном языке отключена! :)
Возник вопрос как добавить два имени опции на 2х других языках?
Через запятую не работает...
 
Последнее редактирование:

innerjoin86

Творец
Сообщения
49
Симпатии
42
Баллы
167
Возник вопрос как добавить два имени опции на 2х других языках?
Через запятую не работает...
Для нескольких имен опций можно их проверить на принадлежность значениям массива
HTML:
{% if option_value.name in ['Checkbox 1', 'Checkbox 3', 'Checkbox 4'] %} disabled {% endif %}
Вместо ['Checkbox 1', 'Checkbox 3', 'Checkbox 4'] ставить свои имена опций.
 

Radical

Писатель
Сообщения
309
Симпатии
102
Баллы
13 174
Для нескольких имен опций можно их проверить на принадлежность значениям массива
HTML:
{% if option_value.name in ['Checkbox 1', 'Checkbox 3', 'Checkbox 4'] %} disabled {% endif %}
Вместо ['Checkbox 1', 'Checkbox 3', 'Checkbox 4'] ставить свои имена опций.
Спасибо огромное! Все получилось, даже лучше чем я планировал! По сути с данным кодом мы не обрезаем функционал Чекбоксов, а выборочно блокируем необходимые опции, то что нужно!
 
Верх