IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
|
|
|
|
| 3026 | 3026 | |
| 3027 | 3027 | $have_gettext = function_exists( '__' ); |
| 3028 | 3028 | |
| 3029 | | if ( function_exists( 'is_wp_error' ) && is_wp_error( $message ) ) { |
| 3030 | | if ( empty( $title ) ) { |
| | 3029 | if ( empty( $title ) ) { |
| | 3030 | if ( function_exists( 'is_wp_error' ) && is_wp_error( $message ) ) { |
| 3031 | 3031 | $error_data = $message->get_error_data(); |
| 3032 | 3032 | if ( is_array( $error_data ) && isset( $error_data['title'] ) ) { |
| 3033 | 3033 | $title = $error_data['title']; |
| 3034 | 3034 | } |
| 3035 | 3035 | } |
| 3036 | | $errors = $message->get_error_messages(); |
| 3037 | | switch ( count( $errors ) ) { |
| 3038 | | case 0: |
| 3039 | | $message = ''; |
| 3040 | | break; |
| 3041 | | case 1: |
| 3042 | | $message = "<p>{$errors[0]}</p>"; |
| 3043 | | break; |
| 3044 | | default: |
| 3045 | | $message = "<ul>\n\t\t<li>" . join( "</li>\n\t\t<li>", $errors ) . "</li>\n\t</ul>"; |
| 3046 | | break; |
| 3047 | | } |
| 3048 | | } elseif ( is_string( $message ) ) { |
| 3049 | | $message = "<p>$message</p>"; |
| 3050 | | } |
| | 3036 | } |
| | 3037 | |
| | 3038 | $result = _wp_die_process_input( $message, $r ); |
| | 3039 | if ( isset( $result['additional_errors'] ) && ! empty( $result['additional_errors'] ) ) { |
| | 3040 | $message = "<ul>\n\t\t<li>" . $result['message'] . "</li>\n\t\t<li>" . join( "</li>\n\t\t<li>", $result['additional_errors'] ) . "</li>\n\t</ul>"; |
| | 3041 | } else { |
| | 3042 | $message = "<p>" . $result['message'] . "</p>"; |
| | 3043 | } |
| | 3044 | |
| 3051 | 3045 | |
| 3052 | 3046 | if ( ! empty( $r['link_url'] ) && ! empty( $r['link_text'] ) ) { |
| 3053 | 3047 | $link_url = $r['link_url']; |
| … |
… |
|
| 3065 | 3059 | |
| 3066 | 3060 | if ( ! did_action( 'admin_head' ) ) : |
| 3067 | 3061 | if ( ! headers_sent() ) { |
| 3068 | | status_header( $r['response'] ); |
| | 3062 | status_header( $result['data']['status'] ); |
| 3069 | 3063 | nocache_headers(); |
| 3070 | 3064 | header( 'Content-Type: text/html; charset=utf-8' ); |
| 3071 | 3065 | } |
| … |
… |
|
| 3241 | 3235 | |
| 3242 | 3236 | $r = wp_parse_args( $args, $defaults ); |
| 3243 | 3237 | |
| 3244 | | $data = array( |
| 3245 | | 'code' => 'wp_die', |
| 3246 | | 'message' => $message, |
| 3247 | | 'status' => $r['response'], |
| 3248 | | ); |
| | 3238 | $result = _wp_die_process_input( $message, $r ); |
| 3249 | 3239 | |
| 3250 | 3240 | if ( ! headers_sent() ) { |
| 3251 | 3241 | header( 'Content-Type: application/json; charset=utf-8' ); |
| 3252 | | if ( null !== $r['response'] ) { |
| 3253 | | status_header( $r['response'] ); |
| | 3242 | nocache_headers(); |
| | 3243 | if ( null !== $result['data']['status'] ) { |
| | 3244 | status_header( $result['data']['status'] ); |
| 3254 | 3245 | } |
| 3255 | 3246 | } |
| 3256 | 3247 | |
| 3257 | | echo wp_json_encode( $data ); |
| | 3248 | echo wp_json_encode( $result ); |
| 3258 | 3249 | die(); |
| 3259 | 3250 | } |
| 3260 | 3251 | |
| … |
… |
|
| 3276 | 3267 | global $wp_xmlrpc_server; |
| 3277 | 3268 | $defaults = array( 'response' => 500 ); |
| 3278 | 3269 | |
| 3279 | | $r = wp_parse_args( $args, $defaults ); |
| | 3270 | $r = wp_parse_args( $args, $defaults ); |
| | 3271 | $result = _wp_die_process_input( $message, $r ); |
| 3280 | 3272 | |
| 3281 | 3273 | if ( $wp_xmlrpc_server ) { |
| 3282 | | $error = new IXR_Error( $r['response'], $message ); |
| | 3274 | $error = new IXR_Error( $result['data']['status'], $result['message'] ); |
| 3283 | 3275 | $wp_xmlrpc_server->output( $error->getXml() ); |
| 3284 | 3276 | } |
| 3285 | 3277 | die(); |
| … |
… |
|
| 3303 | 3295 | ); |
| 3304 | 3296 | $r = wp_parse_args( $args, $defaults ); |
| 3305 | 3297 | |
| 3306 | | if ( ! headers_sent() && null !== $r['response'] ) { |
| 3307 | | status_header( $r['response'] ); |
| | 3298 | $result = _wp_die_process_input( $message, $r ); |
| | 3299 | |
| | 3300 | if ( ! headers_sent() && null !== $result['data']['status'] ) { |
| | 3301 | status_header( $result['data']['status'] ); |
| | 3302 | nocache_headers(); |
| 3308 | 3303 | } |
| 3309 | 3304 | |
| 3310 | | if ( is_scalar( $message ) ) { |
| 3311 | | die( (string) $message ); |
| | 3305 | if ( is_scalar( $result['message'] ) ) { |
| | 3306 | die( (string) $result['message'] ); |
| 3312 | 3307 | } |
| 3313 | 3308 | die( '0' ); |
| 3314 | 3309 | } |
| … |
… |
|
| 3330 | 3325 | die(); |
| 3331 | 3326 | } |
| 3332 | 3327 | |
| | 3328 | /** |
| | 3329 | * Helper function to process input from wp_die requests and format them into a usable array. |
| | 3330 | * |
| | 3331 | * @since 5.1.0 |
| | 3332 | * @access private |
| | 3333 | * |
| | 3334 | * @param $message |
| | 3335 | * @param array $args |
| | 3336 | * |
| | 3337 | * @return array $results |
| | 3338 | */ |
| | 3339 | function _wp_die_process_input( $message = '', array $args = array() ) { |
| | 3340 | |
| | 3341 | $defaults = array( 'response' => 500, 'code' => 'wp_die', ); |
| | 3342 | $args = wp_parse_args( $args, $defaults ); |
| | 3343 | $data = array( |
| | 3344 | 'code' => $args['code'], |
| | 3345 | 'message' => '', |
| | 3346 | 'data' => |
| | 3347 | array( |
| | 3348 | 'status' => $args['response'] |
| | 3349 | ), |
| | 3350 | ); |
| | 3351 | |
| | 3352 | if ( function_exists( 'is_wp_error' ) && is_wp_error( $message ) ) { |
| | 3353 | $errors = array(); |
| | 3354 | foreach ( (array) $message->errors as $code => $messages ) { |
| | 3355 | foreach ( (array) $messages as $display_message ) { |
| | 3356 | $errors[] = array( |
| | 3357 | 'code' => $code, |
| | 3358 | 'message' => $display_message, |
| | 3359 | 'data' => $message->get_error_data( $code ), |
| | 3360 | ); |
| | 3361 | } |
| | 3362 | } |
| | 3363 | if ( $errors ) { |
| | 3364 | $data = $errors[0]; |
| | 3365 | if ( count( $errors ) > 1 ) { |
| | 3366 | // Remove the primary error. |
| | 3367 | array_shift( $errors ); |
| | 3368 | $data['additional_errors'] = $errors; |
| | 3369 | } |
| | 3370 | } |
| | 3371 | } else { |
| | 3372 | $data ['message'] = $message; |
| | 3373 | } |
| | 3374 | |
| | 3375 | |
| | 3376 | return $data; |
| | 3377 | } |
| | 3378 | |
| 3333 | 3379 | /** |
| 3334 | 3380 | * Encode a variable into JSON, with some sanity checks. |
| 3335 | 3381 | * |