バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 注文完了画面で注文者名を表示したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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側で注文者名を表示する記述を追記すれば良いかと思います。

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,
));


テンプレートは以下のファイルになるかと思います。
/src/Eccube/Resource/template/default/Shopping/complete.twig

{{ Order.name01 }}{{ Order.name02 }}様 ご注文ありがとうございます。

の記述で注文者の名前を表示できると思います。


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

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,
));
を削除すれば良いかと思います。


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

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,
));


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

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);

だと、エラーにならずに動くのではないかと思います。


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

coraljapan
投稿日時: 2018/9/2 11:05
対応状況: −−−
新米
登録日: 2018/8/28
居住地:
投稿: 10
うまくいきました!
468様

最後まで、ご回答ありがとうございました。
おかげさまで、うまく希望通りにできました。

またなにかありましたら、よろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
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.