使用 Smarty 检查字符串是否包含子字符串

Check whether a string contains substring with 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" 以确定应该将哪个跟踪 link 发送给客户。

我找不到合理的解决方案来检查字符串是否包含给定子字符串的这些片段。有没有人有一个巧妙的小解决方案可以解决问题?任何事情都值得赞赏! :-)

可以使用修饰符|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}