2012年3月14日カテゴリー:未分類

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

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

↓こちらのページで、さらに機能を追加
https://itoben.com/style/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行目あたりを変更

[php]
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;
}
[/php]

 337行目あたりに追加 function action()内の一番最後

[php]
//カートに入れた状態をセッションで一時的に保持。アサイン後初期化。携帯とスマートフォンには適用しない。
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’];
}
[/php]

(2)■/data/Smarty/templates/default/products/detail.tpl
 45行目あたりを変更

[php]

② 一番下 の後に

[php]



[/php]

2 商品一覧ページ

(1)■data/class/pages/products/LC_Page_Products_List.php
 197行目あたりを変更

[php]
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;
}
[/php]

 245行目あたりに追加 function action()内の一番最後

[php]
//カートに入れた状態をセッションで一時的に保持。アサイン後初期化。携帯とスマートフォンには適用しない。
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;
}
}
[/php]

(2)■/data/Smarty/templates/default/products/list.tpl
一番下 の後に

[php]



[/php]