php - 离开woocommerce网站时如何清洁购物车
问题描述
我正在使用此代码来清洁购物车:
/ * empty cart if user come to homepage * /
add_action ('init', 'woocommerce_clear_cart_url');
function woocommerce_clear_cart_url () {
global $ woocommerce;
if ($ _SERVER ['REQUEST_URI'] === '/') {
$ woocommerce-> cart-> empty_cart ();
}
}
当我访问主页时它会清理,我希望每次客户关闭我的网站时都会清理它。
解决方案
一般来说,您不想在用户离开时清理购物车。如果有的话,您想保留购物车的内容以备不时之需,从而优化销售。
购物车的内容很可能与会话 ID 相关联,因此当用户会话过期时,它最终会丢失。
如果你想这样做,这里有一个可能的解决方案:
为了检测网站的“离开”,需要一些客户端代码;您不能仅使用服务器端代码来实现这一点。
也就是说,您需要使用 JavaScript 并挂钩* 事件,然后使用Beacon APIunload
向服务器发送异步请求,然后服务器可以执行清理。您需要使用信标 API,因为:
与使用 XMLHttpRequest 或 Fetch API 发出的请求不同,浏览器保证在页面卸载之前启动信标请求并运行它们直到完成。
* 请注意,该unload
事件并不完全可靠。有关详细信息,请参见1 。
推荐阅读
- waf - 基于特征的一个输入的多个输出
- tensorflow - 对于从命令行工作的同一模型,tensorflow-serving 给了我一个“被喂入和获取”错误
- python - 我正在读入一个 256 字节的字符串。我想跳过它,如果都是二进制零 (\x00) 是否有一个测试?
- ios13 - iOS 13 beta 中的 UIMenuController 显示为透明背景而不是黑色背景
- windows - 从 Powershell 执行 cmd.exe 命令并传递参数
- javascript - 将对象作为参数传递给javascript中的处理函数时,为什么我不能重新分配对象?
- xmlhttprequest - Internet Explorer 11 和 XMLHttp 响应中的 0xEF 0xBF 0xBF
- c# - 当手机倒置时,由加速度计控制的 Unity 平台旋转方向错误
- amazon-web-services - Amazon Route 53 - 未向 IAM 用户显示已注册域
- javascript - 函数装饰器中的return语句的目的是什么