【问题标题】:WooCommerce compatibility - using get_id() method with older versions in third party pluginsWooCommerce 兼容性 - 在第三方插件中使用 get_id() 方法和旧版本
【发布时间】:2017-07-19 21:10:37
【问题描述】:

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

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

有人知道这是否可能吗?

谢谢

【问题讨论】:

    标签: php wordpress methods plugins woocommerce


    【解决方案1】:

    是的,您可以在任何 WooCommerce 对象上使用 PHP 函数 method_exists(),例如 WC_ProductWC_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-&gt;get_id(); 产品已定义?
    • @ciaranpflanagan 我已经用$product 而不是$order 更新了我的答案……是的,$product 是一个已定义且现有的 WC_Product 对象(就像在旧版本的 WooCommerce 中一样) ...这个答案允许为您的代码提供版本兼容性。所以你的代码也适用于 WC 2.6.x 和 WC 3+
    • 只是为了澄清上面的评论,已经定义了产品变量。不知道为什么我添加了一个?。
    • 抱歉,这是为了澄清第一条评论,因为我意识到在我知道产品 var 是否已经定义时询问它是否已经定义可能有点令人困惑。谢谢,你的回答很完美
    • 完成了,使用您的代码将名为get_id(); 的函数添加到 Woocommerce 插件以便其他插件可以访问它的最佳方法是什么。例如,我有一个使用get_id(); 函数集成的插件,但我想避免编辑插件以防将来要更新它?
    【解决方案2】:

    你可以像这样使用旧版本的代码兼容性

    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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2023-01-31
      • 2016-10-22
      相关资源
      最近更新 更多