Tras una actualización de MemberPress, una página web puede bloquearse y mostrar un error grave de PHP. El error indica que un rasgo o una clase dentro de la MemberPress\Planta baja No se ha encontrado el espacio de nombres.
El error se debe a la caché del servidor, no a MemberPress en sí. No indica que se hayan perdido o dañado datos. Todas las suscripciones, los miembros y la configuración permanecen a salvo en la base de datos.
En este documento se explica cuál es la causa del error y cómo solucionarlo. Las soluciones van desde actualizar la página hasta enviar una breve solicitud al proveedor de alojamiento.
Comprender el error
Tras una actualización de MemberPress, la página web puede mostrar el “There has been a critical error on this website.” mensaje. El error grave relacionado aparece en el Registro de depuración de WordPress:
Error fatal de PHP: No se ha encontrado el trait "MemberPress\GroundLevel\Container\Concerns\InjectsDependencies" en /home/username/public_html/wp-content/plugins/memberpress/app/lib/MeprAddonUpdates.php, en la línea 19
WordPress también envía un correo electrónico sobre el error crítico a la dirección de correo electrónico del administrador del sitio web. Allí, el mismo error se muestra así:
Se ha producido un error de tipo E_ERROR en la línea 15 del archivo /home/username/public_html/wp-content/plugins/memberpress/app/controllers/MeprFeatureAddonCtrl.php. Mensaje de error: No se ha encontrado el rasgo "MemberPress\GroundLevel\Container\Concerns\InjectsDependencies"
El nombre exacto del archivo, el número de línea y el nombre del rasgo o de la clase pueden variar según el sitio web. Todas las variantes del error tienen la misma causa y la misma solución.
¿Qué provoca el error?
La mayoría de los servidores utilizan OPcache, una función de PHP que mantiene copias del código del sitio web en la memoria. Esto contribuye a que las páginas se carguen más rápido, ya que el servidor no tiene que volver a leer cada archivo en cada visita.
Durante una actualización, MemberPress sustituye sus archivos en el servidor. A continuación, WordPress solicita al servidor que actualice las copias almacenadas. Sin embargo, algunas configuraciones del servidor bloquean u omiten esta actualización.
Cuando eso ocurre, el servidor sigue utilizando una lista obsoleta de los archivos del complemento. Los nuevos archivos de la actualización no aparecen en esta lista. Como consecuencia, PHP no puede encontrarlos y se produce el error grave.
Este mismo comportamiento del servidor puede afectar a cualquier actualización de un plugin o tema de WordPress. La solución consiste en hacer que el servidor cargue los nuevos archivos.
Solución 1: Actualizar la página web
En muchos casos, el error es temporal. El servidor actualiza su caché automáticamente a los pocos minutos de la actualización.
Espera unos minutos y, a continuación, actualiza la página web. Si el error persiste, pasa a la siguiente solución.
Solución 2: Reinstalar la actualización MemberPress
Al reinstalar el complemento, todos los archivos MemberPress se vuelven a guardar en el servidor. En la mayoría de los casos, esto hace que el servidor elimine las copias obsoletas. Sigue estos pasos:
- Descarga el último archivo .zip de MemberPress del Descargas pestaña de tu Cuenta MemberPress.
- Inicie sesión en su sitio web y vaya a Dashboard > Plugins > Add New Plugin.
- Haga clic en el botón Subir Plugin botón, haz clic en Elegir archivo, y selecciona el archivo .zip descargado.
- Haga clic en Instalar ahora.
- En la página siguiente, haga clic en el botón Sustituir actual por cargado botón.
Este proceso reinstala el complemento sin afectar a ningún dato de MemberPress. El Actualización de MemberPress En este documento se describe con más detalle el proceso de actualización manual.
Comprueba la página web tras la reinstalación. Si el error persiste, pasa a la siguiente solución.
Solución 3: Borrar la caché OPcache del servidor
En algunos servidores, al reinstalar los archivos no se actualiza la caché. En ese caso, es necesario restablecer la caché manualmente.
Muchos paneles de control de alojamiento incluyen una opción para vaciar la caché de PHP o reiniciar PHP. El nombre y la ubicación de la opción dependen del proveedor de alojamiento. Busca las opciones denominadas “Flush PHP OPcache”, “Clear PHP Cache”o “Restart PHP”. Al reiniciar PHP también se borra toda la caché.
Vacíe la caché y, a continuación, actualice la página web. Si el error persiste o no existe esa opción, póngase en contacto con el proveedor de alojamiento.
Solución 4: Ponte en contacto con el proveedor de alojamiento web
El proveedor de alojamiento puede vaciar la caché directamente en el servidor. Esta solución no requiere ningún paso técnico. Además, funciona incluso cuando el error grave bloquea el panel de control de WordPress.
La siguiente plantilla de mensaje describe el problema al equipo de asistencia técnica del proveedor de alojamiento:
Hola,
Tras actualizar un plugin, mi página web muestra un error fatal de PHP que indica que no se ha encontrado un
trait o una clase. Los archivos actualizados del plugin están presentes en el
disco. Sin embargo, OPcache está sirviendo copias en caché obsoletas de algunos archivos.
¿Podríais, por favor, vaciar la caché OPcache de PHP de mi cuenta o reiniciar PHP
(PHP-FPM)?
Por favor, comprueben también si en mi servidor está configurado opcache.restrict_api u
opcache.validate_timestamps=0. Estos ajustes impiden que
WordPress actualice automáticamente los archivos almacenados en caché durante las actualizaciones de los
plugins. Modificarlos evitaría este problema en futuras actualizaciones.
Gracias.
Una vez que el proveedor de alojamiento haya restablecido la caché, la página web cargará los nuevos archivos del complemento y el error desaparecerá. Si el error persiste tras restablecer la caché, ponte en contacto con el Equipo de asistencia de MemberPress si necesitas más ayuda.
Lo que normalmente no soluciona este error
El error se debe a la caché PHP del servidor. Por lo tanto, los siguientes pasos habituales para solucionar problemas no suelen resolverlo:
- borrar la caché del navegador, ya que este no almacena el error;
- borrar la caché de las páginas de los plugins (por ejemplo, WP Rocket, W3 Total Cache), ya que estos plugins almacenan páginas, no archivos PHP;
- vaciar la caché de la CDN (por ejemplo, Cloudflare), por la misma razón;
- desactivar y volver a activar MemberPress, ya que así no se vuelven a escribir los archivos del complemento;
- reparar o restaurar la base de datos, ya que no es ella la que provoca el error.
Saltarse estos pasos permite ahorrar tiempo y evita cambios innecesarios en la página web.
