La camisa tiene rojo, azul para producto variable.
“Camisa Roja” tiene una cantidad de existencias de 3
“Camisa Azul” tiene una cantidad de existencias de 4
entonces necesito mostrar:
Azul = 3 // Rojo = 4
¿Cómo puedo hacerlo?
Tu pregunta no está muy clara, ¿podrías tratar de explicarla mejor?
– Geoffrey
19 de agosto de 2017 a las 11:56
LoicTheAztec
Tienes productos variables con diferentes variaciones de color y cantidad de stock por variación.
Por lo tanto, debe obtener para cada variación: – la cantidad de existencias de la variación: – el nombre del término del atributo ‘pa_color’ para esta variación
Asumiendo que ya tienes el WC_Product_Variable objeto $productaquí está el código:
if ($product->is_type( 'variable' )){
// Get the available variations for the variable product
$available_variations = $product->get_available_variations();
// Initializing variables
$variations_count = count($available_variations);
$loop_count = 0;
// Iterating through each available product variation
foreach( $available_variations as $key => $values ) {
$loop_count++;
// Get the term color name
$attribute_color = $values['attributes']['attribute_pa_color'];
$wp_term = get_term_by( 'slug', $attribute_color, 'pa_color' );
$term_name = $wp_term->name; // Color name
// Get the variation quantity
$variation_obj = wc_get_product( $values['variation_id'] );
$stock_qty = $variation_obj->get_stock_quantity(); // Stock qty
// The display
$separator_string = " // ";
$separator = $variations_count < $loop_count ? $separator_string : '';
echo $term_name . ' = ' . $stock_qty . $separator;
}
}
Esto generará exactamente algo como (el nombre del color “=” la cantidad de stock + separador):
Azul = 3 // Rojo = 4
Probado y funciona perfectamente en WooCommerce 3+
¡Gracias! ¡Pero tengo un problema! en otro producto recibí este error: Error fatal: llamada al método no definido WC_Product_Simple::get_available_variations()
– Alireza Darvisi
19 de agosto de 2017 a las 20:25
@AlirezaDarvishi Actualicé mi respuesta: Solo necesitas filtrar con if ($product->is_type( 'variable' )){ // the code }
– LoicTheAztec
19 de agosto de 2017 a las 20:43
¡Hola! No puedo mostrar azul y rojo. woocommerce necesita alguna opción o slug?
– Alireza Darvisi
12 de septiembre de 2017 a las 13:38
@AlirezaDarvishi Tengo respuesta en tu otra pregunta. Por favor, échale un vistazo. Para la salida de su tabla, tengo el código correcto.
– LoicTheAztec
12/09/2017 a las 17:52
¿Dónde se colocaría este código para que funcione? ¿Qué archivo de plantilla?
– rpeg
15 de enero de 2018 a las 3:31
global $woocommerce, $product, $post;
// test if product is variable
if ($product->is_type( 'variable' ))
{
$available_variations = $product->get_available_variations();
foreach ($available_variations as $key => $variation)
{
$variation_id = $variation['variation_id'];
$variation_obj = new WC_Product_variation($variation_id);
$stock = $variation_obj->get_stock_quantity();
}
}
Puedes usar get_post_meta() función para obtener valores de la base de datos.
Los valores de cantidad de existencias de productos se almacenan en wp_postmeta mesa.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
Tu pregunta no está muy clara, ¿podrías tratar de explicarla mejor?
– Geoffrey
19 de agosto de 2017 a las 11:56