WPML
Statut
Résolue
Type
Bug
Résolue dans
WPML 4.6.4

Aperçu de l’anomalie

Si vous utilisez l’hébergement Flywheel ou ImageMagick, le téléversement d’un PDF dans votre bibliothèque WordPress provoque une erreur fatale :

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

Solution de contournement

  1. Faites une sauvegarde complète de votre site.
  2. Modifiez /wp-content/plugins/wpml-media-translation/classes/media-translation/class-wpml-media-attachment-image-update.php, lignes 49 à 76
  3. Remplacez :
    				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/' ) ) {
    par :
    				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/' ) ) {

Toutes les anomalies connues