在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?
谢谢!
答案 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