我有自定义购物车和结帐流程,因此根本不使用 sales_quote_*。就像Magento默认购物车表单一样,有3个提交按钮:更新购物车,继续购物和结帐。虽然"继续购物"按钮很容易,但我在更新购物车和结帐按钮方面遇到了问题。
如果用户单击"更新购物车",则没有问题,因为我可以将所有表单值捕获到会话中。问题是当用户直接单击结帐按钮时。这是因为一个表单不能有 2 个提交按钮。因此,我只需将"结帐"按钮重定向到控制器即可。
因此,如果用户直接单击"结帐"按钮,我将无法捕获某些表单值(如用户注释,自定义PO等)。有没有一种神奇的方法会在有人离开Magento页面时自动执行(类似于__contruct())?如果是,我想使用这种神奇方法来捕获表单值。
在 JQuery 中(我看到您在评论中要求解决),您可以绑定到这个:
$(window).bind('beforeunload', ...
我这里有一些代码,我不记得是从哪里来的:http://jsfiddle.net/Olavxxx/K4NCM/
使用 jQuery 的解决方案如下所示:
$(window).bind('beforeunload',function() {
var var1 = $("#element1").val();//maybe .text() depends on the element type and so on..
$.post('setSession.php',{var1:var1, var2:var2, var3:var3});
});
当然,如果您愿意,您可以使用$.get()
。也可以使用$.ajax()
,这只是基本结构。
祝你好运!