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