Saltar navegación

Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.

Problema:
Si estás intentando traducir un producto al inglés y catalán y recibes un error crítico que dice "Ha habido un error crítico en esta web", y en el debug.log aparece un mensaje de 'TypeError' relacionado con 'array_filter()' y 'woocommerce-multilingual'.
Solución:
El problema puede ser causado por meta_keys incorrectas en la base de datos para algunas variaciones de productos. Para resolverlo, sigue estos pasos:
1. Accede a la base de datos de tu sitio web (puedes usar herramientas como Adminer o PHPMyAdmin).
2. Ejecuta la siguiente consulta SQL, reemplazando '76' con los IDs de las variantes de productos afectadas:

SELECT *<br />FROM wp_postmeta<br />WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_parent = '76' AND post_type = 'product_variation')<br />AND meta_key LIKE "producto_aviso"

3. Elimina los post_meta que devuelve la consulta.
Después de realizar estos pasos, verifica si el problema se ha resuelto.
Si esta solución no parece relevante o si continúas teniendo problemas, por favor, abre un nuevo ticket de soporte.

Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.

Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.

Etiquetado: 

Este tema contiene 19 respuestas, tiene 3 voces.

Última actualización por Paola Mendiburu hace 1 año, 1 mes.

Asistido por: Paola Mendiburu.

Autor Entradas
diciembre 7, 2023 en 6:46 am #15013361

francescM-6

el error que reporta wordpress (y me envía por correo) es el siguiente:

Detalles del error
==================
Se ha producido un error del tipo E_ERROR en la línea 612 del archivo /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-editor-ui-product-job.php. Mensaje de error: Uncaught TypeError: array_filter(): Argument #1 ($array) must be of type array, string given in /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-editor-ui-product-job.php:612
Stack trace:
#0 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-editor-ui-product-job.php(612): array_filter()
#1 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-editor-ui-product-job.php(490): WCML_Editor_UI_Product_Job->add_custom_field_to_element_data()
#2 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-editor-ui-product-job.php(84): WCML_Editor_UI_Product_Job->get_data()
#3 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-translation-editor.php(57): WCML_Editor_UI_Product_Job->__construct()
#4 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-includes/class-wp-hook.php(324): WCML_Translation_Editor->fetch_translation_job_for_editor()
#5 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-includes/plugin.php(205): WP_Hook->apply_filters()
#6 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/sitepress-multilingual-cms/classes/menu/translation-editor/class-wpml-translation-editor-ui.php(342): apply_filters()
#7 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/sitepress-multilingual-cms/classes/menu/translation-editor/class-wpml-translation-editor-ui.php(185): WPML_Translation_Editor_UI->filter_the_model()
#8 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/sitepress-multilingual-cms/classes/menu/translation-editor/class-wpml-translation-editor-ui.php(91): WPML_Translation_Editor_UI->output_model()
#9 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/sitepress-multilingual-cms/classes/menu/translation-queue/class-wpml-translations-queue.php(78): WPML_Translation_Editor_UI->render()
#10 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-content/plugins/sitepress-multilingual-cms/classes/class-wpml-translation-management.php(379): WPML_Translations_Queue->display()
#11 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-includes/class-wp-hook.php(324): WPML_Translation_Management->translation_queue_page()
#12 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
#13 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-includes/plugin.php(517): WP_Hook->do_action()
#14 /var/www/vhosts/desarrollopilma.com/httpdocs/wp-admin/admin.php(259): do_action()
#15 {main}
thrown

diciembre 7, 2023 en 10:57 am #15015901

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola,
Muchas gracias por compartir el resultado de estos pasos

He escalado este ticket a nuestr 2do nivel de soporte para que nuestros especialistas de 2donivel revisen el problema con mayor profundidad e intenten aislar la causa del problema. Como no he podido crear una copia del sitio staging le pido que no modifique/elimine el sitio staging para que le permita a nuestros especialistas realizar las pruebas necesarias.

Le mantendré al tanto de la evolución de este ticket.
Muchas gracias por su paciencia y comprensión!

diciembre 7, 2023 en 3:04 pm #15018143

Carlos Rojas
Supporter

Idiomas: Inglés (English ) Español (Español )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola,

La causa del problema es que algunas variaciones de los productos (variables) contienen un meta_key en la base de datos llamada 'producto_aviso'. Eliminando esta incorrecta meta_key resuelve el problema.

Nuestros especialistas han desarrollado el siguiente workaround para solucionar el problema en el sitio:
- Acceda a la base de datos del sitio (puede utilizar el plugin Adminer o PHPMyAdmin)
- Ejecute la siguiente consulta:

SELECT *
FROM wp_postmeta
WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_parent = '76' AND post_type = 'product_variation')
AND meta_key LIKE "producto_aviso"

(debe hacerlo para los IDs de las variantes de productos)
- La consulta anterior devolverá una serie de post_meta que debe eliminar y el problema desaparecerá

Puede confirmar que el problema se ha resuelto?
Saludos!

diciembre 11, 2023 en 10:17 am #15035371

francescM-6

Muy buenas Carlos,

Justamente era lo que necesitaba, el fix ha solucionado el problema perfectamente y ya puedo trabajar con los productos. ¿Crees que podrías decirme qué ha motivado el fallo? Una actualización? una pelea entre los plugins?

Un saludo.

diciembre 12, 2023 en 5:38 pm #15048833

Paola Mendiburu
Supporter

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

¡Hola!

Soy Paola y me encargaré del ticket mientras Carlos está de vacaciones.

El problema parece ser tal como lo señaló mi compañero; no hemos identificado la causa exacta del problema en la base de datos.

Si surgen más problemas o preguntas, no dudes en ponerte en contacto con nosotros nuevamente.

Saludos,
Paola