質問 > 管理機能 > 注文完了画面で注文者名を表示したい |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
coraljapan |
投稿日時: 2018/8/28 15:34
対応状況: −−−
|
新米 登録日: 2018/8/28 居住地: 投稿: 10 |
注文完了画面で注文者名を表示したい 注文完了画面で注文者名を表示したいのですが、どのようにしたらよいのでしょうか。
「〇〇様 ご注文ありがとうございました。」 と表示したいです。 簡単にできるのでしょうか。 |
468 |
投稿日時: 2018/8/29 16:14
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 注文完了画面で注文者名を表示したい /src/Eccube/Controller/ShoppingController.php function complete()内の以下の記述を追記して、Twig側で注文者名を表示する記述を追記すれば良いかと思います。
↓
テンプレートは以下のファイルになるかと思います。 /src/Eccube/Resource/template/default/Shopping/complete.twig {{ Order.name01 }}{{ Order.name02 }}様 ご注文ありがとうございます。 の記述で注文者の名前を表示できると思います。
|
coraljapan |
投稿日時: 2018/8/29 17:16
対応状況: −−−
|
新米 登録日: 2018/8/28 居住地: 投稿: 10 |
うまくいきませんでした・・・ 468様
ご回答ありがとうございました。 ご教授いただいたコードを追加してみましたが、うまくいきません。 追加する場所がおかしいのでしょうか。 現在、function completeは以下のようになっております。 /** * 購入完了画面表示 */ 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(); // 注文者名を取得 (カスタム) return $app->render('Shopping/complete.twig', array( 'orderId' => $orderId, )); $Order = $app['eccube.repository.order']->get($orderId); return $app->render('Shopping/complete.twig', array( 'orderId' => $orderId, 'Order' => $Order, )); } |
468 |
投稿日時: 2018/8/30 11:09
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: うまくいきませんでした・・・ 申し訳ございません。
追記という書き方がわかりにくかったですね。 元々ある return $app->render('Shopping/complete.twig', array( 'orderId' => $orderId, )); を削除すれば良いかと思います。
|
coraljapan |
投稿日時: 2018/8/30 12:06
対応状況: −−−
|
新米 登録日: 2018/8/28 居住地: 投稿: 10 |
Re: うまくいきませんでした・・・ 何度もすみませんでした・・・
再度やってみましたが、うまくいきません。 追記する場所が違うのでしょうか。 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(); } |
468 |
投稿日時: 2018/8/31 12:08
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: うまくいきませんでした・・・ 私の返信は、デフォルトの以下の記述を
return $app->render('Shopping/complete.twig', array( 'orderId' => $orderId, )); ↓に置き換えてください。 $Order = $app['eccube.repository.order']->get($orderId); return $app->render('Shopping/complete.twig', array( 'orderId' => $orderId, 'Order' => $Order, )); という意味でした。 以下の記述は、complete.twigにorderIdという変数で$orderIdをセットして、 twigの内容を出力という意味なので return $app->render('Shopping/complete.twig', array( 'orderId' => $orderId, )); 1.$orderIdを使って、注文された受注データをDBから取り出す $Order = $app['eccube.repository.order']->get($orderId); 2.complete.twigに取り出した受注データをOrderという変数にセットして、 twigの内容を出力という動きに変更します。 return $app->render('Shopping/complete.twig', array( 'orderId' => $orderId, 'Order' => $Order, ));
|
coraljapan |
投稿日時: 2018/8/31 14:47
対応状況: −−−
|
新米 登録日: 2018/8/28 居住地: 投稿: 10 |
Re: うまくいきませんでした・・・ 468様
ほんとに何度もすみません・・・。 間違いなく、該当箇所を置き換えたのですが、 システムエラーが発生しました。 大変お手数ですが、サイト管理者までご連絡ください。 と、なってしまいます。 /** * 購入完了画面表示 */ 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)); $Order = $app['eccube.repository.order']->get($orderId); return $app->render('Shopping/complete.twig', array( 'orderId' => $orderId, 'Order' => $Order, )); } |
468 |
投稿日時: 2018/9/1 9:31
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: うまくいきませんでした・・・ すみません。
多分、以下の記述を間違えていたと思います。 $Order = $app['eccube.repository.order']->get($orderId); では無くて、 $Order = $app['eccube.repository.order']->find($orderId); だと、エラーにならずに動くのではないかと思います。
|
coraljapan |
投稿日時: 2018/9/2 11:05
対応状況: −−−
|
新米 登録日: 2018/8/28 居住地: 投稿: 10 |
うまくいきました! 468様
最後まで、ご回答ありがとうございました。 おかげさまで、うまく希望通りにできました。 またなにかありましたら、よろしくお願いいたします。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |