手动运行WooCommerce DB更新程序?

时间:2016-03-02 03:23:05

标签: wordpress woocommerce

在WordPress网站上,我们尝试更新WooCommerce订阅插件。它有部分方式,但后来因此消息失效:

  

WooCommerce订阅处于无效状态。此版本的订阅需要WooCommerce 2.3或更新版本。请将WooCommerce更新到2.3或更新版本

我们正在运行WooCommerce 2.5.3 ......所以已经比2.3更新了。

使用WooCommerce输入票证会产生以下消息:

  

看起来您的WooCommerce数据库需要更新!在WordPress管理员中运行数据库更新程序。您仍然可以在下面提交票证。

在Woocommerce区域有一个系统状态报告区域。它显示:

  

数据库
     WC数据库版本:

     

woocommerce_sessions✔

这是WC数据库版本的空白。

WC数据库版本存储在哪里?我们可以更新吗?或者手动运行DB Updater?

谢谢!

4 个答案:

答案 0 :(得分:3)

如果您想从CMS手动触发WooCommerce数据更新,可以使用此网址:

wp-admin/admin.php?page=wc-settings&do_update_woocommerce=1

答案 1 :(得分:1)

好吧,实际上,在IT经理和我之间,我想我们已经明白了这一点。

woocommerce-subscriptions.php会检查文件顶部附近的woocommerce_db_version选项。

if ( ! is_woocommerce_active() || version_compare( get_option( 'woocommerce_db_version' ), '2.3', '<' ) ) {
        add_action( 'admin_notices', 'WC_Subscriptions::woocommerce_inactive_notice' );
        return;
}

get_option是一种检查wp_options表的方法。 https://codex.wordpress.org/Function_Reference/get_option

缺少woocommerce_db_version选项。所以......插入语句让它表现得很好!

insert into wp_options (option_name, option_value, autoload) Values ('woocommerce_db_version', '2.5.3', 'yes');

答案 2 :(得分:1)

我遇到了同样的问题。我检查了MySQL wp_options表,Woocommerce版本叫做woocommerce_version,而不是woocommerce_db_version。所以我改变了:

if(!is_woocommerce_active()|| version_compare(get_option('woocommerce_db_version'),'2.3','&lt;')){         add_action('admin_notices','WC_Subscriptions :: woocommerce_inactive_notice');         返回; }

以下内容:

if(!is_woocommerce_active()|| version_compare(get_option('woocommerce_version'),'2.3','&lt;')){         add_action('admin_notices','WC_Subscriptions :: woocommerce_inactive_notice');         返回; }

这解决了我的问题。 ... JohnDF

答案 3 :(得分:1)

我尝试了该线程中的答案,包括URL技巧,但截至2019年8月,它们似乎没有起作用并强制执行Woo更新。

我发现强制WooCommerce更新的最佳方法是通过WP CLI并运行以下命令:

wp wc update