WooCommerce无法从产品类别访问购物车


WooCommerce cannot access cart from product class

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

看起来很简单:

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变量是否不可用?

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

针对 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();     
    }
}