You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复WordPress WooCommerce的Uncaught Error错误

WooCommerce激活时出现“Uncaught Error: Attempt to assign property "translations" on null”的解决方案

错误原因

这个错误出现在WooCommerce的class-wc-helper-updater.php文件第81行,核心是代码尝试给null对象的translations属性赋值,常见触发场景:

  • WordPress的站点插件更新缓存(site transient)损坏,导致WooCommerce Helper获取到的更新数据为空
  • WooCommerce Helper组件初始化失败,可能是版本不兼容、文件残留问题(即使重装插件,缓存未清理也会遗留故障)
  • 第三方插件/主题修改了pre_set_site_transient_update_plugins过滤器,干扰了插件更新数据的正常返回

修复步骤

1. 清除插件更新缓存

这是最常见的解决方法,直接删除损坏的站点缓存:

  • 代码临时方案:在当前主题的functions.php末尾添加以下代码,刷新插件页面后立即删除这段代码:
    add_action( 'admin_init', function() {
      delete_site_transient( 'update_plugins' );
    } );
    
  • WP CLI方案:如果服务器支持命令行,执行:
    wp transient delete update_plugins
    

2. 校验版本兼容性

确保WooCommerce版本与当前WordPress版本完全匹配:

  • 若使用最新版WordPress,同步升级WooCommerce到官方稳定版;若使用旧版WP,选择对应兼容的WooCommerce版本。

3. 排查插件/主题冲突

  • 先停用所有非WooCommerce的插件,激活WooCommerce看错误是否消失
  • 若错误消失,逐个重新激活插件,找到引发冲突的插件后,要么更新该插件,要么替换为同类无冲突插件
  • 切换到WordPress默认主题(如Twenty Twenty-Four),验证是否是主题代码干扰导致的问题

4. 临时修复Helper文件(应急方案)

如果以上方法暂时无效,可临时修改代码避免错误:
找到文件/wp-content/plugins/woocommerce/includes/admin/helper/class-wc-helper-updater.php第81行,在赋值前增加null检查:
原代码:

$update->translations = $translations;

修改为:

if ( isset( $update ) && is_object( $update ) ) {
    $update->translations = $translations;
}

⚠️ 注意:此修改会在WooCommerce更新时被覆盖,仅作为临时应急,后续仍需找到根本原因。

5. 重置WooCommerce Helper连接

若错误与WooCommerce.com服务连接有关:
进入后台「WooCommerce > 设置 > 高级 > WooCommerce.com」,断开当前账号连接后重新登录授权。


内容的提问来源于stack exchange,提问作者Savvy Sage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:20:32