Magento中是否有一种神奇的方法,当用户离开页面时会自动调用



我有自定义购物车和结帐流程,因此根本不使用 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(),这只是基本结构。

祝你好运!

最新更新