Was ist der Unterschied zwischen WC () und $ woocommerce?

Ich möchte einige WooCommerce-Sitzungsvariablen aufheben, da beim Laden der Seite die von mir verwendeten Hooks nicht ausgetriggers wurden, wodurch vorherige Sitzungsdaten die Checkout-Versandtabelle füllen.

Innerhalb der functionen, auf die ich von den Hook-Callbacks aus zugreife, kann ich auf WooCommerce-Session-Vars zugreifen:

WC()->session->get('foo');

Außerhalb dieser callbacke ist WC jedoch nicht definiert. Ich habe versucht Einstellung:

global $woocommerce; und Zugriff über $woocommerce->session->__unset('foo'); aber habe die Nachricht bekommen:

Versuchen, Eigenschaft von Nicht-Objekt zu erhalten

und der Fehler:

Fataler Fehler: Uncaught Error: Aufruf einer Memberfunktion __unset () für null

Also, klar dieser $woocommerce global ist nicht das gleiche wie WC (was ich denke, ist von den Haken ausgesetzt?)

Ich denke, dass ich diese Variablen mit einem der ersten Haken, die auf der Checkout-Seite ausgetriggers werden, deaktivieren kann, aber ich habe mich gefragt:

Was ist der Unterschied zwischen WC() und $woocommerce ? Sind das nicht beide Möglichkeiten, auf WooCommerce-Methoden zuzugreifen?

Solutions Collecting From Web of "Was ist der Unterschied zwischen WC () und $ woocommerce?"

wc(); Gibt die Singleton-Instanz von WooCommerce , um die Verwendung von Globals zu verhindern.

WC setzt den $woocommerce global auf diese Weise: $GLOBALS['woocommerce'] = wc(); , so scheint das eine oder das andere gleich zu sein …

BEARBEITEN

Über deine Fehler hast du sie bekommen, weil $woocommerce->session nicht gesetzt wurde. WC initialisiert WC_Session_Handler nur für Frontend- oder CRON-Anforderungen. Wählen Sie Ihren Aktionshaken entsprechend.