programing

치명적인 오류:학습되지 않은 반사예외:get_site_editor_type 메서드가 없습니다.

skycolor 2023. 3. 23. 22:34
반응형

치명적인 오류:학습되지 않은 반사예외:get_site_editor_type 메서드가 없습니다.

말 그대로 사이트에서 아무것도 하지 않은 후 며칠 동안 사용하지 않은 후 로그인을 시도하면 다음과 같은 오류가 나타납니다.

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

테마파워의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 ];
}

어떻게 하면 해결할 수 있을까요?

코드를 변경하다

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

타고

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

나는 이것을 Mayous와 비슷하게 해결했다.나는 단순히 의 대사를 코멘트했다./wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php그래서 46호선은

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

로 변경했습니다.

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

/wp-content/plugins/elementor-pro/modules/teme-builder/documents/teme-documents로 이동합니다.php

코멘트 아웃 라인 47

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

수정이 업데이트될 때까지 기다립니다.

오늘도 이 문제가 발생하여 Elementor의 무료 버전을 롤백하여 해결했습니다.이것은 최근 업데이트의 버그로 인한 것입니다.

제 경우, 사이트가 관리자(로그인 사용자)를 위해 크래시되어 로그인이 불가능했습니다.

제 솔루션은 (wp 호스팅의 관리 콘솔을 사용하여) "Elementor pro"를 셧다운하고 로그인하여 새로운 버전의 Elementor pro를 수동으로 업로드하는 것이었습니다.

플러그인을 비활성화할 방법이 없으니 코드 편집도 가능할 것 같습니다. 47행에서 코멘트만 남겨주세요.

/wp-content/plugins/sublicor-pro/sublic/sublic/sublic-sublic.php

언급URL : https://stackoverflow.com/questions/73276652/fatal-error-uncaught-reflectionexception-method-get-site-editor-type-does-not

반응형