DavidTonarini DavidTonarini - 7 months ago 20
PHP Question

WooCommerce cannot access cart from product class

I have a custom WooComerce product type, and I need to access the cart url from within it.

Would seem simple enough:

class WC_Product_My_Product extends WC_Product_Simple {

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


However:

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


What can possibily be wrong?

Is the
$woocommerce
variable not available when defining a custom product class?

If so, is there some internal method / variable to access it? (Or the cart specifically?)

Answer

(edited)

Using $woocommerce->cart = new WC_Cart(); to create a new object instance is an apparently the solution to avoid error:

class WC_Product_My_Product extends WC_Product_Simple {

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