在我的购物车中,我有它,所以当您添加产品时,您会被带到购物车中,并且客户希望用户单击继续购物并被带回添加的商品类别以进行进一步购物。我怎么能这样做?
类别 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 会话变量,如果已设置,则将其分配给 continue URL,然后将其取消设置,使其不保留该类别信息。如果需要,请删除该行
unset($this->session->data['continue_redirect']);
请注意,这尚未经过测试,但理论上应该可以工作,因为我没有 1.3.x 安装
我认为最简单的方法是在“添加到购物车”链接中添加一个 GET 参数,该链接包含项目类别的路径。像example.com/shopping_cart.php?item=bunny_slippers&item_category=/categories/footwear/
会做的事情。我不确定您的应用程序结构是什么样的,但您可以通过$category
为每个类别页面设置一个变量然后将该变量插入 GET 参数来执行此操作,或者您可以使用 PHP 的 SERVER 超全局获取路径信息。
然后,在购物车页面上,您只需将$_GET['item_category']
变量插入“继续购物”链接即可。当然,您必须首先对参数进行基本清理,以确保其中没有任何恶意代码。
除了上面的 Jay Gilfords 回答之外 - 我刚刚尝试过这个并发现了另一个实例
$this->data['continue'] = $this->url->link('common/home');
关于第 258 行。我还需要在那之后放置代码,否则重定向仅在篮子为空时才有效。
您可以在添加到购物车之前在列出他们最后浏览类别的客户端上设置一个 cookie,或者您可以在他们的用户会话中设置它。