WPML
Trạng thái
Đang mở
Được báo cáo cho
WPML Multilingual CMS 4.7.0
Thẻ chủ đề
Bug

Tổng quan về lỗi

WPML 4.7 gặp vấn đề về khả năng tương thích với các plugin sử dụng PSR/Log 3.0, chẳng hạn như Rollbar. Khi cả WPML và Rollbar đều đang hoạt động, việc chạy các lệnh WP-CLI (ví dụ: wp --info) sẽ gây ra lỗi nghiêm trọng do sự không khớp về chữ ký phương thức trong lớp DebugFileLogger.

PHP Fatal error:  Declaration of WPML\\PHP\\Logger\\DebugFileLogger::log($level, $message, array $context = []) must be compatible with Psr\\Log\\AbstractLogger::log($level, Stringable|string $message, array $context = []): void in ...\\wp-content\\plugins\\sitepress-multilingual-cms\\vendor\\wpml\\wpml\\lib\\Php\\Logger\\DebugFileLogger.php on line 8

Giải pháp tạm thời

Vui lòng đảm bảo bạn có bản sao lưu toàn bộ trang web trước khi tiếp tục.


  • Mở tệp …/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Logger/DebugFileLogger.php.
  • Thay thế:
    namespace WPML\PHP\Logger;
    
    class DebugFileLogger extends \Psr\Log\AbstractLogger {
    
    
      public function log( $level, $message, array $context = array() ) {
        if ( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) {
          return;
        }
    
        $log = date( 'Y-m-d H:i:s' ) . ' [' . $level . '] ' . $message . PHP_EOL;
        \error_log( $log );
      }
    
    
    }

  • Bằng:
    namespace WPML\PHP\Logger;
    
    use Psr\Log\AbstractLogger;
    use Stringable;
    
    class DebugFileLogger extends AbstractLogger {
    
      public function log($level, $message, array $context = []): void {
        if ( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) {
          return;
        }
    
        $log = date( 'Y-m-d H:i:s' ) . ' [' . $level . '] ' . (string) $message . PHP_EOL;
        \error_log( $log );
      }
    
    }

Tất cả các lỗi đã ghi nhận →