【问题标题】:WooCommerce cannot access cart from product classWooCommerce 无法从产品类访问购物车
【发布时间】:2016-04-24 13:05:17
【问题描述】:

我有一个自定义 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 变量是否不可用?

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

【问题讨论】:

    标签: php wordpress class woocommerce cart


    【解决方案1】:

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

    【讨论】:

    • 谢谢,这也不起作用,但我添加了更多代码以提供更好的上下文。我在自定义产品类型类中的一个方法中调用它
    • @DavidTonarini 如果可能的话,你能否用完整的解决方案编辑你的问题,这样如果其他人偶然发现这个问题,他们就会知道你做了什么?谢谢!
    • @Shawn 当然可以,但接受的答案已经包含所有代码。我认为将问题保持原样是标准做法,在这种情况下,因为答案已经有代码?如果不是这样,我将编辑问题
    • 好的。当我在解决方案下方阅读您的评论时,我觉得您必须添加更多代码才能使其正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2014-02-06
    • 2017-04-28
    • 2014-11-21
    • 1970-01-01
    相关资源
    最近更新 更多