有谁知道是否可以在第三方插件中使用旧版本的WooCommerce添加get_id()
方法,以便它与Google标签管理器插件一起使用?
我现在不想更新插件,因为它会搞砸网站。
有人知道这是否可能吗?
谢谢
是的,您可以在任何 WooCommerce 对象(如WC_Product
或WC_Order
对象(上使用 PHP 函数method_exists()
......
下面是一个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
对象...
你可以这样使用代码与旧版本兼容
global $woocommerce;
// if old version of WooCommerce
$product_object = version_compare( $woocommerce->version, '3.0', '<' ) ?
$order_data->get_product_from_item( $item ) : $item->get_product();