WordPress.org

Make WordPress Core

Ticket #39647: patch.39647.20190920.1

File patch.39647.20190920.1, 2.7 KB (added by ramon fincken, 10 months ago)

patch.39647.20190920.1

Line 
1Index: src/js/_enqueues/vendor/plupload/handlers.js
2===================================================================
3--- src/js/_enqueues/vendor/plupload/handlers.js        (revision 46194)
4+++ src/js/_enqueues/vendor/plupload/handlers.js        (working copy)
5@@ -279,7 +279,7 @@
6        }
7 }
8 
9-function uploadError( fileObj, errorCode, message, up ) {
10+function uploadError( fileObj, errorCode, message, responseHeaders, up ) {
11        var hundredmb = 100 * 1024 * 1024, max;
12 
13        switch ( errorCode ) {
14@@ -315,7 +315,15 @@
15 
16                        break;
17                case plupload.HTTP_ERROR:
18-                       wpQueueError( pluploadL10n.http_error );
19+                       message = pluploadL10n.http_error;
20+
21+                       var myRegexp = /x-wp-lasterror-message: (.*)/gm;
22+                       var match = myRegexp.exec( responseHeaders );
23+                       if( match[1] ) {
24+                               message += ' ' + match[1];
25+                       }
26+
27+                       wpQueueError(message);
28                        break;
29                case plupload.INIT_ERROR:
30                        jQuery( '.media-upload-form' ).addClass( 'html-uploader' );
31@@ -578,7 +586,7 @@
32                                return;
33                        }
34 
35-                       uploadError( error.file, error.code, error.message, up );
36+                       uploadError( error.file, error.code, error.message, error.responseHeaders, up);
37                        up.refresh();
38                });
39 
40Index: src/wp-includes/functions.php
41===================================================================
42--- src/wp-includes/functions.php       (revision 46194)
43+++ src/wp-includes/functions.php       (working copy)
44@@ -3255,6 +3255,15 @@
45                        nocache_headers();
46                }
47 
48+               if( isset( $parsed_args['last_error_message'] ) && $parsed_args['last_error_message']) {
49+                   $sent_header = ( WP_DEBUG || ( is_user_logged_in() ) );
50+                   $sent_header = apply_filters( 'wp_die_handler_sent_error_header', $sent_header );
51+                   
52+                   if( $sent_header ) {
53+                       header( 'X-WP-lasterror-message: '.$parsed_args['last_error_message'] );
54+                   }
55+               }
56+               
57                $text_direction = $parsed_args['text_direction'];
58                if ( function_exists( 'language_attributes' ) && function_exists( 'is_rtl' ) ) {
59                        $dir_attr = get_language_attributes();
60@@ -3660,6 +3669,11 @@
61 
62        $args = wp_parse_args( $args, $defaults );
63 
64+    // Early
65+    if( $message instanceof WP_Error && isset( $message->error_data['internal_server_error']['error']['message'] ) ) {
66+        $args['last_error_message'] = $message->error_data['internal_server_error']['error']['message'];
67+    }
68+       
69        if ( function_exists( 'is_wp_error' ) && is_wp_error( $message ) ) {
70                if ( ! empty( $message->errors ) ) {
71                        $errors = array();
72@@ -3684,6 +3698,10 @@
73                                $title = $errors[0]['data']['title'];
74                        }
75 
76+            if( isset( $errors[0][0] ) ) {
77+                $args['last_error'] = array_values( $errors[0][0] );
78+            }
79+                       
80                        unset( $errors[0] );
81                        $args['additional_errors'] = array_values( $errors );
82                } else {