Woocommerce结算页面畸形JSON及语法错误求助(avcpetstore.com)
WooCommerce结算页JSON解析错误(Unexpected token '<')排查方案
核心原因分析
控制台出现SyntaxError: Unexpected token '<'和Unable to fix malformed JSON,本质是WooCommerce结算时的AJAX请求本该返回标准JSON,但实际返回了HTML内容(比如PHP错误提示、主题/插件残留输出、空白字符),导致前端无法正常解析。
针对性排查与修复步骤
开启WP调试定位PHP错误
在网站根目录的wp-config.php中添加以下代码,开启调试后刷新结算页,查看PHP层面的报错(这类报错会以HTML形式输出,直接破坏JSON结构):define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );调试日志会生成在
wp-content/debug.log,重点关注结算页加载时触发的PHP警告或错误信息。清理代码中的多余输出
排查主题functions.php、自定义代码片段、WooCommerce相关模板文件,检查是否存在:- 多余的空白字符(比如PHP闭合标签
?>之后的空格、换行) - 未正确处理的
echo/print输出,这些内容会混入AJAX响应中
- 多余的空白字符(比如PHP闭合标签
检查AJAX接口的实际返回内容
打开浏览器开发者工具的「网络」标签,筛选XHR请求,找到包含wc-ajax=checkout关键词的结算请求,查看「响应」内容:- 如果返回的是HTML错误页(404/500等),确认固定链接是否设置为
/%postname%/格式,重新保存一次固定链接规则 - 如果返回的是混合错误提示的JSON,根据提示定位对应问题代码
- 如果返回的是HTML错误页(404/500等),确认固定链接是否设置为
排查服务器与缓存因素
- 临时禁用服务器端的OPcache、Redis等缓存工具,测试是否是缓存导致的响应异常
- 确认服务器PHP版本符合WooCommerce 7.0.0的要求(官方推荐PHP 7.4及以上)
- 检查
.htaccess文件是否存在异常重写规则,避免破坏AJAX请求路由
重装WooCommerce核心文件
下载WooCommerce 7.0.0版本的安装包,解压后覆盖网站wp-content/plugins/woocommerce目录,排除核心文件损坏引发的问题
内容的提问来源于stack exchange,提问作者ahad shafi
相关产品推荐
相关产品推荐

