Soporte » Plugins y Hacks » WooCommerce » Ocultar variantes sin stock

  • noaweb

    (@noaweb)


    Hola, empezamos a trabajar en nuestro sitio con variaciones en algunos productos (Mas que nada para las fundas de celulares)
    La idea es poder dar la opción de elegir el celular y el color de fundas disponible.
    Todo bien de echo funcionaba perfecto, pero hace poco unos de los productos empezó a fallar, y es que este no oculta las variantes sin stock, cabe a aclarar que la opción de «Ocultar en el catálogo los artículos agotados» Esta activada.
    Lo raro es que no oculta las variantes sin stock en este producto en especifico, pero si lo hace en otros productos con variantes.
    Para ser mas preciso en este producto no oculta las variantes sin stock (o colores de fundas sin stock):
    https://noaweb.com.ar/producto/tpu-silicone-case-para-iphone-original/
    Y este otro producto si oculta las variantes sin stock:
    https://noaweb.com.ar/producto/tpu-silicone-case-para-samsung-originales-2/

    Al principio lo que son las fundas de iphone si las ocultaba pero dejo de hacerlo,
    Creí que podría ser algún plugin que este interfiriendo pero no, desactive todos los plugin y aun el problema sigue, el theme tampoco es porque cambie el diseño a la ultima versión de storefront y tampoco
    Espero que me puedan ayudar, desde ya muchas gracias, Saludos

    • Este debate fue modificado hace 4 años por noaweb.

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Yordan Soares

    (@yordansoares)

    Hola @noaweb,

    Haciendo una búsqueda rápida, conseguí este fragmento de código que creo te puede funcionar:

    add_action( 'pre_get_posts', 'iconic_hide_out_of_stock_products' );
     
    function iconic_hide_out_of_stock_products( $q ) {
     
        if ( ! $q->is_main_query() || is_admin() ) {
            return;
        }
     
        if ( $outofstock_term = get_term_by( 'name', 'outofstock', 'product_visibility' ) ) {
     
            $tax_query = (array) $q->get('tax_query');
     
            $tax_query[] = array(
                'taxonomy' => 'product_visibility',
                'field' => 'term_taxonomy_id',
                'terms' => array( $outofstock_term->term_taxonomy_id ),
                'operator' => 'NOT IN'
            );
     
            $q->set( 'tax_query', $tax_query );
     
        }
     
        remove_action( 'pre_get_posts', 'iconic_hide_out_of_stock_products' );
     
    }

    Cuéntame si te sirve (y si es así, aprovecha para marcar el problema como «Resuelto»).

    Iniciador del debate noaweb

    (@noaweb)

    Hola @yordansoares , muchas gracias por tu respuesta, agregue el código mediante Code Snippets, pero no tuve solución, sigue sin ocultar las variantes del producto «fundas para iphone», no logro entender porque el error esta únicamente en este producto y no en los otros que también tienen variantes.

    Iniciador del debate noaweb

    (@noaweb)

    Para hacer otra prueba, decidí borrar el producto y crearlo de nuevo y agregar sus variantes uno por uno, y el error vuelve a aparecer, no sera por la gran cantidad de variantes que tiene?

    Aquí cree otro producto con una cantidad menor de variantes y funciona bien
    https://noaweb.com.ar/producto/esto-es-una-prueba-con-desglose/

    • Esta respuesta fue modificada hace 4 años por noaweb.
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • El debate ‘Ocultar variantes sin stock’ está cerrado a nuevas respuestas.