私のカートにはそれがあるので、商品を追加するとショッピング カートに移動し、クライアントはユーザーが [買い物を続ける] をクリックして、さらに買い物をするために追加されたアイテム カテゴリに戻ることを望んでいます。どうすればこれを行うことができますか?
カテゴリ URI セグメントは、ドメインの後の 1 です。
開ける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 をインストールしていないため、理論上は動作するはずです。
上記のジェイ・ギルフォードの回答に加えて、これを試してみたところ、別のインスタンスが見つかりました
$this->data['continue'] = $this->url->link('common/home');
258行目について。その後にコードを配置する必要もありました。そうしないと、バスケットが空の場合にのみリダイレクトが機能しました。
これを行う最も簡単な方法は、アイテムのカテゴリへのパスを含む「カートに追加」リンクに GET パラメータを追加することだと思います。みたいなexample.com/shopping_cart.php?item=bunny_slippers&item_category=/categories/footwear/
ことをするでしょう。あなたのアプリケーション構造がどのようなものかはわかりませんが、$category
各カテゴリ ページに変数を設定してからその変数を GET パラメータに挿入するか、PHP の SERVER スーパーグローバルを使用してパス情報を取得することができます。
$_GET['item_category']
次に、ショッピング カート ページで、変数を [ショッピングを続ける] リンクに挿入するだけです。もちろん、悪意のあるコードが含まれていないことを確認するために、最初にパラメーターの基本的なサニテーションを行う必要があります。
カートに追加する前に最後のブラウジング カテゴリをリストしたクライアントに Cookie を設定するか、ユーザー セッションで設定することができます。