¿Cómo aumentar el límite de 50 variaciones en WooCommerce?

5 jun 2012, 10:29:51
Vistas: 16.5K
Votos: 1

Estoy usando el plugin WooCommerce para un sitio de comercio electrónico. El problema es que solo permite un máximo de 50 variaciones por producto, pero mi cliente necesita alrededor de 350 variaciones con atributos como talla, color, etc. ¿Hay alguna forma de modificar el código o alguna otra solución?

Gracias,

Frank

0
Todas las respuestas a la pregunta 4
0

Para aclarar, no hay un límite de 50 variaciones por producto en Woocommerce - esto es un gran malentendido.

Definitivamente puedes tener muchas más variaciones que eso. Yo mismo lo he hecho numerosas veces y nunca he tenido problemas. Para una visión general sobre las variaciones, consulta la documentación de Woocommerce: Variaciones de Producto.

En cuanto al límite, esto concierne a la posibilidad de enlazar variaciones automáticamente: Enlazar variaciones posibles. Allí dice:

En lugar de añadir cada variación una por una, puedes hacer clic en el botón 'enlazar todas las variaciones'. Esto creará una nueva variación para cada combinación posible de atributos de variación (máximo 50 por ejecución).

La parte importante es »máximo 50 por ejecución« - lo que esto significa es que tienes que ejecutarlo varias veces si tu selección de atributos resulta en más variaciones posibles. El límite está ahí para »prevenir problemas de memoria« - adicionalmente, ver la respuesta de @brasofilo.

Información adicional: La respuesta de @brasofilo hace referencia a una versión bastante antigua, tenlo en cuenta; la de @shamim539 se refiere a la versión más nueva 2.x, pero puede mejorarse.
El ejemplo de código que proporcionó está dentro de un condicional que verifica si la variable ha sido definida - mira:

if ( ! defined( 'WC_MAX_LINKED_VARIATIONS' ) ) {
    define( 'WC_MAX_LINKED_VARIATIONS', 49 );
}

Así que no hay necesidad de hacer el cambio dentro del archivo woocommerce-ajax.php, esto se sobrescribirá en las actualizaciones del plugin de todos modos. Solo define la variable dentro de tu functions.php:

    define( 'WC_MAX_LINKED_VARIATIONS', 249 );

Pero: Si vas a incrementar el límite, asegúrate de que tu servidor pueda manejar el aumento.

Si tienes problemas guardando grandes cantidades de datos - como sugirió @user1418998 - esto también está documentado: Problemas al guardar grandes cantidades de datos (variaciones, tarifas, etc.).

11 sept 2013 18:43:34
2

Desde los foros de Woo:

Actualmente tenemos un límite de 50 variaciones vinculadas por producto (para evitar problemas de memoria), cualquier cantidad superior se considera demasiado compleja y requiere trabajo personalizado. No es fácil gestionar un solo producto con más de 3000 variaciones, en ningún software de eCommerce existente.

Dicho esto, parece que tendrás que modificar el código del plugin o crear un hook de acción (no estoy seguro de cómo, pero el plugin lo soporta en este caso) para cambiar el comportamiento de la función woocommerce_link_all_variations.

Máximo 100 es un comentario original en el archivo.

/*
 * Archivo: /plugins/woocommerce/woocommerce-ajax.php
 * Línea: 487
 * WooCommerce: v1.5.6
 */
// Máximo 100
if ($added>49) break;
5 jun 2012 19:16:10
Comentarios

Gracias, Brasofilo... pero me preguntaba ¿cómo hizo el chico de este post para tener tantas variaciones?

http://wordpress.stackexchange.com/questions/53750/woocommerce-too-many-variations

Frank Frank
6 jun 2012 18:32:35

Bueno, intenta poner 350 donde estoy señalando... Pero sería mejor que probaras esto en un clon del sitio si el tuyo ya está en vivo.

brasofilo brasofilo
6 jun 2012 21:23:47
1

Según mi experiencia, el problema puede estar oculto en el archivo php.ini. Busca la directiva max_input_vars, descoméntala y aumenta su valor a 2000 o más según tus necesidades. En mi caso, sin esta modificación solo podía introducir un máximo de 40 variaciones - si intentaba más, se mezclaban los pedidos y no se guardaban correctamente las imágenes y precios. Tenía un volumen tan grande de variables de entrada debido a que trabajaban conjuntamente el plugin Woocommerce WPML y otros plugins como Ether Content Builder.

15 jul 2013 11:55:44
Comentarios

es max_input_vars, no max_var_inputs

Milo Milo
11 sept 2013 18:49:01
0

En la siguiente ubicación:

plugins/woocommerce/woocommerce-ajax.php

Encuentra el archivo PHP: woocommerce-ajax.php.

En la línea número 603, realiza:

define( 'WC_MAX_LINKED_VARIATIONS', 149 );

* Establece tu valor máximo, yo lo he configurado en 149

11 sept 2013 12:24:27