Php WooCommerce兼容性-在第三方插件中对旧版本使用get_id()方法
是否有人知道,是否可以在第三方插件中使用旧版本的WooCommerce添加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) $
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();