• Уважаемые пользователи!

    Рады сообщить, что наш сайт был исключён из реестр РКН. В связи с этим сайт доступен без использования VPN.

    Выражаем всем огромную благодарность за помощь в решение данной проблемы.

    Спасибо!

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

Radical

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

SuperMega

Продвинутый (IV)
Сообщения
22
Симпатии
15
Баллы
226
Если универсально решать задачу, без привязки к шаблону и одними стилями CSS, то можно накрыть чекбокс прозрачным слоем, состоящим из псевдоэлемента :before или :after
 

Radical

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

innerjoin86

Разрушитель (V)
Сообщения
76
Симпатии
61
Баллы
238
Пример для дефолтного шаблона (файл 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

Разрушитель (V)
Сообщения
309
Симпатии
113
Баллы
13 354
Пример для дефолтного шаблона (файл 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

Команда форума
Разрушитель (V)
Сообщения
317
Симпатии
357
Баллы
9 349
Я пытался вставить твои изминения в коде... но тщетно, шаблон и модификаторы каждый раз обновляю для проверки... код который пытался вставить вот этот:

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

innerjoin86

Разрушитель (V)
Сообщения
76
Симпатии
61
Баллы
238
У меня название опций на 3х языках, если про админ часть..
Если уникальное название на латинице... то я не знаю где его посмотреть
Чтобы узнать имя опции для подстановки в условие перед <input нужно вставить
HTML:
{{ option_value.name }}
 

Radical

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

innerjoin86

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

Radical

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