WooCommerce 无法从产品 class 访问购物车

WooCommerce cannot access cart from product class

我有一个自定义的 WooComerce 产品类型,我需要从其中访问购物车 url。

看起来很简单:

class WC_Product_My_Product extends WC_Product_Simple {

 public function some_method() {
  global $woocommerce; 
  $href = $woocommerce->cart->get_cart_url();     
 }
}

但是:

 Fatal error: Call to a member function get_cart_url() on a non-object

可能有什么问题?

定义自定义产品时 $woocommerce 变量是否不可用 class?

如果是这样,是否有一些内部方法/变量可以访问它? (或者特别是购物车?)

Updated for WC 3+

使用$woocommerce->cart = new WC_Cart();创建一个新的对象实例显然是避免错误的解决方案:

class WC_Product_My_Product extends WC_Product_Simple {

    public function some_method() {
        WC()->cart = new WC_Cart();
        $href = WC()->cart->get_cart_url();     
    }
}