【发布时间】:2021-02-15 16:46:15
【问题描述】:
我有一个带有 woocommerce 的 wordpress 商店,它启用了 paypal 付款。
我正在开发一个插件,它从购物车页面上的客户端收集一些数据,将这些数据存储在 woocommerce 会话中。然后客户去贝宝付款,然后在成功付款后被重定向回网站到我的插件应该执行其他任务的订单确认页面。
当我从我的计算机访问它时,这在我的测试站点上运行良好。但是,当我从我的 android 手机上尝试时,它对我不起作用。
当我从 Paypal 回来时,会话“似乎”丢失了,并且无法通过 Woocommerce 的 WC()->session->get 访问任何数据
有趣的是,数据仍然存在于数据库的会话表中,只是当我从 Paypal 重定向时它没有被加载。
为了尝试调试它,我在 index.php 中编写了 2 行代码,用于在每次加载网站时记录 Cookie 标头。当我浏览网站时,我可以看到正在记录的 cookie 数据。
但是,当从 paypal 导航返回时,Cookie 标头是空的,所以难怪会话没有被加载。
我的问题是,我该怎么做才能在我被重定向回网站后访问数据。
PS - 最棘手的部分是问题是间歇性的。我设法找到了一台带有浏览器的笔记本电脑,它的行为与我的 Android 手机完全一样,这样我就可以更轻松地检查问题,但是在进行了几次测试之后,它开始能够在从 paypal 导航回网站时访问会话数据。所以基本上现在“它正在工作”,即使从浏览器中清除所有站点数据,我也无法再次重现该问题。但我知道我办公室外的某些人仍然会遇到这个问题。
【问题讨论】:
标签: php wordpress session woocommerce paypal-sandbox