Normalmente, una página de producto de WooCommerce muestra la cantidad de inventario de un producto variable únicamente cuando se selecciona una variación, lógicamente mostrando las unidades disponibles de «esa» variación.
Ahora bien, en algunas tiendas, independientemente de la cantidad de inventario de cada variación, puede ser interesante mostrar la cantidad total, la suma del inventario de todas las variaciones.
Así, por ejemplo, si tenemos 20 unidades de un zapato en piel marrón y 10 en piel negra, mostrar – antes de seleccionar cuál queremos y su cantidad disponible – cuántos pares de zapatos de piel tenemos, independientemente de su color.
De eso va el truco de hoy, de mostrar la suma del inventario de todas las variaciones de los productos variables.
Para conseguirlo debes añadir este código, usando el método que prefieras:
/* Mostrar inventario total de todas las variaciones */ // CALCULAMOS EL INVENTARIO ACUMULADO function ayudawp_inventario_acumulado_variable( $product ) { if ( $product->get_type() == 'variable' && ! $product->get_manage_stock() ) { $cumulative_stock = 0; foreach ( $product->get_available_variations() as $key ) { $variation = wc_get_product( $key['variation_id'] ); $cumulative_stock += $variation->get_stock_quantity() ? $variation->get_stock_quantity() : 0; } } return $cumulative_stock; } // DEFINIMOS LA CANTIDAD DE INVENTARIO DEL PRODUCTO VARIABLE add_filter( 'woocommerce_get_stock_html', 'ayudawp_inventario_producto_variable', 9999, 2 ); function ayudawp_inventario_producto_variable( $html, $product ) { $availability = $product->get_availability(); if ( $product->get_type() == 'variable' && empty( $availability['availability'] ) ) { ob_start(); wc_get_template( 'single-product/stock.php', array( 'product' => $product, 'class' => ayudawp_inventario_acumulado_variable( $product ) > 0 ? 'in-stock' : 'out-of-stock', 'availability' => sprintf( __( '%s in stock', 'woocommerce' ), ayudawp_inventario_acumulado_variable( $product ) ), ) ); return ob_get_clean(); } return $html; } // MOSTRAMOS INVENTARIO EN LA PAGINA DE PRODUCTO add_action( 'woocommerce_before_add_to_cart_form', 'ayudawp_mostrar_inventario_acumulado' ); function ayudawp_mostrar_inventario_acumulado() { global $product; $availability = $product->get_availability(); if ( $product->get_type() == 'variable' && empty( $availability['availability'] ) ) { echo wc_get_stock_html( $product ); } }
Una vez guardados los cambios pasaremos de esto…
A esto otro…
Como puedes ver en las capturas anteriores, siempre se muestra el inventario acumulado de todas las variaciones, y cuando el cliente elige una variación, además, se muestra también el inventario de esa variación.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Anónimo
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.
xnxxtube.win
There iis certainly a great deal too larn about this
issue. I love aall off the points yyou made.
yeni-porn.com
Thankos for sharing yor thoughts on 91979. Regards
porn xab
I qujte like looking thropugh an artiicle tha can make people
think. Also, thanks for permiyting me to comment!
sohu xxx
Pleasee let me know iif you’re lookinng forr a artiicle author
for your weblog. Yoou have some reallly grat poets and I
elieve I wouod be a goood asset. If yyou evfer want tto tale some oof thhe lod
off, I’d absolutely loove to write somee contejt ffor your blog in exchange forr a link ack tto mine.
Please blaet me ann e-mail if interested. Regards!
jablex.com
Hello, I enjoy reading through youir article. I wanted tto wtite a littlke commnent tto support you.