¿Cómo aumentar el límite de 50 variaciones en WooCommerce?
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

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.).

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;

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

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.
