Hola,
Estoy intentando actualizar la versión de PHP de 7.4 a 8.0/8.1/8.2 en mi sitio WordPress, y he encontrado un problema específico que afecta solo a la página de productos (adjunto captura de pantalla).
El resto del sitio funciona correctamente sin ningún error visible.
He intentado desactivar los plugins uno por uno para identificar si algún plugin específico está causando el conflicto, pero el problema persiste incluso con los plugins desactivados.
Sin embargo, al desactivar el plugin WP Rocket, la página de productos se carga sin ese error crítico, pero solo se muestran las imágenes, faltando los textos y el botón de añadir al carrito. Las demás partes del sitio como el menú principal y el footer se muestran correctamente.
¿Podríais ayudarme a dar con una solución a estos problemas de visualización y compatibilidad al actualizar PHP?
Si queréis echarle un ojo, podéis acceder al clon del sitio poniendo 'clon.' después de 'https://' y antes del dominio (no quiero dejar un enlace directo aquí). Al entrar en un producto cualquiera ya veréis el problema.
Muchas gracias.
Un saludo.
Contenido solo visible a usuarios registrados
Hola Maria.
Revisando los errores que muestra el log veo lo siguiente:
[22-May-2024 10:20:33 UTC] PHP Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, function "mk_muestra_mensaje_checkbox" not found or invalid function name in /home2/fieitoco/public_html/clon.fieito.com/wp-includes/class-wp-hook.php:324
Stack trace:
#0 /home2/fieitoco/public_html/clon.fieito.com/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
#1 /home2/fieitoco/public_html/clon.fieito.com/wp-includes/plugin.php(517): WP_Hook->do_action()
#2 /home2/fieitoco/public_html/clon.fieito.com/wp-content/themes/shopkeeper/woocommerce/content-single-product-default.php(76): do_action()
#3 /home2/fieitoco/public_html/clon.fieito.com/wp-includes/template.php(812): require('/home2/fieitoco...')
#4 /home2/fieitoco/public_html/clon.fieito.com/wp-includes/template.php(745): load_template()
#5 /home2/fieitoco/public_html/clon.fieito.com/wp-includes/general-template.php(206): locate_template()
#6 /home2/fieitoco/public_html/clon.fieito.com/wp-content/themes/shopkeeper/woocommerce/content-single-product.php(28): get_template_part()
#7 /home2/fieitoco/public_html/clon.fieito.com/wp-includes/template.php(812): require('/home2/fieitoco...')
#8 /home2/fieitoco/public_html/clon.fieito.com/wp-content/plugins/woocommerce/includes/wc-core-functions.php(284): load_template()
#9 /home2/fieitoco/public_html/clon.fieito.com/wp-content/themes/shopkeeper/woocommerce/single-product.php(40): wc_get_template_part()
#10 /home2/fieitoco/public_html/clon.fieito.com/wp-includes/template-loader.php(106): include('/home2/fieitoco...')
#11 /home2/fieitoco/public_html/clon.fieito.com/wp-blog-header.php(19): require_once('/home2/fieitoco...')
#12 /home2/fieitoco/public_html/clon.fieito.com/index.php(17): require('/home2/fieitoco...')
#13 {main}
thrown in /home2/fieitoco/public_html/clon.fieito.com/wp-includes/class-wp-hook.php on line 324
Este error es por una función que tienes en el archivo functions.php del tema hijo:
add_action( 'woocommerce_before_single_product_summary', 'mk_muestra_mensaje_checkbox', 20 ); //Cambia el hook o la prioridad para mover la posición del mensaje
Prueba a eliminar esa línea y revisa si se soluciona.
Si no se soluciona, por favor abre la web del clon que la tienes en mantenimiento y no podemos revisarlo.
Un saludo
Hola @pepesoler
He eliminado la línea que me indicas y ha funcionado. Además, esa era una función que ya no estaba usando.
Gracias por la ayuda!!
Un saludo.
Hola María.
Genial !!! Me alegra que lo solucionaras.
Cualquier consulta que tengas no dudes en comunicarlo.
Un saludo