1
有谁知道是否可以在第三方插件中添加旧版WooCommerce的get_id()
方法,因此它可以与Google标签管理器插件?WooCommerce兼容性 - 在第三方插件中使用get_id()方法与旧版本
我现在不想更新插件,因为它会搞砸网站。
任何人都知道是否有可能?
感谢
有谁知道是否可以在第三方插件中添加旧版WooCommerce的get_id()
方法,因此它可以与Google标签管理器插件?WooCommerce兼容性 - 在第三方插件中使用get_id()方法与旧版本
我现在不想更新插件,因为它会搞砸网站。
任何人都知道是否有可能?
感谢
是可以使用PHP函数method_exists()
任何WooCommerce对象像WC_Product
或WC_Order
对象上...
这里是WC_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();
}
,并以紧凑的方式是相同的:
$product_id = version_compare(WC_VERSION, '3.0', '<') ? $product->id : $product->get_id();
(在$product
是现有的和定义WC_Product
对象...)
所以这将工作? '$ product_id = method_exists($ order,'get_id');'而不是这个? '$ product_id = $ product-> get_id();'产品已经定义好了? –
@ciaranpflanagan我已经用'$ product'而不是'$ order'更新了我的答案...并且是'$ product'是已定义和现有的WC_Product对象*(就像在WooCommerce的旧版本中一样)* ...此答案允许为您的代码提供版本兼容性。因此,您的代码将与WC 2.6.x和WC 3+一起工作 – LoicTheAztec
只需清除上面的注释,就可以定义产品变量。不知道为什么我添加了? –