Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WooCommerce无法从产品类访问购物车_Php_Wordpress_Class_Woocommerce_Cart - Fatal编程技术网

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

Php WooCommerce无法从产品类访问购物车,php,wordpress,class,woocommerce,cart,Php,Wordpress,Class,Woocommerce,Cart,我有一个自定义的Woocomece产品类型,我需要从其中访问购物车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

我有一个自定义的Woocomece产品类型,我需要从其中访问购物车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
变量是否不可用

如果是,是否有一些内部方法/变量来访问它?(特别是购物车?)

为WC 3更新+

使用
$woocmerce->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();     
    }
}

谢谢,这也不起作用,但我添加了一些代码来提供更好的上下文。我在自定义产品类型内的方法中调用它class@DavidTonarini如果可能的话,你能用完整的答案编辑你的问题吗?这样,如果其他人偶然发现这个问题,他们就会知道你做了什么?谢谢@肖恩:当然可以,但公认的答案已经包含了所有代码。我认为标准做法是保留问题的原样,在这种情况下,答案已经包含代码?如果不是这样,我将编辑问题OK。当我读到您在解决方案下面的评论时,我觉得您需要添加更多代码才能使其正常工作。