Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WooCommerce兼容性-在第三方插件中对旧版本使用get_id()方法_Php_Wordpress_Methods_Plugins_Woocommerce - Fatal编程技术网

Php WooCommerce兼容性-在第三方插件中对旧版本使用get_id()方法

Php WooCommerce兼容性-在第三方插件中对旧版本使用get_id()方法,php,wordpress,methods,plugins,woocommerce,Php,Wordpress,Methods,Plugins,Woocommerce,是否有人知道,是否可以在第三方插件中使用旧版本的WooCommerce添加get_id()方法,以便与Google tag manager插件配合使用 我现在不想更新插件,因为它会把网站搞得一团糟 有人知道这是否可能吗 谢谢是的,您可以在任何WooCommerce对象上使用PHP函数,如WC\u Product或WC\u Order对象 下面是一个使用WC\u Product对象$Product的示例: // WooCommerce retro-compatibility (compact) $

是否有人知道,是否可以在第三方插件中使用旧版本的WooCommerce添加
get_id()
方法,以便与Google tag manager插件配合使用

我现在不想更新插件,因为它会把网站搞得一团糟

有人知道这是否可能吗


谢谢

是的,您可以在任何WooCommerce对象上使用PHP函数,如
WC\u Product
WC\u Order
对象

下面是一个使用
WC\u Product
对象
$Product
的示例:

// WooCommerce retro-compatibility (compact)
$product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $order->id;
或者也可以使用version_compare()PHP函数:

// WooCommerce retro-compatibility (2)
if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
    // Older than 3.0
    $product_id = $product->id;
} else {
    // 3.0 and above
    $product_id = $product->get_id();
}
//电子商务追溯兼容性(2)

如果(version_compare(WC_version,'3.0',,那么这会起作用吗?
$product_id=method_存在($order,'get_id');
而不是这个?
$product_id=$product->get_id();
产品已经定义?@ciaranpflanagan我已经用
$Product
而不是
$order
更新了我的答案,
$Product
是一个已定义的现有WC_产品对象(就像旧版本的WooCommerce一样)…此答案允许为您的代码提供版本兼容性。因此,您的代码将与WC 2.6.x和WC 3+配合使用。为了澄清上述注释,产品变量已经定义。不确定我为什么添加?。抱歉,这是为了澄清第一条注释,因为我意识到,当我知道时,询问产品变量是否已经定义这可能有点让人困惑。谢谢,你的答案非常有效。完成了,使用你的代码向Woocommerce插件添加名为
get_id();
的函数,以便其他插件可以访问它,最好的方法是什么?例如,我有一个插件,它使用
get_id()进行集成;
函数,但我想避免编辑插件,以防将来更新它?
$product_id = version_compare( WC_VERSION, '3.0', '<' ) ? $product->id : $product->get_id();