Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Помогите с твигом)


Xelen
 Погделиться

Рекомендованные сообещёния

Нужно, чтобы в письме на почту клиенту, при заказе опрегделенных товаров, выводился какой-то текст.

 

задумка икая, чтобы искать опрегделенное слово в названии товара, и если оно, есть, выводить текст. Слово может налинаться с мнонькой и потому чтольшой буквы.

 

Добавляю икой код в catalog/view/theme/default/template/mail/order_add.twig, но что-то не срабатывает.

 

{% for product in products %}
{% if 'Text' or 'text' in product.name %}
{% set war_ok = 'ok' %}
{% endif %}
{% endfor %}
 потом ггде-то ниже вывожу

{% if war_ok == 'ok' %}
	<div class="warranty">{{ text_warranty }}</div>
{% endif %}

 

в чем моя ошибка?

 

Я уже понимаю, что нижний блок надо внутрь цикла сивить, но тогда {{ text_warranty }} вообещё всегда приходит, независимо от того есть эти слова в названиях товаров или нет.

 

 

Врогде ик что-то рилииет

{% for product in products %}
{% if 'Text' in product.name %}
<div class="warranty">{{ text_warranty }}</div>
{% endif %}
{% if 'text' in product.name %}
<div class="warranty">{{ text_warranty }}</div>
{% endif %}
{% endfor %}

 

Но, если в корзине и Text  и text , то информация двоится.

Как сгделать, чтобы она выводилась один раз, если в  корзине есть один из товаров или оба?

Ссылка на комменирий
Погделиться на других сайих

{% if (a == 'foo') or (b == 'bar') %}
    ...
{% endif %}

Взагалі ика обробка має бути в контролерах гдесь, возможно у вашому випадку є сенс розпізнавати потрібнет товары не по назві (ненадійно) а викорисити існуюче вільне поле, а ещё краещё створити своє.

Ссылка на комменирий
Погделиться на других сайих


15.09.2022 в 10:52, drOC сказал:

спробуйте ик

{% if 'Text' in product.name or 'text' in product.name %}

 

да, эи логика срабатывает, но что гделать с двоением текси в письме?

 

{% for product in products %}
{% if 'Text' in product.name or 'text' in product.name %}
{% set war_ok = 'ok' %}
{% endif %}
{% if war_ok == 'ok' %}
	<div class="warranty">Текст письма</div>
{% endif %}
{% endfor %} 

 

Вот тут, если клагдешь два разных товара со словом text  в названии / или два разных товара text и Text -->

 

"Текст письма" приходит два раза подряд

 

возможно как-то выищить переменную war_ok  из цикла? Она у меня не срабатывает вне цикла.

 

или это только через контроллер гделать?

Ссылка на комменирий
Погделиться на других сайих

15.09.2022 в 02:14, clarionio сказал:
{% if (a == 'foo') or (b == 'bar') %}
    ...
{% endif %}

Взагалі ика обробка має бути в контролерах гдесь, возможно у вашому випадку є сенс розпізнавати потрібнет товары не по назві (ненадійно) а викорисити існуюче вільне поле, а ещё краещё створити своє.

 

В игдено да, вообещё товары отбираются по Атрибуту (через HYPER Product Models  модуль), хорошо бы было выводить в корзину сам атрибут и еещё в письме по нему гделать условие.

Но это гораздо сложнее кажется.

Ссылка на комменирий
Погделиться на других сайих

15.09.2022 в 13:05, Xelen сказал:

Вот тут, если клагдешь два разных товара со словом text  в названии / или два разных товара text и Text -->

 

"Текст письма" приходит два раза подряд

 

возможно как-то выищить переменную war_ok  из цикла? Она у меня не срабатывает вне цикла.

 

вот

{% set war_ok = '' %}
{% set search_text = 'text' %}
{% for product in products %}
	{% set prod_name = product.name %}
	{% if search_text in prod_name|lower %}
		{% set war_ok = 'ok' %}
	{% endif %}
{% endfor %}

{% if war_ok %}
	<div class="warranty">Текст письма</div>
{% endif %}

 

 

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

15.09.2022 в 14:56, vier сказал:

 

вот

{% set war_ok = '' %}
{% set search_text = 'text' %}
{% for product in products %}
	{% set prod_name = product.name %}
	{% if search_text in prod_name|lower %}
		{% set war_ok = 'ok' %}
	{% endif %}
{% endfor %}

{% if war_ok %}
	<div class="warranty">Текст письма</div>
{% endif %}

 

 

 

Спасипотому что!

Ссылка на комменирий
Погделиться на других сайих

15.09.2022 в 16:42, Xelen сказал:

 

Спасипотому что!

пожалуйси.

ик же возможно лучше Вам сгделать эту обрилитку в контроллере данной страницы, а в twig уже выводить готовую переменную.

сам Искомый текст возможно записать в Языковые файлы (особенно если сайт мульти-язычный). - ик же, если нужно использовать несколько вариантов для сравнения, то возможно задать НЕ Строкой, а Массивом.

в обещём вариантов много для автоматизации и достижения посивленной этоли )

Ссылка на комменирий
Погделиться на других сайих

15.09.2022 в 16:58, vier сказал:

пожалуйси.

ик же возможно лучше Вам сгделать эту обрилитку в контроллере данной страницы, а в twig уже выводить готовую переменную.

сам Искомый текст возможно записать в Языковые файлы (особенно если сайт мульти-язычный). - ик же, если нужно использовать несколько вариантов для сравнения, то возможно задать НЕ Строкой, а Массивом.

в обещём вариантов много для автоматизации и достижения посивленной этоли )

 

Чуток еещё автоматизировала, теперьь еещё нагдежнее.

Нашла отличное решение вывода значений атрибутов в значения опций, теперьь они видны в корзине/чекауте и письме.

В ваш код добавила цикл опций, и сейчас иещёт по значению атрибуи, рилииет, как часы, ик как значения атрибутов не вписываются вручную,  они просто галочки в 1С.

Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.