WooCommerce не может получить доступ к тележке из класса продукта

У меня есть пользовательский тип продукта 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 переменная $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(); } }