バージョン選択

フォーラム

メニュー

オンライン状況

69 人のユーザが現在オンラインです。 (62 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 69
もっと...

サイト内検索

質問 > フロント機能 > 注文受付メールに以前決済したクレジットカードと表示したい

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
2645dfd
投稿日時: 2024/5/24 20:41
対応状況: −−−
半人前
登録日: 2022/5/2
居住地:
投稿: 19
注文受付メールに以前決済したクレジットカードと表示したい
[EC-CUBE] EC-CUBE4.2.1
[レンタルサーバ] Xserver
[OS] 使用しているOS名、バージョン
[PHP] 7.4.33
[データベース] MySQL 10.5.13-MariaDB-log
[WEBサーバ] Apache
[導入プラグインの有無] GMO決済プラグイン
[カスタマイズの有無] カートスキップ

クレジットカードの決済プラグインでEC-CUBEペイメント決済プラグイン(4.2系)を使っています。

以前決済したクレジットカードで決済した場合に注文受付メールにその旨を表示させたいです。

試行錯誤したため説明が長くなってしまいましたが、試してみたことを説明します。

注文受付メールのデフォルトでは、クレジットカードで決済するとこのように表示されます。
お支払い方法:クレジットカード決済

GOM決済プラグインと連携すると、購入手続きの際に「以前決済したクレジットカード」が選択して決済できます。その場合、注文受付メールの表示をこのように変更したいです。
お支払い方法:以前決済したクレジットカード

GOM決済プラグインのMySQLを確認してみたところ、こちらでどちらなのかが判別できることに気が付きました。

DBテーブル:plg_gmo_payment_gateway_order_payment
カラム:memo01
新規のクレジットカードで決済したmemo01の内容:{"payment_type":"0",以降クレジットカートの詳細の記述~
以前決済したクレジットカードで決済したmemo01の内容:{"payment_type":"1",以降クレジットカートの詳細の記述~

そのため、注文受付メールのテンプレートにクレジットカート決済の場合、memo01のjsonを解析して表示を切り替える記述を追加しました。
クレジットカートの決済IDは8です。


{% if Order.Payment.id == 8 %}
    {% set memo01 = Order.Payment.memos|first.memo01 %}
    {% if memo01 is not empty %}
        {% set jsonMemo = memo01|json_decode %}
        {% if jsonMemo.payment_type is defined %}
            {% if jsonMemo.payment_type == "1" %}
                決済方法: 以前決済したクレジットカード
            {% else %}
                決済方法: クレジットカード
            {% endif %}
        {% else %}
            決済方法: クレジットカード
        {% endif %}
    {% else %}
        決済方法: クレジットカード
    {% endif %}
{% else %}
    決済方法: その他の支払い方法
{% endif %}



json_decodeがTwigのフォーマットが正しくありません。とエラーが出ましたので、
つかえるようにこちらのカスタマイズをしましたら、エラーは出てこなくなったので上記の記述のままテストしています。

src/Eccube/Twig/Extension/IntlExtension.php

    public function getFilters()
    {
        return [
            new TwigFilter('date_day', [$this, 'date_day'], ['needs_environment' => true]),
            new TwigFilter('date_min', [$this, 'date_min'], ['needs_environment' => true]),
            new TwigFilter('date_sec', [$this, 'date_sec'], ['needs_environment' => true]),
            new TwigFilter('date_day_with_weekday', [$this, 'date_day_with_weekday'], ['needs_environment' => true]),
            new TwigFilter('json_decode', [$this, 'jsonDecode']),//追加
        ];
    }

    public function jsonDecode($string)//追加
    {
        return json_decode($string, true);
    }



app/config/eccube/services.yaml

    Eccube\Twig\Extension\IntlExtension://追加
        tags: ['twig.extension']


しかし、以前決済したクレジットカートで決済し、memo01が「{"payment_type":"1",以降クレジットカートの詳細の記述~」になっていても注文受付メールの表示は「クレジットカード」になってしまします。

テンプレートへの記述が間違っているのか、他にいい方法があるような気もいたします。よろしければご享受いただければ幸いです。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » 注文受付メールに以前決済したクレジットカードと表示したい 2645dfd 2024/5/24 20:41
     Re: 注文受付メールに以前決済したクレジットカードと表示したい tattsu 2024/5/25 12:30
       Re: 注文受付メールに以前決済したクレジットカードと表示したい 2645dfd 2024/5/31 10:38

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,951名です
総投稿数は110,528件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1704
8
red
1571
9
mcontact
1401
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.