检查WooCommerce是否处于活动状态以及使用什么版本

时间:2019-05-13 15:19:53

标签: php wordpress plugins woocommerce version

我需要检查WooCommerce是否处于活动状态,并检查其版本号,以使其在新版本和旧版本中均能正常工作。

我发现WC_VERSION存储了版本号,因此,如果存在版本号,则也意味着WooCommerce处于活动状态。问题在于,只有在加载插件后,它才能返回任何内容。我想检查版本,然后在一般范围内在woocommerce_ver_check function之外使用。我可以在没有全局变量的情况下做到吗?

我想做这样的事情,但是woocommerce_ver_check()始终为null,因为它在WooCommerce加载之后执行,这与未分配给任何钩子的其余代码不同:

// Check WooCommerce version.
add_action('plugins_loaded', 'woocommerce_ver_check');
function woocommerce_ver_check() {
    if (defined('WC_VERSION')) return WC_VERSION; 
}

// Only if WooCommerce is active.
if (! woocommerce_ver_check() == null  ) {
    if ( version_compare( WC_VERSION, '3.0', '>=' ) ) {
        // new version code
    } else {
        // old version code
    }
}

1 个答案:

答案 0 :(得分:0)

您还可以尝试使用以下内容(用于WooCommerce第三方插件):

cols = ['Firstname', 'Name', 'Origine']
d = dict(zip(zip(*map(df2.get, cols)), df2.index))
z = [*zip(*map(df1.get, cols))]

df1.assign(
    IdRep=[*map(d.get, z)],
    isRep=lambda d: d.IdRep.notna()
)

对于新的WooCommerce 3 CRUD对象方法,您还可以使用if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { if ( version_compare( WC_VERSION, '3.0', '<' ) ) { // Old version code (example) $product_id = $cart_item['data']->id } else { // New version code (example) $product_id = $cart_item['data']->get_id(); } } ,例如:

method_exists()