バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > カートにある情報をお届け先ページに表示させてたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
taron
投稿日時: 2013/2/4 20:10
対応状況: 開発中
半人前
登録日: 2013/2/2
居住地:
投稿: 13
カートにある情報をお届け先ページに表示させてたい
カートページに、hiddenで、隠しパラメータをもたせてお届け先の指定ページまで移動させたいのですが、うまくいきません。
どこで実装すればよろしいのでしょうか。

宜しくお願いします。
dkazuto
投稿日時: 2013/2/4 20:26
対応状況: −−−
一人前
登録日: 2012/5/10
居住地:
投稿: 95
Re: カートにある情報をお届け先ページに表示させてたい
taron様

カートページから、hiddenキーPOSTで値を引き継がせるのは
遷移処理が複雑なため、かなり大変です。

隠しパラメータをPOSTされたら、PHPのセッション内で値をキープして
お届け先ページまで引き継ぐという方法はいかがでしょうか。

taron
投稿日時: 2013/2/4 20:33
対応状況: −−−
半人前
登録日: 2013/2/2
居住地:
投稿: 13
Re: カートにある情報をお届け先ページに表示させてたい
ご連絡ありがとうございます!

やはり難しいですよね。。。

その方法すばらしいです!
とはいえ、EC-CUBEの場合はどの様に記述したらよいのでしょうか。

すいません。
教えていただけるとありがたく思います。

どうぞ、宜しくお願い致します。
dkazuto
投稿日時: 2013/2/4 21:19
対応状況: −−−
一人前
登録日: 2012/5/10
居住地:
投稿: 95
Re: カートにある情報をお届け先ページに表示させてたい
taron様

まず、カートページでセッションに格納するための値をPOSTします。

/data/Smarty/templates/default/cart/index.tplの78行目あたりで


<input type="hidden" name="cart_no" value="" />
<input type="hidden" name="cartKey" value="<!--{$key}-->" />
<input type="hidden" name="category_id" value="<!--{$tpl_category_id|h}-->" />

という部分があります。

上記のすぐ下に次のようなタグを埋め込んでください。

<input type="hidden" name="hoge" value="任意の文字列情報" />

hogeという名前のパラメータをPOSTしています。

これをセッションに格納するため、LC_Page_Cart.phpで処理をくわえます。

/data/class/pages/cart/LC_Page_Cart.phpの108行目当たりに次の処理を入れます。


// カート商品が1件以上存在する場合
if (count($cartList) > 0) {
    // カートを購入モードに設定
    $this->lfSetCurrentCart($objSiteSess, $objCartSess, $cartKey);
    
    //  ↓追加
    $_SESSION['hoge'] = $_REQUEST['hoge'];
    //  ↑追加

    // 購入ページへ
    SC_Response_Ex::sendRedirect(SHOPPING_URL);
    SC_Response_Ex::actionExit();
}


上記の処理により、セッションへデータが格納されました。

最後に、表示の部分です。

LC_Page_Shopping_Deliv.php(お届け先ページ)の80行目当たりに

$this->cartKey = $objCartSess->getKey();

// ↓追加
$this->hoge = $_SESSION['hoge'];
// ↑追加

// ログインチェック
if (!$objCustomer->isLoginSuccess(true)) {
    SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
}

という処理を追加します。

こうすることで、このページのテンプレート(/data/Smarty/templates/default/shopping/deliv.tpl)で
<!--{$hoge}-->を記述することによりカートで指定した値を表示させることが可能となります。




taron
投稿日時: 2013/2/6 9:07
対応状況: 解決済
半人前
登録日: 2013/2/2
居住地:
投稿: 13
Re: カートにある情報をお届け先ページに表示させてたい
丁寧なご説明ありがとうございます。

無事なんとか行えました。

ありがとうございました!!
もっと勉強します!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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