Solucionar problemas
Solucionar el error «Uncaught ReflectionException: Method get_site_editor_type does not exist»
El error completo suele ser parecido a este:
PHP Fatal error: Uncaught ReflectionException: Method get_site_editor_type does not exist in /home/USUARIO/public_html/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php:45
Aparece cuando la versión de Elementor Pro no es compatible con la de Elementor, con la de WordPress o con algún complemento que añade tipos de plantilla al Theme Builder. Elementor Pro busca un método que esa otra pieza no tiene y la web o el editor se rompen.
Solución definitiva: actualizar
Si puedes entrar en el escritorio de WordPress:
- Ve a Escritorio > Actualizaciones.
- Actualiza Elementor y Elementor Pro a la última versión. Elementor Pro solo se actualiza si la licencia está activa en Elementor > Licencia; si caducó, descarga la última versión desde tu cuenta de my.elementor.com y súbela en Plugins > Añadir nuevo > Subir plugin.
- Actualiza también los complementos de Elementor (packs de widgets, addons de Theme Builder) y el tema.
Si el error sigue tras actualizarlo todo, desactiva los complementos de Elementor uno a uno: el que lo haga desaparecer es el incompatible. Busca una versión actualizada o una alternativa.
Si no puedes entrar al panel: parche temporal
Cuando el error tumba también el escritorio de WordPress, este parche te devuelve el acceso para poder actualizar. Se pierde en cuanto actualizas Elementor Pro, que es justo lo que buscamos.
Desde el Administrador de archivos de cPanel o por FTP, abre:
wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php
Busca get_site_editor_type (está hacia la línea 45). Encontrarás este bloque:
$reflection = new \ReflectionClass( $class_name ); $method = $reflection->getMethod( 'get_site_editor_type' ); // It's own method, use it. if ( $class_name === $method->class ) { return static::get_site_editor_type(); }
Rodéalo con una comprobación if ( method_exists( ... ) ) { ... } para que quede así:
if ( method_exists( $class_name, 'get_site_editor_type' ) ) { $reflection = new \ReflectionClass( $class_name ); $method = $reflection->getMethod( 'get_site_editor_type' ); // It's own method, use it. if ( $class_name === $method->class ) { return static::get_site_editor_type(); } }
Guarda el fichero y recarga la web: el error desaparece. Entra en el escritorio y haz las actualizaciones del apartado anterior.
Haz una copia del fichero antes de editarlo. Si al guardarlo aparece otro error de sintaxis, revisa que has cerrado la llave } al final del bloque.
Si prefieres no tocar el código
Puedes recuperar el acceso desactivando Elementor Pro: en el Administrador de archivos, renombra la carpeta wp-content/plugins/elementor-pro a elementor-pro-off. La web cargará sin las plantillas de Theme Builder (cabecera, pie, etc.).
Entra al escritorio, actualiza Elementor y sube la última versión de Elementor Pro (el zip de tu cuenta de Elementor) en Plugins > Añadir nuevo > Subir plugin. Actívala, comprueba que la web y el editor funcionan y borra la carpeta elementor-pro-off. No le devuelvas el nombre original a la carpeta antigua: volvería el error.
También te puede ayudar
- Cómo solucionar el error cURL 60 de certificado SSL en WordPress Cómo diagnosticar y resolver el error cURL 60 de WordPress sin desactivar la verificación de certifi...
- Depurar errores en WordPress con WP_DEBUG Activa WP_DEBUG en wp-config.php para ver o registrar en un fichero los errores de WordPress y encon...
- Diagnosticar "Programación perdida" o "Missed schedule" Comprueba por qué una entrada programada no se publicó antes de sustituir WP-Cron por una tarea del...
- Diagnosticar errores criptográficos de Sodium en WordPress Distingue la ausencia de la extensión Sodium de un argumento inválido en sodium_compat antes de camb...
¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.