Проверьте, содержит ли строка подстроку с помощью Smarty

У меня небольшая проблема с моими шаблонами электронной почты. Shopware по какой-то причине использует Smarty в качестве языка шаблонов для своих электронных писем. Моя проблема сейчас в том, что у меня есть этот шаблон электронной почты


Tracking: 

  {if $sDispatch.name == "DHL national" }
      https://sampleurl.com={$sOrder.trackingcode}
  {else if $sDispatch.name == "DPD"}
      https://sampleurl.com={$sOrder.trackingcode}
  {else if $Dispatch.name == "Deutsche Post"}
      http://sampleurl.com
  {else}
      Your order can not be tracked.
  {/if}

И вариантов отправки посылок много (мелкая посылка, со страховкой...). Теперь я хочу проверить, включает ли строка в $sDispatch.name «DHL», «DPD» или «Deutsche Post», чтобы определить, какую ссылку для отслеживания следует отправить клиенту.

Я не смог найти разумного решения, чтобы проверить, содержит ли строка эти части заданных подстрок. У кого-нибудь есть аккуратное маленькое решение, которое поможет? Все ценится! :-)


person tombjarne    schedule 02.11.2019    source источник


Ответы (1)


Вы можете использовать модификатор |strstr для поиска определенной строки в строке.

https://www.php.net/manual/de/function.strstr.php

Пример:

{if $sDispatch.name|strstr:"DHL"}This is a dispatch that contains the string DHL{/if}
person Rotfuchs    schedule 04.11.2019
comment
Отлично, это решило проблему. Спасибо за участие! :-) - person tombjarne; 04.11.2019