**********************************************
↓こちらのページで、さらに機能を追加
http://www.itoben.com/blog/504.html
**********************************************
カゴに入れた直後にカート画面に飛ばないようにするとともに、「カゴに商品が追加されました」というメッセージを表示する。
下記のようにコード2行をコメントアウトするだけでもカート画面に飛ばなくなるが、ブラウザの更新ボタンをクリックすると、カゴの中の数量が1つずつ増えてしまうので、ちょっとだけ手の込んだカスタマイズをする。
★なお、携帯とスマートフォンには適用しない。
// SC_Response_Ex::sendRedirect(CART_URLPATH);
// exit;
1 商品詳細ページ
(1)■data/class/pages/products/LC_Page_Products_Detail.php
① 160行目あたりを変更
SC_Response_Ex::sendRedirect(CART_URLPATH); exit; ↓(変更) //カゴに入れた直後にカート画面に飛ばない。携帯とスマートフォンには適用しない。 if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) { SC_Response_Ex::sendRedirect(CART_URLPATH); exit; } else { //セッションに商品を買った事を保持する $_SESSION['cart_buy_now'] = TRUE; //リンク元のURLにリダイレクトさせる SC_Response_Ex::sendRedirect($_SERVER['HTTP_REFERER']); exit; }
② 337行目あたりに追加 function action()内の一番最後
//カートに入れた状態をセッションで一時的に保持。アサイン後初期化。携帯とスマートフォンには適用しない。 if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) { } else { if ($_SESSION['cart_buy_now'] === true) { $_SESSION['cart_buy_now'] = ''; $this->CartBuyNow = true; } // カテゴリーIDをアサイン $this->tpl_Category_Id = $_GET['category_id']; }
(2)■/data/Smarty/templates/default/products/detail.tpl
① 45行目あたりを変更
<form name="form1" id="form1" method="post" action="?"> ↓ <form name="form1" id="form1" method="post" action="?<!--{if $tpl_Category_Id != ''}-->&category_id=<!--{$tpl_Category_Id}--><!--{/if}-->">
② 一番下 の後に
<!--{if $CartBuyNow == true}--> <script type="text/javascript"> alert("カゴに商品が追加されました。"); </script> <!--{/if}-->
2 商品一覧ページ
(1)■data/class/pages/products/LC_Page_Products_List.php
① 197行目あたりを変更
SC_Response_Ex::sendRedirect(CART_URLPATH); exit; ↓(変更) //カゴに入れた直後にカート画面に飛ばない。携帯とスマートフォンには適用しない。 if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) { SC_Response_Ex::sendRedirect(CART_URLPATH); exit; } else { //セッションに商品を買った事を保持する $_SESSION['cart_buy_now'] = TRUE; //リンク元のURLにリダイレクトさせる SC_Response_Ex::sendRedirect($_SERVER['HTTP_REFERER']); exit; }
② 245行目あたりに追加 function action()内の一番最後
//カートに入れた状態をセッションで一時的に保持。アサイン後初期化。携帯とスマートフォンには適用しない。 if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE || SC_Display_Ex::detectDevice() == DEVICE_TYPE_SMARTPHONE) { } else { if ($_SESSION['cart_buy_now'] === true) { $_SESSION['cart_buy_now'] = ''; $this->CartBuyNow = true; } }
(2)■/data/Smarty/templates/default/products/list.tpl
一番下 の後に
<!--{if $CartBuyNow == true}--> <script type="text/javascript"> alert("カゴに商品が追加されました。"); </script> <!--{/if}-->