EC-CUBE:カゴに入れた直後にカート画面に飛ばないようにする

**********************************************

↓こちらのページで、さらに機能を追加
http://www.itoben.com/blog/504.html

**********************************************

カゴに入れた直後にカート画面に飛ばないようにするとともに、「カゴに商品が追加されました」というメッセージを表示する。

下記のようにコード2行をコメントアウトするだけでもカート画面に飛ばなくなるが、ブラウザの更新ボタンをクリックすると、カゴの中の数量が1つずつ増えてしまうので、ちょっとだけ手の込んだカスタマイズをする。

★なお、携帯とスマートフォンには適用しない。

// SC_Response_Ex::sendRedirect(CART_URLPATH);
// exit;

▼商品詳細ページ(Firefox)

商品一覧ページ(IE)

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}-->