WPML
Status
Resolvido
Resolvido em
WPML 4.6.4

Visão geral do problema

Se você usa a hospedagem Flywheel ou o ImageMagick, fazer o upload de um PDF para a sua biblioteca do WordPress gera um erro fatal:

PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /www/wp-content/plugins/wpml-media-translation/classes/media-translation/class-wpml-media-attachment-image-update.php:61

Solução alternativa

  1. Faça um backup completo do seu site.
  2. Edite /wp-content/plugins/wpml-media-translation/classes/media-translation/class-wpml-media-attachment-image-update.php, linhas 49-76
  3. Altere:
    				if ( wp_image_editor_supports( array( 'mime_type' => $file['type'] ) ) ) {
    
    					$editor = wp_get_image_editor( $file['file'] );
    
    					if ( ! is_wp_error( $editor ) ) {
    
    						$size = $editor->get_size();
    						if ( $size['width'] > 150 || $size['height'] > 150 ) {
    							$resizing = $editor->resize( 150, 150, true );
    
    							if ( is_wp_error( $resizing ) ) {
    								wp_send_json_error( $resizing->get_error_message() );
    							}
    						}
    						$thumb = $editor->save();
    
    						if ( ! empty( $thumb ) ) {
    							$uploads_dir = wp_get_upload_dir();
    
    							$thumb_url  = $uploads_dir['baseurl'] . $uploads_dir['subdir'] . '/' . $thumb['file'];
    							$thumb_path = $thumb['path'];
    						}
    					} else {
    						wp_send_json_error( __( 'Failed to load the image editor', 'wpml-media' ) );
    					}
    				} elseif ( 0 === strpos( $file['type'], 'image/' ) ) {
    Para:
    				if ( wp_image_editor_supports( array( 'mime_type' => $file['type'] ) ) ) {
    
                        if ( ! extension_loaded( 'imagick' ) && ($file_array["type"] !== "application/pdf")) {
    
                            $editor = wp_get_image_editor($file['file']);
    
                            if (!is_wp_error($editor)) {
    
                                $size = $editor->get_size();
                                if ($size['width'] > 150 || $size['height'] > 150) {
                                    $resizing = $editor->resize(150, 150, true);
    
                                    if (is_wp_error($resizing)) {
                                        wp_send_json_error($resizing->get_error_message());
                                    }
                                }
                                $thumb = $editor->save();
    
                                if (!empty($thumb)) {
                                    $uploads_dir = wp_get_upload_dir();
    
                                    $thumb_url = $uploads_dir['baseurl'] . $uploads_dir['subdir'] . '/' . $thumb['file'];
                                    $thumb_path = $thumb['path'];
                                }
                            } else {
                                wp_send_json_error(__('Failed to load the image editor', 'wpml-media'));
                            }
                        }
    				} elseif ( 0 === strpos( $file['type'], 'image/' ) ) {

Todos os problemas conhecidos →