Esta entrada contiene una recapitulación de funciones para acceder y obtener toda la información del carrito de WooCommerce.
Acceder de forma rápida a cualquier dato del carrito de WooCommerce puede ahorrar tiempo en rebuscar en el código de tu tema o plugin para acceder a ese dato que necesitas.
Por ejemplo: obtener el total del carrito, los artículos del carrito, los cupones aplicados, el contenido total del carrito, el peso total, etc.
Este listado se orienta a los desarrolladores de plugins para WooCommerce, o bien que estén personalizando alguna función específica, dado que les será de utilidad.
Índice de contenidos
Si tienes acceso a la variable $cart
Las acciones y los filtros pueden usar parámetros adicionales, si permiten utilizar el objeto $cart todo se simplifica.
Tan solo tener en cuenta que si el objeto $cart está accesible, el objeto WC()->cart se trataría del mismo elemento, con la diferencia de que este último se le puede llamar de forma global en cualquier interfaz de WooCommerce.
En resumen:
$cart = WC()->cart;
Si no tienes acceso a $cart
Si no se tiene acceso directo al objeto $cart, puedes invocarlo a través de WC()->cart de forma global en cualquier página de tu WooCommerce.
La página del carrito utiliza este método, por ejemplo, para cargar el objeto del carrito, y tú también puedes hacerlo en cualquier lugar que necesites.
// Condicionales del carrito $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() // Obtiene 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(); 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(); // Información de cada elemento del carrito 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 = 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 ); } // Obtiene la dirección envío y facturación 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(); // Otra información WC()->cart->get_cross_sells(); WC()->cart->get_cart_item_tax_classes_for_shipping(); WC()->cart->get_cart_hash(); WC()->cart->get_customer();
Fuente: La entrada original la tienes en inglés en esta web
Deja tu comentario