Error fatal: ReflectionException no detectada: el método get_site_editor_type no existe

2 minutos de lectura

Literalmente, después de no hacer nada en el sitio, después de varios días sin uso, al intentar iniciar sesión, aparece un error de este tipo:

Fatal error: Uncaught ReflectionException: Method get_site_editor_type does not exist in /usr/home/midas/domains/mydomain.com/public_html/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php:45

tema-documento.php:

protected static function get_site_editor_type_bc() {
    static $types = [];

    $class_name = static::get_class_full_name();

    $reflection = new \ReflectionClass( $class_name ); //45 line
    $method = $reflection->getMethod( 'get_site_editor_type' );

    // It's own method, use it.
    if ( $class_name === $method->class ) {
        return static::get_site_editor_type();
    }

    // _deprecated_function( 'get_name', '3.0.0', 'get_site_editor_type' );

    // Fallback, get from class instance name (with caching).
    if ( isset( $types[ $class_name ] ) ) {
        return $types[ $class_name ];
    }

    $instance = new static();

    $types[ $class_name ] = $instance->get_name();

    return $types[ $class_name ];
}

¿Cómo puedo resolver esto?

  • Intente desactivar sus otros complementos y reactivarlos uno por uno.

    – Vela

    8 ago a las 10:57


  • @Vel Sí, conozco esta idea, pero mi sitio debe ser accesible de forma continua y la desactivación de otros complementos puede causar problemas.

    – Wojciech

    8 ago a las 10:59

  • ¿Está utilizando un complemento adicional para elementor?

    – Vela

    8 ago a las 11:02

  • @vel No, solo puro elementor + elementor pro

    – Wojciech

    8 de agosto a las 11:08

  • Comparta información sobre el estado del sitio si es posible. imgur.com/Rtkmsba

    – Vela

    8 ago a las 11:10


cambiar el código

$reflection = new \ReflectionClass( $class_name ); //45 line
$method = $reflection->getMethod( 'get_site_editor_type' );

// It's own method, use it.
if ( $class_name === $method->class ) {
    return static::get_site_editor_type();
}

Por

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();
    }
}

avatar de usuario
Cecily Urizar-Faught

Resolví esto de manera similar a Mayous. Simplemente comenté la línea en /wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php. Así que la línea 46 fue

$method = $reflection->getMethod( 'get_site_editor_type' );

lo cambié a

//$method = $reflection->getMethod( 'get_site_editor_type' );

  • La ruta correcta es /wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php

    – Berti92

    el dia de ayer

Vaya a: /wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php

Comentar la línea 47

$method = $reflection->getMethod( 'get_site_editor_type' );

Espera a que se solucione la actualización.

También tuve este problema hoy y lo resolví revirtiendo la versión gratuita de Elementor, se debe a un error en la actualización reciente.

¿Ha sido útil esta solución?