2

私のカートにはそれがあるので、商品を追加するとショッピング カートに移動し、クライアントはユーザーが [買い物を続ける] をクリックして、さらに買い物をするために追加されたアイテム カテゴリに戻ることを望んでいます。どうすればこれを行うことができますか?

カテゴリ URI セグメントは、ドメインの後の 1 です。

4

4 に答える 4

3

開けるcatalog/controller/product/category.php

if ($category_info) {約75行目で検索

入れた後の改行

$tmp = $this->request->get;
unset($tmp['route']);
$this->session->data['continue_redirect'] = $this->url->link('product/category', http_build_query($tmp));

カテゴリがセッション変数への有効なカテゴリである場合、そのコードは基本的にURLを現在のページのURLに設定します

開けるcatalog/controller/checkout/cart.php

$this->data['continue'] = $this->url->link('common/home');285行目あたりを探す

その行の後に、

if(!empty($this->session->data['continue_redirect'])) {
    $this->data['continue'] = $this->session->data['continue_redirect'];
    unset($this->session->data['continue_redirect']);
}

これは、カテゴリ コントローラで設定した continue_redirect セッション変数をチェックし、設定されている場合は続行 URL に割り当て、設定を解除して、そのカテゴリ情報を保持しないようにします。必要に応じて、行を削除します

unset($this->session->data['continue_redirect']);

これはテストされていませんが、1.3.x をインストールしていないため、理論上は動作するはずです。

于 2011-11-22T12:14:15.047 に答える
1

上記のジェイ・ギルフォードの回答に加えて、これを試してみたところ、別のインスタンスが見つかりました

$this->data['continue'] = $this->url->link('common/home');

258行目について。その後にコードを配置する必要もありました。そうしないと、バスケットが空の場合にのみリダイレクトが機能しました。

于 2012-04-01T09:46:34.590 に答える
1

これを行う最も簡単な方法は、アイテムのカテゴリへのパスを含む「カートに追加」リンクに GET パラメータを追加することだと思います。みたいなexample.com/shopping_cart.php?item=bunny_slippers&item_category=/categories/footwear/ことをするでしょう。あなたのアプリケーション構造がどのようなものかはわかりませんが、$category各カテゴリ ページに変数を設定してからその変数を GET パラメータに挿入するか、PHP の SERVER スーパーグローバルを使用してパス情報を取得することができます。

$_GET['item_category']次に、ショッピング カート ページで、変数を [ショッピングを続ける] リンクに挿入するだけです。もちろん、悪意のあるコードが含まれていないことを確認するために、最初にパラメーターの基本的なサニテーションを行う必要があります。

于 2011-11-21T07:04:13.827 に答える
0

カートに追加する前に最後のブラウジング カテゴリをリストしたクライアントに Cookie を設定するか、ユーザー セッションで設定することができます。

于 2011-11-21T05:41:03.720 に答える