発送連絡メールで、特定の支払い方法をしたユーザーのみに文章を表示したい

解決済
Highlighted
遊覧客
16 2 1

自動送信される発送連絡メールで、
特定の支払い方法をしたユーザーのみに
指定の文章を表示したいのですが可能でしょうか。

0 件の「いいね!」
Highlighted
開拓者
96 28 99

成功

少々自信がありませんが、恐らく以下で分岐が作れるかと思います。

 

{% for transaction in transactions %}
  {% if transaction.payment_details.credit_card_company %}
    <p>クレジット払い用文章</p>
  {% else %}
    {% capture transaction_name %}{{ transaction.gateway_display_name }}{% endcapture %}
    {% case transaction_name %}
      {% when 'Bank deposit'}
        <p>銀行振り込み用文章</p>
      {% when 'Cash on delivery (cod)'}
        <p>代引き用文章</p>
      {% else %}
       <p>{{ transaction_name }}用文章</p>
    {% endcase %}
  {% endif %}
{% endfor %}

 

上記の注意点は以下の通りです。

  • {% for transaction in transactions %} のループがすでに書かれている中に設置する場合は、1行目の {% for transaction in transactions %} と最後の {% endfor %} が不要なので削除する
  • 分岐最後の「 {{ transaction_name }}用文章」はクレジットでも銀行振り込みでも代引きでもない場合の表示用

 

ここまでを踏まえ、例えば銀行振り込みのみの場合は以下のようになります。

 

{% for transaction in transactions %}
  {% if transaction.gateway_display_name == 'Bank deposit' %}
    <p>銀行振り込み用文章</p>
  {% endif %}
{% endfor %}

 

 

設置場所やクレジットカード決済か否かなどで記述が替わるため少々ややこしいですが、プレビューやテスト購入などで出力を確かめていただければと思います。

4 件の「いいね!」
Highlighted
遊覧客
16 2 1

ありがとうございます!
ちょっとまだ試せてないですがこのコードでいろいろ解決できそうです!
ちなみに、例えば「手動の決済方法」に日本語名で「テスト決済」という名前の決済を追加して、
支払い時に「テスト決済」を選択した場合、
transaction.gateway_display_nameには'テスト'が入ってくるのでしょうか?
ご存知でしたら教えていただきたく存じますm(__)m

0 件の「いいね!」
Highlighted
開拓者
96 28 99

確認いただきありがとうございます。

試していないので明確なことは言えませんが、「テスト決済」と入力したら、恐らくそのまま「テスト決済」と出力されると思います。

Bank deposit などもスペースが入っていてそのまま文字列として使われているように見え、日本語でも恐らく同じだと考えられるためです。

間違っていましたらすみません。

0 件の「いいね!」
Highlighted
遊覧客
16 2 1

教えていただきありがとうございます、試してみます!
また結果をこちらで報告できたらと思います。

0 件の「いいね!」