自動送信される発送連絡メールで、
特定の支払い方法をしたユーザーのみに
指定の文章を表示したいのですが可能でしょうか。
少々自信がありませんが、恐らく以下で分岐が作れるかと思います。
{% for transaction in transactions %}
{% if transaction.payment_details.credit_card_company %}
クレジット払い用文章
{% else %}
{% capture transaction_name %}{{ transaction.gateway_display_name }}{% endcapture %}
{% case transaction_name %}
{% when 'Bank deposit'}
銀行振り込み用文章
{% when 'Cash on delivery (cod)'}
代引き用文章
{% else %}
{{ transaction_name }}用文章
{% 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' %}
銀行振り込み用文章
{% endif %}
{% endfor %}
設置場所やクレジットカード決済か否かなどで記述が替わるため少々ややこしいですが、プレビューやテスト購入などで出力を確かめていただければと思います。
5 Likes
ありがとうございます!
ちょっとまだ試せてないですがこのコードでいろいろ解決できそうです!
ちなみに、例えば「手動の決済方法」に日本語名で「テスト決済」という名前の決済を追加して、
支払い時に「テスト決済」を選択した場合、
transaction.gateway_display_nameには’テスト’が入ってくるのでしょうか?
ご存知でしたら教えていただきたく存じますm(__)m
確認いただきありがとうございます。
試していないので明確なことは言えませんが、「テスト決済」と入力したら、恐らくそのまま「テスト決済」と出力されると思います。
Bank deposit などもスペースが入っていてそのまま文字列として使われているように見え、日本語でも恐らく同じだと考えられるためです。
間違っていましたらすみません。
1 Like
教えていただきありがとうございます、試してみます!
また結果をこちらで報告できたらと思います。
jizoさんに教えていただいた方法で出来ました!ありがとうございました!!
1 Like