Avisos
Vaciar todo

[Resuelto] Plugin quantity rules no aplica la regla a la variaciones

20 Respuestas
2 Usuarios
0 Reacciones
88 Visitas
Respuestas: 155
Estimable Member
Topic starter
 

Hola, tengo una regla en el plugin quantity rules que el pedido mínimo es 0.30 e incremento en 0.10 pero al elegir una variación woocemerce machaca la regla y se pone en minimo 1, como puedo solucionarlo?, gracias

Tela Vichy 3 mm | Cuadros Clásicos Colores - Mercería Ninot

Contenido solo visible a usuarios registrados


 
Respondido : 21/03/2026 7:45 am
Respuestas: 155
Estimable Member
Topic starter
 

buenas, necesitaría el código personalizado funcionando solo en variaciones de categoria telas, y si no puede ser que salga 0.30 por defecto que aunque el valor por defecto sea 1 que solo deje bajar hasta 0.30. Pero bueno si no estáis autorizados no pasa nada ):, me falta probar los plugins, era la ultima opción ya que con el plugin actual tengo varias configuraciones. Gracias por el directorio de colaboradores. 


 
Respondido : 23/03/2026 6:01 pm
Respuestas: 155
Estimable Member
Topic starter
 

Buenas, tengo este código pero solo me funciona en un producto

add_filter('woocommerce_available_variation', function( $data, $variation, $product ) {

    // Solo si es producto variable en la categoría "telas"

    $parent = wc_get_product($product->get_parent_id());

    if ( $parent && $parent->is_type('variable') && has_term('telas', 'product_cat', $parent->get_id()) ) {

        $data['min_qty'] = 0.30; // mínimo para la variación

    }

    return $data;

}, 10, 3);

 

add_filter('woocommerce_quantity_input_args', function($args, $product) {

    // Solo aplicamos a variaciones de telas

    if ( $product->is_type('variation') ) {

        $parent = wc_get_product($product->get_parent_id());

        if ( $parent && $parent->is_type('variable') && has_term('telas', 'product_cat', $parent->get_id()) ) {

            $args['min_value'] = 0.30; // mínimo

            $args['step'] = 0.10;      // paso decimal

            $args['input_value'] = max($args['input_value'], 0.30); // valor inicial mínimo

        }

    }

    return $args;

}, 10, 2);

 

 

Tela Vichy Cuadros 1 Cm - Mercería Ninot


 
Respondido : 23/03/2026 8:31 pm
Bruno
Respuestas: 6937
Illustrious Member
 

Hola Pedro,

Veo que has tomado la ruta de seguir probando códigos personalizados.

Considerando el fragmento que no dejas podria sugerir los siguientes ajustes para probar su funcionamiento

function ninot_es_tela( $product_id ) {
$terms = get_the_terms( $product_id, 'product_cat' );
if ( ! $terms || is_wp_error( $terms ) ) {
return false;
}
foreach ( $terms as $term ) {
if ( $term->slug === 'telas' ) {
return true;
}
foreach ( get_ancestors( $term->term_id, 'product_cat' ) as $ancestor_id ) {
$ancestor = get_term( $ancestor_id, 'product_cat' );
if ( $ancestor && $ancestor->slug === 'telas' ) {
return true;
}
}
}
return false;
}

add_filter( 'woocommerce_available_variation', function( $data, $product, $variation ) {
if ( ninot_es_tela( $product->get_id() ) ) {
$data['min_qty'] = 0.30;
$data['step'] = 0.10;
$data['input_value'] = 0.30;
}
return $data;
}, 10, 3 );

add_filter( 'woocommerce_quantity_input_args', function( $args, $product ) {
if ( ! $product->is_type( 'variation' ) ) {
return $args;
}
$parent = wc_get_product( $product->get_parent_id() );
if ( $parent && ninot_es_tela( $parent->get_id() ) ) {
$args['min_value'] = 0.30;
$args['step'] = 0.10;
$args['input_value'] = 0.30;
}
return $args;
}, 10, 2 );

add_filter( 'woocommerce_add_to_cart_validation', function( $passed, $product_id, $quantity, $variation_id = 0 ) {
if ( ! $variation_id ) {
return $passed;
}
$variation = wc_get_product( $variation_id );
if ( ! $variation ) {
return $passed;
}
$parent = wc_get_product( $variation->get_parent_id() );
if ( $parent && ninot_es_tela( $parent->get_id() ) && $quantity < 0.30 ) {
wc_add_notice( 'La cantidad mínima para telas es 0.30 metros.', 'error' );
return false;
}
return $passed;
}, 10, 4 );

Saludos!


 
Respondido : 24/03/2026 12:41 am
Respuestas: 155
Estimable Member
Topic starter
 

Buenas, muchas gracias, creo que lo hemos conseguido, en los que he probado funciona. Solo me queda abrir un tema para modificar el ancho del desplegable de la hamburguesa y dejarlo como el vuestro del foro y intentaré no molestar en meses, que soy muy pesado. un saludo, soy geniales.


 
Respondido : 24/03/2026 7:11 pm
Bruno
Respuestas: 6937
Illustrious Member
 

Que tal Pedro,

Excelentes noticias, siempre es un gusto poder ayudarte

No te preocupes; el propósito de este espacio es poder ayudar en lo posible a consultas como las tuyas

Quedamos atentos cualquier cosa

Saludos!


 
Respondido : 24/03/2026 7:19 pm
Página 2 / 2