blog webempresa

Información del carrito $cart en WooCommerce

por | Oct 27, 2023 | WooCommerce

Informacion carrito Woocommerce

WooCommerce ofrece una variedad de funciones que a menudo pasan desapercibidas para los usuarios convencionales. En este sentido, es esencial comprender la cantidad de datos que se pueden almacenar en el carrito de compra.

Por ejemplo, es común cuestionarse cómo obtener información específica del carrito como el total de la compra, los artículos en el carrito, las tarifas aplicadas, los cupones utilizados, el total de contenidos en el carrito, el peso total, etc.

Hemos visto previamente cómo acceder a la información del producto ($product) y los detalles del pedido ($order) a través de sus respectivos objetos. En esta ocasión, nos enfocaremos en examinar cómo obtener información del carrito a partir de la variable $cart en WooCommerce.

 ¿Qué es la variable $cart en WooCommerce?


info-carrito-woo-01

La variable $cart se refiere al objeto que representa el carrito de compras de un usuario en una tienda en línea. Este objeto contiene información sobre los productos que un cliente ha agregado al carrito, como nombres, cantidades, precios y otros detalles relacionados con las compras.

Los desarrolladores suelen utilizar esta variable para acceder y manipular la información del carrito, realizar cálculos de precios, aplicar descuentos a los clientes y llevar a cabo diversas acciones relacionadas con las compras en línea.

Por otra parte, la variable $cart puede ser interpretada como una lista especial que guarda los productos que alguien quiere comprar en una tienda online. La plataforma la toma como una caja donde se almacena información de interés relacionado con los productos que quiera el cliente como el nombre de los productos, cuántos hay y cuánto cuestan.

Básicamente, ayuda a controlar lo que la gente está comprando en una tienda en línea con WooCommerce.

 ¿Qué datos podemos obtener del carrito de WooCommerce con $cart?


Con la variable $cart en WooCommerce, es posible acceder a una variedad de datos relacionados con el carrito de compras de los clientes.

Entre los datos que podemos obtener podemos mencionar los siguientes:

Productos en el carrito: es posible ver qué productos ha agregado el cliente incluyendo nombres, cantidades y precios.

Subtotal y total: es posible calcular el subtotal de los productos en el carrito y el total final que el cliente deberá pagar incluyendo impuestos y envío.

Cupones y descuentos: es posible verificar si se han aplicado cupones o descuentos al carrito y ver cuánto se ha descontado del precio total.

Información del cliente: si el cliente ha proporcionado información adicional, como dirección de envío o comentarios, puedes acceder a estos datos.

Método de pago y envío: es posible obtener detalles sobre los métodos, pasarelas de pago y los métodos de envío seleccionados por el cliente.

Detalles del p: se puede acceder a información detallada sobre los pedidos en WooCommerce, como el número de pedido, la fecha y otros datos relacionados con la transacción.

Sin duda, la variable $cart brinda acceso a una amplia gama de información sobre lo que los clientes han agregado a sus carritos y les permite administrar y personalizar la experiencia de compra en la tienda en línea.

 Sacar información del carrito $cart en WooCommerce


Cuando se trata de la variable $cart, es esencial evaluar si tenemos acceso a ella o no. Examinaremos ambas situaciones para comprender mejor su uso.

 Si tenemos acceso a la variable $cart


Si utilizamos la variable $cart en combinación con las funciones Hooks (do_action y apply_filters), podemos aprovechar los argumentos adicionales que se transmiten a la función. Esta capacidad de personalización adicional nos permite manipular y ajustar diferentes aspectos del carrito y sus elementos de manera más eficiente.

Al tener acceso a la variable $cart, podemos realizar una variedad de operaciones, como realizar cálculos específicos en el carrito, modificar dinámicamente los precios de los productos o agregar elementos adicionales basados en ciertas condiciones. Esto puede ser especialmente útil al implementar lógica comercial específica o al adaptar la experiencia de compra según las necesidades de los clientes.

$cart = WC()->cart;

Contar con el objeto “$cart” a nuestra disposición es una gran ventaja. Sin embargo, dado que esta situación es poco común, más adelante exploraremos qué hacer si no tenemos acceso al objeto.

Es importante recordar que si podemos acceder al objeto “$cart”, este es idéntico al objeto “WC()->cart”, que se puede llamar globalmente en cualquier sección frontal del sitio web de WooCommerce.

 Si no tenemos acceso a la variable $cart


Como mencionamos anteriormente, si no podemos acceder directamente a la variable $cart, es posible invocarla de forma global en cualquier página del sitio web de WooCommerce.

Esto es posible gracias a WC()->cart; por ejemplo, la página del Carrito utiliza este método para cargar el objeto del carrito, y nosotros también podemos hacerlo en cualquier lugar que deseemos.

// Condicionales que se pueden tomar de $cart (if)
WC()->cart->is_empty()
WC()->cart->needs_payment()
WC()->cart->show_shipping()
WC()->cart->needs_shipping()
WC()->cart->needs_shipping_address()
WC()->cart->display_prices_including_tax()
 
