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



有谁知道是否可以在第三方插件中使用旧版本的WooCommerce添加get_id()方法,以便它与Google标签管理器插件一起使用?

我现在不想更新插件,因为它会搞砸网站。

有人知道这是否可能吗?

谢谢

是的,您可以在任何 WooCommerce 对象(如WC_ProductWC_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();

最新更新