php wordpress woocommerce cart product

php - Obtenga en el carrito de WooCommerce la identificación del producto de un artículo del carrito



wordpress cart (1)

Para obtener la product ID del product ID de cada artículo del carrito en el bucle foreach (para un producto simple):

foreach( WC()->cart->get_cart() as $cart_item ){ $product_id = $cart_item[''product_id'']; }

Si es un producto variable, para obtener la variation ID :

foreach( WC()->cart->get_cart() as $cart_item ){ $variation_id = $cart_item[''variation_id'']; }

O para ambos casos (donde $cart_item[''data''] es el objeto WC_Product en Woocommerce 3+) :

foreach( WC()->cart->get_cart() as $cart_item ){ // compatibility with WC +3 if( version_compare( WC_VERSION, ''3.0'', ''<'' ) ){ $product_id = $cart_item[''data'']->id; // Before version 3.0 } else { $product_id = $cart_item[''data'']->get_id(); // For version 3 or more } }

Actualización: uso de ID de producto fuera del ciclo

1) Romper el ciclo (solo para obtener la primera ID del artículo (ID del producto) del carrito) :

foreach( WC()->cart->get_cart() as $cart_item ){ $product_id = $cart_item[''product_id'']; break; }

Puede usar directamente la variable $product_id del primer artículo en el carrito.

2) Uso de una variedad de ID de productos (uno para cada artículo en el carrito) .

$products_ids_array = array(); foreach( WC()->cart->get_cart() as $cart_item ){ $products_ids_array[] = $cart_item[''product_id'']; }

  • Para obtener la ID del producto del primer elemento: $products_ids_array[0];
  • Para obtener la identificación del producto del segundo elemento: $products_ids_array[1]; etc ...

Para verificar las categorías de productos o etiquetas de productos en el artículo del carrito, use WordPress has_term() como:

foreach( WC()->cart->get_cart() as $cart_item ){ // For product categories (term IDs, term slugs or term names) if( has_term( array(''clothing'',''music''), ''product_cat'', $cart_item[''product_id''] ) ) { // DO SOMETHING } // For product Tags (term IDs, term slugs or term names) if( has_term( array(''clothing'',''music''), ''product_tag'', $cart_item[''product_id''] ) ) { // DO SOMETHING ELSE } }

Siempre usamos $cart_item[''product_id''] cuando obtenemos el producto variable principal cuando un artículo del carrito es una variación del producto.

Las variaciones de productos no manejan ninguna taxonomía personalizada como categorías de productos y etiquetas de productos

$cart_item = $woocommerce->cart->get_cart();

Tengo el código de arriba.

si ejecuto print_r en cart_item obtengo una matriz multidimensional:

Array( [a6292668b36ef412fa3c4102d1311a62] => Array ( [product_id] => 6803

¿Cómo obtengo solo el product_id?

Intenté $ test = $cart_item[''data''];

print_r($test);

No funcionó