// Obtención desde $cart los totales del carrito
WC()->cart->get_cart_contents_count();
WC()->cart->get_cart_subtotal();
WC()->cart->subtotal_ex_tax;
WC()->cart->subtotal;
WC()->cart->get_displayed_subtotal();
WC()->cart->get_taxes_total();
WC()->cart->get_shipping_total();
WC()->cart->get_coupons();
WC()->cart->get_coupon_discount_amount( 'coupon_code' );
WC()->cart->get_fees();
WC()->cart->get_discount_total();
WC()->cart->get_total(); // formatted string $123.99 
WC()->cart->get_total( 'edit' ); // unformatted float 123.99
WC()->cart->total;
WC()->cart->get_tax_totals();
WC()->cart->get_cart_contents_tax();
WC()->cart->get_fee_tax();
WC()->cart->get_discount_tax();
WC()->cart->get_shipping_total();
WC()->cart->get_shipping_taxes();
  
// Ciclo para obtener desde $cart los productos del carrito
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
   $product = $cart_item['data'];
   $product_id = $cart_item['product_id'];
   $variation_id = $cart_item['variation_id'];
   $quantity = $cart_item['quantity'];
   $price = WC()->cart->get_product_price( $product );
   $subtotal = WC()->cart->get_product_subtotal( $product, $cart_item['quantity'] );
   $link = $product->get_permalink( $cart_item );
   // Anything related to $product, check $product tutorial
   $attributes = $product->get_attributes();
   $whatever_attribute = $product->get_attribute( 'whatever' );
   $whatever_attribute_tax = $product->get_attribute( 'pa_whatever' );
   $any_attribute = $cart_item['variation']['attribute_whatever'];
   $meta = wc_get_formatted_cart_item_data( $cart_item );
}
 
// Obtención desde $cart datos de la facturacion y envios
WC()->cart->get_customer()->get_billing_first_name();
WC()->cart->get_customer()->get_billing_last_name();
WC()->cart->get_customer()->get_billing_company();
WC()->cart->get_customer()->get_billing_email();
WC()->cart->get_customer()->get_billing_phone();
WC()->cart->get_customer()->get_billing_country();
WC()->cart->get_customer()->get_billing_state();
WC()->cart->get_customer()->get_billing_postcode();
WC()->cart->get_customer()->get_billing_city();
WC()->cart->get_customer()->get_billing_address();
WC()->cart->get_customer()->get_billing_address_2();
WC()->cart->get_customer()->get_shipping_first_name();
WC()->cart->get_customer()->get_shipping_last_name();
WC()->cart->get_customer()->get_shipping_company();
WC()->cart->get_customer()->get_shipping_country();
WC()->cart->get_customer()->get_shipping_state();
WC()->cart->get_customer()->get_shipping_postcode();
WC()->cart->get_customer()->get_shipping_city();
WC()->cart->get_customer()->get_shipping_address();
WC()->cart->get_customer()->get_shipping_address_2();
 
// Otras consultas de interes
WC()->cart->get_cross_sells();
WC()->cart->get_cart_item_tax_classes_for_shipping();
WC()->cart->get_cart_hash();
WC()->cart->get_customer();

A continuacion vamos a presentar algunos ejemplos practicos en los que podemos emplear los metodos de WooCommerce descritos.

Verificar si el carrito está vacío:

if ( WC()->cart->is_empty() ) {
    echo 'Tu carrito está vacío. ¡Añade algunos productos!';
}

Mostrar el subtotal del carrito y el total formateado:

echo 'Subtotal: ' . WC()->cart->get_cart_subtotal();
echo 'Total: ' . WC()->cart->get_total();

Mostrar el subtotal del carrito y el total formateado:

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
    $product = $cart_item['data'];
    $product_id = $cart_item['product_id'];
    $quantity = $cart_item['quantity'];
    $price = $product->get_price();
    echo 'Nombre del producto: ' . $product->get_name();
    echo 'Precio: ' . wc_price( $price );
}

Obtención de productos relacionados y detalles de impuestos:

$cross_sells = WC()->cart->get_cross_sells();
$tax_classes = WC()->cart->get_cart_item_tax_classes_for_shipping();

 Conclusión


Entender cómo funcionan las variables de WooCommerce puede ser un desafío al principio, pero una vez que nos familiarizamos con los términos y la lógica detrás de su funcionamiento, todo comienza a tener más sentido.

La variable $cart en WooCommerce desempeña un papel crucial, ya que permite a los administradores de tiendas en línea comprender qué están comprando exactamente sus clientes. Esto significa que pueden ajustar precios, aplicar descuentos y gestionar las entregas de una manera más sencilla y eficiente.

En otras palabras, con esta información a mano, los dueños de las tiendas pueden adaptar la experiencia de compra para que sea más atractiva y personalizada para los clientes. Al mismo tiempo, les brinda una forma más sencilla de administrar todo el proceso de compras, lo que hace que dirigir una tienda en línea sea mucho más fluido y menos complicado.

También te puede interesar:

¿Te ha resultado útil este artículo?

Promo abril