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

本地WampServer升级WordPress后遇wpdb属性未定义等多类技术问题求助

问题解决方案

1. 修复 Undefined property: wpdb::$actionscheduler_actions 警告

这个问题是WordPress的wpdb类无法识别actionscheduler_actions表的引用,本质是Action Scheduler(WooCommerce依赖的任务调度组件)的表未正确创建或注册:

  • 先检查数据库中是否存在对应前缀的actionscheduler_actions表(比如你的WordPress前缀是aa_,则表名应为aa_actionscheduler_actions)。如果不存在,执行以下SQL手动创建:
    CREATE TABLE aa_actionscheduler_actions (
        action_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
        hook varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
        args longtext COLLATE utf8mb4_unicode_ci NOT NULL,
        schedule longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
        scheduled_date_gmt datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
        scheduled_date_local datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
        modified_gmt datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
        status varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pending',
        group_id bigint(20) unsigned NOT NULL DEFAULT 0,
        attempts int(11) NOT NULL DEFAULT 0,
        last_attempt_gmt datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
        last_attempt_message text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
        PRIMARY KEY (action_id),
        KEY hook (hook),
        KEY status (status),
        KEY scheduled_date_gmt (scheduled_date_gmt),
        KEY group_id (group_id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
  • 若表已存在仍报错,在主题functions.php中临时添加以下代码强制注册表名,操作完成后记得删除:
    add_action('init', function() {
        global $wpdb;
        $wpdb->actionscheduler_actions = $wpdb->prefix . 'actionscheduler_actions';
    });
    
  • 也可以尝试禁用并重新启用WooCommerce,触发Action Scheduler的表初始化流程。

2. 修复 Vc_Manager::__wakeup() must have public visibility 警告

这个问题是WPBakery Page Builder(js_composer插件)版本不兼容PHP 8.0导致的——PHP 8.0要求魔术方法__wakeup()必须设置为public可见性:

  • 优先更新WPBakery Page Builder到支持PHP 8.0的最新版本,这是最彻底的解决方式。
  • 若暂时无法更新,手动修改插件文件:打开C:\wamp64\www\aa\wp-content\plugins\js_composer\include\classes\core\class-vc-manager.php,找到__wakeup()方法,将其可见性从protected或private改为public。例如:
    原代码:
    protected function __wakeup() {
        // 原有逻辑代码
    }
    
    修改后:
    public function __wakeup() {
        // 原有逻辑代码
    }
    

3. 修复 Table 'T.a' doesn't exist 数据库错误

这个错误是因为查询语句使用了表别名a,但未指定对应的实际表名,结合查询的hook(woo_sc_import_coupons_from_csv),推测是某款WooCommerce优惠券导入插件的代码问题:

  • 确认数据库中存在对应前缀的actionscheduler_actions表,若不存在按第一个问题的方法创建。
  • 找到触发该查询的插件(搜索woo_sc_import_coupons_from_csv关键词定位),将其更新到最新版本,新版本通常会修复表名引用错误。
  • 若更新后仍报错,临时禁用该插件,或手动修改插件内的查询语句,将FROM a改为FROM aa_actionscheduler_actions a(替换为你的实际表名)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:17:43