magento产品成功添加到购物车后跳转到不同页面 添加 add to cart 按钮
1 添加产品到购物车成功后是跳转到购物车页面或不跳转。这个在后台可以设置
system -》 configuration -》 After Adding a Product Redirect to
Shopping Cart – Yes/No”
这个是设置成功添加产品后是跳转到购物车页面,还是不跳转
2 修改默认的跳转页面
可以在app\design\frontend\default\theme173\template\catalog\product\view.phtml
<input type="hidden" name="return_url"
value="yoururl" />
将url替换成要跳转的页面的url就可以了。
3 添加一个add to cart的按钮
两个按钮可以一个自动跳转到购物车页面,一个不跳转,中文网站中,一般有一个立即购买(跳转到购物车页面),一个添加到购物车(不跳转停留在原来页面)。
解决这个的办法就是重写控制器Checkout-CartController
1)创建模块目录和文件
- Magento/app/code/local/MyNameSpace/MyCheckout/etc/config.xml
- Magento/app/code/local/MyNameSpace/MyCheckout/controllers/CartController.php
- Magento/app/etc/modules/MyNameSpace_MyCheckout.xml
2)编辑Magento/app/code/local/MyNameSpace/MyCheckout/etc/config.xml
<?xml version="1.0"?><config> <modules> <MyNameSpace_Mycheckout> <version>0.1.0</version> </MyNameSpace_Mycheckout> </modules> <frontend> <routers> <MyNameSpace_Mycheckout> <use>standard</use> <args> <module>MyNameSpace_Mycheckout</module> <frontName>mycheckout</frontName> </args> </MyNameSpace_Mycheckout> </routers> </frontend> <global> <routers> <checkout> <rewrite> <cart> <to>mycheckout/cart</to> <override_actions>true</override_actions> <actions> <add> <to>mycheckout/cart/add</to> </add> </actions> </cart> </rewrite> </checkout> </routers> </global></config>
3)编辑
/controllers/CartController.phpMagento/app/code/local/MyNameSpace/MyCheckout/controllers/CartController.php
<?phprequire_once 'Mage/Checkout/controllers/CartController.php';class MyNameSpace_Mycheckout_CartControllerextends Mage_Checkout_CartController{ publicfunction addAction() { $cart = $this->_getCart(); $params= $this->getRequest()->getParams(); try{ if(isset($params['qty'])) { $filter= new Zend_Filter_LocalizedToNormalized( array('locale'=>
Mage::app()->getLocale()->getLocaleCode()) ); $params['qty']
= $filter->filter($params['qty']); } $product= $this->_initProduct(); $related= $this->getRequest()->getParam('related_product'); if(!$product)
{ $this->_goBack(); return; } $cart->addProduct($product,$params); if(!empty($related))
{ $cart->addProductsByIds(explode(',',$related)); } $cart->save(); $this->_getSession()->setCartWasUpdated(true); Mage::dispatchEvent('checkout_cart_add_product_complete', array('product'=> $product,'request' => $this->getRequest(), 'response' => $this->getResponse()) ); if(!$this->_getSession()->getNoCartRedirect(true))
{ if(!$cart->getQuote()->getHasError()){ $message= $this->__('%s
was added to your shopping cart.',
Mage::helper('core')->htmlEscape($product->getName())); $this->_getSession()->addSuccess($message); } if($returnUrl =$this->getRequest()->getParam('return_url'))
{ //
clear layout messages in case of external url redirect if($this->_isUrlInternal($returnUrl))
{ $this->_getSession()->getMessages(true); } $this->getResponse()->setRedirect($returnUrl); }elseif (!Mage::getStoreConfig('checkout/cart/redirect_to_cart') &&
!$this->getRequest()->getParam('in_cart') &&$backUrl = $this->_getRefererUrl()) { $this->getResponse()->setRedirect($backUrl); }else { if(($this->getRequest()->getActionName()
== 'add') &&
!$this->getRequest()->getParam('in_cart'))
{ $this->_getSession()->setContinueShoppingUrl($this->_getRefererUrl()); } if($this->getRequest()->getParam('noCheckoutYet')=="yes") $this->getResponse()->setRedirect($this->_getRefererUrl()); else $this->_redirect('checkout/cart'); } } } catch(Mage_Core_Exception $e) { if($this->_getSession()->getUseNotice(true))
{ $this->_getSession()->addNotice($e->getMessage()); }else { $messages= array_unique(explode("\n",$e->getMessage())); foreach($messages as$message)
{ $this->_getSession()->addError($message); } } $url= $this->_getSession()->getRedirectUrl(true); if($url) { $this->getResponse()->setRedirect($url); }else { $this->_redirectReferer(Mage::helper('checkout/cart')->getCartUrl()); } } catch(Exception $e) { $this->_getSession()->addException($e,$this->__('Cannot add the item to shopping
cart.')); $this->_goBack(); } }}
4)编辑文件
Magento/app/etc/modules/MyNameSpace_MyCheckout.xml
<?xml version="1.0"?><config> <modules> <MyNameSpace_Mycheckout> <active>true</active> <codePool>local</codePool> </MyNameSpace_Mycheckout> </modules></config>
5)编辑文件
Magento/app/design/frontend/[myinterface]/[mytheme]/layout/checkout.xml
<camelweb_mycheckout_cart_index> <updatehandle="checkout_cart_index"/></camelweb_mycheckout_cart_index>
6)
在模版文件中添加 “Add to cart”按钮view/addtocart.phtml
<?php $_product =$this->getProduct()
?><?php if($_product->isSaleable()):
?> <divclass="add-to-cart"> <?phpif(!$_product->isGrouped()):
?> <labelfor="qty"><?phpecho $this->__('Qty:')
?></label> <input
type="text" name="qty"id="qty" maxlength="12"value="<?php echo
$this->getMinimalQty($_product)
?>" title="<?php echo
$this->__('Qty') ?>"class="input-text
qty" /> <?phpendif;
?> <button
type="button" title="<?php echo
$this->__('Add to Cart') ?>"class="button
btn-cart" onclick="productAddToCartForm.submit()"><span><span><?phpecho $this->__('Add to Cart')
?></span></span></button> <br
/>
<!--自定义添加的add
to cart的按钮--> <a
href="<?php echo
Mage::getUrl('checkout/cart/add', array('product' =>
$_product->getId(),
'noCheckoutYet'=>'yes'))
?>">Add to cart
2</a> <?phpecho $this->getChildHtml('', true, true)
?> </div><?php endif;
?>7)清下缓存,然后后台设置下跳转或不跳转,或者根据本文的第二方法,添加下代码,让默认的不跳转,我们重新添加的add to cart
按钮不跳转
magento产品成功添加到购物车后跳转到不同页面 添加 add to cart 按钮的更多相关文章
- 关于WordPress登录后跳转到指定页面
前面在写模版的时候,有朋友要求网站登录后要跳转的到指定的页面.这个从前还真没遇到过.于是就用万能的搜索(很少百度)找了下,方法基本上就是一个,代码如下: <?php // Fields f ...
- shiro控制登陆成功后跳回之前的页面
登陆之后跳回之前的页面是在做登陆注册模块时遇到的一个需求,也是很有必要的.若用户直接访问登陆页面,那可以控制它直接到首页,但是要用户没有登陆直接访问自己的购物车等需要经过身份认证的页面,或者因为ses ...
- web.config中配置页面出错后跳转指定错误页面
每当用户访问错误页面时,会出现不友好的404错误,所以为了防止这种不友好,我们在web.config中的<system.web>节点下配置 <customErrors>,在出现 ...
- layui弹窗里面 session过期 后跳转到登录页面
1.在登录页面添加 <script> $(function () { if (top != window) { layer.msg("登录失效", {icon: 5}) ...
- MVC 访问IFrame页面Session过期后跳转到登录页面
Web端开发时,用户登录后往往会通过Session来保存用户信息,Session存放在服务器,当用户长时间不操作的时候,我们会希望服务器保存的Session过期,这个时候,因为Session中的用户信 ...
- php弹窗后跳入另一个页面
之前写项目时,在跳转页面前加入一个弹窗,发现弹窗没有弹出来就直接跳转了,之前使用的header跳转发现不行,换成location.href也不行,后来再location.href前加入一个parent ...
- 编写Servlet,验证用户登录,如果用户名与密码都为“admin”则验证通过,跳转欢迎页面,否则弹出提示信息“用户名或密码错误,请重新输入!”,点击“确定”后跳转至登录页面
java代码:(Test1) package com.test; import java.io.IOException; import java.io.PrintWriter; import java ...
- C#-WebForm-点击网页中的按钮后跳转到其他页面是怎么实现的?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- session失效后跳转到登陆页面
一.编写Filter拦截器类 package com.pv.utils; import java.io.IOException; import java.io.PrintWriter; import ...
随机推荐
- IE10 CSS hack,IE兼容问题
IE10 CSS hack,IE兼容问题 作者: 雪影 发表于2013 年 4 月 25 日 分类:技术分享 | 暂无评论 | 人气: 376 度 首先,ie10不支持条件注释了. 方法一:特性检测: ...
- CSS 收集
margin:0 auto margin后面如果只有两个参数的话,第一个表示top和bottom,第二个表示left和right, 因为0 auto,表示上下边界为0,左右则根据宽度自适应相同值(即居 ...
- netty4 Handler的执行顺序
转载:https://my.oschina.net/jamaly/blog/272385 Handler在netty中,无疑占据着非常重要的地位.Handler与Servlet中的filter很像,通 ...
- Installing a single-server IBM FileNet P8 Platform system with IBM Content Navigator
Product documentation Abstract You can install all of the IBM FileNet P8 Platform components on a si ...
- The C10K problem
原文链接:http://www.kegel.com/c10k.html It's time for web servers to handle ten thousand clients simulta ...
- java之trycatchfinally代码块与return,throw的执行顺序的探索
时光荏苒,转眼间毕业都半年了,java编程也五个月了.写代码的过程中,会经常遇到解决代码抛异常的情况.平时只注重完成功能,也没太注意try_catch_finally的内在执行顺序,只知道表面的现象: ...
- 免费提供一些公开的SOCK4/5/HTTP/HTTPS代理服务器(经测试可以用)
Last update IP address Port Country Type Anonymity 54 secs 116.228.55.217 8000 flag China HTTP High ...
- cmd打开控制面板及其他命令
如果你在权限较小的域用户的机器上,要做一些管理操作,就不可避免的要使用cmd打开一些以前只能在图形界面里打开的程序.下面是我收集的一些常用操作. 以某个身份启动程序:runas /user:it\n1 ...
- java获取页面编码
文章出自:http://babyjoycry.javaeye.com/blog/587527 在此感谢原作者...\(^o^)/~ 最近研究抓取网页内容,发现要获取页面的编码格式,Java没有现成 ...
- Program A-归并排序
Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...