バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 注文完了画面に ユーザー情報を表示したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tawaba
投稿日時: 2020/4/18 20:53
対応状況: −−−
半人前
登録日: 2019/5/27
居住地:
投稿: 12
注文完了画面に ユーザー情報を表示したい
[EC-CUBE] 3系
[レンタルサーバ] エックスサーバー
[OS] mac os X
[PHP] 最新
[データベース] mysql最新
[WEBサーバ] FTP
[ブラウザ] chrome

[実現したい事]
注文完了画面で、ユーザーが登録した情報を表示させたいです。
E-mail
名前
調べたのですが、下記コントローラーが関連しているところまでは辿り着いたのですが、ユーザー情報を取得するところなどで行き詰まってしまいました。。。
ご教示よろしくお願いいたします!

/src/Eccube/Controller/ShoppingController.php

public function complete(Application $app, Request $request)
    {
        // 受注IDを取得
        $orderId = $app['session']->get($this->sessionOrderKey);

        $event = new EventArgs(
            array(
                'orderId' => $orderId,
            ),
            $request
        );
        $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_SHOPPING_COMPLETE_INITIALIZE, $event);

        if ($event->getResponse() !== null) {
            return $event->getResponse();
        }

        // 受注に関連するセッションを削除
        $app['session']->remove($this->sessionOrderKey);
        $app['session']->remove($this->sessionMultipleKey);
        // 非会員用セッション情報を空の配列で上書きする(プラグイン互換性保持のために削除はしない)
        $app['session']->set($this->sessionKey, array());
        $app['session']->set($this->sessionCustomerAddressKey, array());

        log_info('購入処理完了', array($orderId));

        return $app->render('Shopping/complete.twig', array(
            'orderId' => $orderId,
        ));
    }

468
投稿日時: 2020/4/20 11:26
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 注文完了画面に ユーザー情報を表示したい
該当functionの中で
$orderId = $app['session']->get($this->sessionOrderKey);
で注文が完了した受注IDを$orderIdに代入していますので
その受注IDを元に受注データを取得→twigに渡す。の流れが良いかと思います。

受注データの取得は
管理画面の受注編集ページ用のコントローラー
/src/Eccube/Controller/Admin/Order/EditController.phpのfunction index()内の記述を参考にして、
以下のような記述で取得できると思います。
(ほとんどの処理はどこかのコントローラーの記述が参考になります)
]$TargetOrder = $app['eccube.repository.order']->find($orderId);


あとは$TargetOrderをtwigに渡してやればテンプレート側で
{{ TargetOrder.id }}
等で受注情報を参照できます。

return $app->render('Shopping/complete.twig', array(
    'orderId' => $orderId,
    'Order' => $TargetOrder,
));


求められているユーザー情報がどんな情報なのか分かりませんが
/src/Eccube/Entity/Order.php
のソースコードを確認して取得できる情報に何があるのか確認してみてください。
function get*****()というメソッドがデータを取得するメソッドで
twig上で「get」と「()」を省略して先頭を小文字にして記述すればメソッドを指定して呼び出せると思います。

{{ Order.name01 }}と記述すれば、
OrderEntity->getName01()が処理されます。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

tawaba
投稿日時: 2020/4/20 20:04
対応状況: −−−
半人前
登録日: 2019/5/27
居住地:
投稿: 12
Re: 注文完了画面に ユーザー情報を表示したい
468様

ご教示ありがとうございます!

ご教示くださいました内容を試みたところ、目的の表示ができました!
この度は御丁寧に教えてくださり、誠にありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,283名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.