2016-08-23 16 views
1

現在Twigを使用して電子メールテンプレートを作成しています。私はいくつかの困難を抱えています。Twig電子メール - オブジェクトの表示と非表示

私は自分のメールテンプレートにプッシュされている商品が2つありますが、そのうちの1つは「ギフトラップ」です。私の製品リストにGIFT WRAPを表示するのではなく、SHIPPING、SUBTOTAL、TOTALが見つかるサマリーエリアに表示することです。

GIFT WRAPをリストから隠すことはできますが、要約セクションに問題があります。

これは私がこれまで持っているものです。

<!-- Summary section --> 
{% for item in items %} 
    {% if item.title == 'Gift wrap' %}     
     Show gift wrap 
    {% else %} 
     Dont show giftwrap 
     But now show another element 
    {% endif %} 
{% endfor %} 

は、残念ながらまだ示して「ギフトラップは表示されません」。誰かが私を助けることができたら、それは非常に感謝されるでしょう。

ここで要求されたように、私はあなたがやりたい推測している私のテンプレート

{% for item in items %} 
    {% if item.title == 'Gift wrap' %}     
      <tr> 
      <td style="border-top: 2px solid #202020;"></td> 
      <td style="padding-left: 10px; border-top: 2px solid #202020; padding-top: 20px; font-family: 'Open sans', Helvetica, Arial, sans-serif; color: #666666; font-weight: 300;" width="100px"> 
       Subtotal 
      </td> 
      <td style="border-top: 2px solid #202020; padding-top: 20px; font-family: 'Open sans', Helvetica, Arial, sans-serif; color: #666666; font-weight: 300;" align="right" width="100px"> 
       £{{ subtotal - item.totals.data.rounded.with_tax }} 
      </td> 
     </tr> 
     <tr> 
      <td></td> 
      <td style="padding-left: 10px; padding-top: 10px; font-family: 'Open sans', Helvetica, Arial, sans-serif; color: #666666; font-weight: 300;" width="100px"> 
        Gift wrap 
      </td> 
      <td style="padding-top: 10px; font-family: 'Open sans', Helvetica, Arial, sans-serif; color: #666666; font-weight: 300;" align="right" width="100px"> 
        {{ item.totals.data.formatted.with_tax }} 
       </td> 
      </tr> 
    {% else %} 
      <tr> 
       <td> 
        <p>Add this if gift wrap has not be added to customers order</p> 
       </td> 
      </tr> 
    {% endif %} 
{% endfor %} 
+0

複数の商品があるため「まだ表示されていますか?あなたが提供したテンプレートは私のために働きます。 – jhmckimm

+0

はい複数のアイテムがあります –

+1

これらのアイテムの名前が「ギフトラップ」以外のものであれば、上記のテンプレートには「ギフトラップを表示しない」と表示されます。 「贈り物を表示しない」を取り出し、あなたが望むように働くでしょうか? – jhmckimm

答えて

0

の一部であり、あなたはGift wrapが項目にあるかどうかflagを維持する必要があります。ここでは、flagを使用してこれを解決する方法を次のとおりです。

{% set has_gift_wrap = false %} 
{% for item in items %} 
    {% if item.title == 'Gift wrap' %} 
     {% set has_gift_wrap = true %} 
    {% endif %} 
{% endfor %} 
... 
... 
{% if has_gift_wrap %}     
    <tr> 
    <td style="border-top: 2px solid #202020;"></td> 
    <td style="padding-left: 10px; border-top: 2px solid #202020; padding-top: 20px; font-family: 'Open sans', Helvetica, Arial, sans-serif; color: #666666; font-weight: 300;" width="100px"> 
     Subtotal 
    </td> 
    <td style="border-top: 2px solid #202020; padding-top: 20px; font-family: 'Open sans', Helvetica, Arial, sans-serif; color: #666666; font-weight: 300;" align="right" width="100px"> 
     £{{ subtotal - item.totals.data.rounded.with_tax }} 
    </td> 
    </tr> 
    <tr> 
    <td></td> 
    <td style="padding-left: 10px; padding-top: 10px; font-family: 'Open sans', Helvetica, Arial, sans-serif; color: #666666; font-weight: 300;" width="100px"> 
      Gift wrap 
    </td> 
    <td style="padding-top: 10px; font-family: 'Open sans', Helvetica, Arial, sans-serif; color: #666666; font-weight: 300;" align="right" width="100px"> 
      {{ item.totals.data.formatted.with_tax }} 
     </td> 
    </tr> 
{% else %} 
    <tr> 
     <td> 
      <p>Add this if gift wrap has not be added to customers order</p> 
     </td> 
    </tr> 
{% endif %} 

は追記Gift wrapは属性内に格納されているので、あなたが{% if "Gift wrap" in items %}を使用することはできません。

関連する問題