最近要同时建几个站测试产品。为了方便,从第二个站开始就直接复制整站。

先复制WP的页面文件,然后导出原有Mysql的数据,最后导入新站。

可能因为数据比较多,所以导入新站的时候老是报错或者提示中断。试了几次后依然报错,但是数据库里面已经有表和数据。然后我就忽略报错(估计就是这个埋下隐患)......

(现在看不到出错的界面,只找到当时的视频截图)

新站搭建成功后发现个问题,Add to cart 失败,Buynow (插件:Buy Now Button for WooCommerce)失败。我考虑了下原因,认为是缓存引起的问题。所以我在Woocommerce --setting--status--tools,选择Clear customer sessions ,因为清除Session会删除所有客户会话数据,包括当前购物车和数据库中已保存的购物车。

果然,效果很明显,Add to cart 和 Buy now 都可以用了。

但好景不长,过了一会又显示购物车为空了。

因为Buynow那个插件的原理还是通过加购物车后转向到Checkout ,所以不能购买的原因依然是产品未能添加购物车。

因为老站是完全正常的,我估计新站出错的原因还是在导入数据库的时候并未完全成功。某些表结构可能存在问题。

于是我安装了 WP-Optimize,针对数据库做一些优化,包括缓存。 优化完成后问题依然存在, 看来问题比较棘手。

我又考虑,通过Ajax 把产品数据直接添加到购物车,这样试试看。本来准备改PHP ,后来发现居然还有这个插件 ,Ajax提交产品数据到购物车,看到受此困扰的家人们不少啊。于是立马装上插件,果不其然,用Ajax可以添加到购物车了。不过点Buy now 依然不会跳转到Checkout页面。

现在是可以加购,然后点进购物车去结算,但Buynow不能用。但这个时候我知道我的判断是正确的,就是导入数据库的时候,部分表结构受到破坏。既然和Session相关,那就先检查Session这个表结构。

果然Wp_woocommerce_sessions 损坏了,表中的 session_id 列未自动递增。然后我把这列改为自动增加.

问题成功解决,Buynow能跳转到Checkout页面了。

我在写这篇文章记录的时候,给人的感觉解决问题挺简单的,但实际还是花了一点时间。

总结下:显示出来的问题是,点击Buynow按钮后不能跳转到Checkout ,可能存在的原因有很多,主题冲突,插件冲突,缓存问题,Session问题,数据库问题......等等,也只能一项一项的去测试。 正确的做法是先找到问题的关键原因,这样才能少走弯路,尽快解决问题。

我是做跨境的老王, 今天的分享就到这里! 


点赞(4) 打赏

评论列表 共有 0 条评论

暂无评论

服务号

订阅号

备注【拉群】

商务洽谈

微信联系站长

发表
评论
立即
投稿
返回
顶部