【记录】小插件,坏大事 (下单后没弹出发货页面)
最近接到几个客户说,付款了,没弹出发货页面。
( 软件网站 https://jingpin.vcts.cn )
最开始我以为,客户是互联网新手,不懂如何操作。
但是接二连三、重复发生了这个情况,我意识到出问题了。
我是怎么检查的呢?
1、检查网站主题的(正版)授权是否还在?
以前遇到过,授权不定期掉了,我得重新激活下授权。最近一年基本没掉了,这次也正常。
2、去主题售后群看看是否有人反馈这种情况
看下是我自己的问题,还是共性的。哎,没一个人反馈,那就不是主题模板的事了,是我的原因。
3、检查支付接口,都没毛病。
4、手动测试
使用了3个新的浏览器,打开,分别下单。付款后邮箱都能接到订单消息,但是依旧都不跳转。间隔5分钟后,才陆续跳转到发货页面。
这说明收款接口没问题,是缓存的问题。
回想一下,关于缓存,我前几天做三个设置:
php的两个扩展opcache和memcached,这俩肯定没问题,不再细说。
那就是最后一个了,当时我顺手安装了一个wp插件 WP Super Cache
这个插件也叫超级缓存,核心作用是把动态 PHP 页面变成静态 HTML 文件,大幅提速、降负载。
关键点找出来了
这个插件,就是导致 “付款成功但不跳转” 的元凶。
因为这个插件,是:第一次访问生成静态 HTML → 之后直接给 HTML(不跑 PHP、不查库,极快)
也有个重大的弊端:
- 付款、订单、下载页都是动态页面,必须实时执行 PHP、读取订单状态、验证权限。
- WP Super Cache 把它们变成了静态 HTML,导致:
- 下单后页面不刷新、不跳转,停在原地
- 下载链接不生成、不显示
- 订单状态不更新
于是赶紧关闭了这个插件,再测试,一切终于正常了。
踩坑记录在此,为后来人指路。
夜雨聆风