¿Cómo uso wc() en woocommerce?

2 minutos de lectura

avatar de usuario
byronyasgur

Estoy trabajando en el uso de la wc() función en woocommerce. La documentación lo dice Returns the main instance of WC to prevent the need to use globals.

No puedo encontrar ningún ejemplo del uso de esto y me gustaría saber cómo usar wc() para hacer algunas cosas básicas. Entiendo que devuelve la instancia principal de woocommerce; y de eso puedo extraer todos los datos que necesitaría; pero desconozco la sintaxis para su uso correcto… ¿podría ser algo así?

$foo = WC();
$bar = $foo->cart;
echo $bar;

¿Podría alguien corregir esto?

También estoy tratando de entender cuáles son las ventajas de hacerlo de esta manera en lugar de globalizar variables.

avatar de usuario
Reigel Gallarde

como dice el documento en su enlace. ‘prevenir la necesidad de usar globales’. Un ejemplo sería así…

código usando global.

global $woocommerce;
$customer_country = $woocommerce->customer->get_country();

código que no usa global

$customer_country = WC()->customer->get_country(); 
// some servers may not like like this... best is to use variables like $foo = WC(); then use $foo->customer->get_country()...

¿Cómo usar WC()? empieza aqui

¿Por qué debo evitar global?

  • Vaya, mucho más fácil de lo que pensaba, gracias, todo tiene mucho sentido.

    – byronyasgur

    16 de marzo de 2015 a las 14:22

  • No está relacionado con la pregunta original, pero ¿por qué la gente siempre lo escribe como WC() no wc(). ¿Cualquier razón?

    – Fahmi

    8 de febrero de 2018 a las 2:58

  • @tfont querías decir wc ? Está escrito en minúsculas en el código fuente.

    – Fahmi

    24 de marzo de 2018 a las 12:03

  • @Fahmi ¡Ahora me hiciste investigar un poco! Y la versión 3.2.6 tiene WC() pero la versión 3.4.0 tiene wc(). La documentación usa wc pero su URL tiene WC … en pocas palabras, parece que se están usando en un asunto intercambiable. no importa ya que PHP no distingue entre mayúsculas y minúsculas. docs.woocommerce.com/wc-apidocs/function-WC.html

    – fuente

    27 de marzo de 2018 a las 8:30


  • interesante: no sabía que php no distingue entre mayúsculas y minúsculas.

    – mago

    30 de octubre de 2018 a las 13:03


WC() es solo una función que devuelve una instancia de la clase woocommerce.

1) asegúrese de incluir la referencia al archivo donde se encuentra la función (vea cómo hacerlo aquí):

include_once WP_PLUGIN_DIR .'/woocommerce/woocommerce.php';

2) una vez que tenga eso, simplemente puede agregar una variable local que apunte a la instancia actual de woocommerce:

$myWC = WC();

$myWC->cart->calculate_fees();

  • Es poco probable que necesite incluir woocommerce.php a menos que esté haciendo algo muy especializado, por ejemplo, implementación personalizada de ajax

    – Zakalwe

    14 de junio de 2021 a las 17:28

¿Ha sido útil esta solución?