diff --git a/src/wp-includes/functions.php b/src/wp-includes/functions.php index 23fc15cd1b..d3a8bcd2d7 100644 --- a/src/wp-includes/functions.php +++ b/src/wp-includes/functions.php @@ -2861,9 +2861,19 @@ function _xmlrpc_wp_die_handler( $message, $title = '', $args = array() ) { * @since 3.4.0 * @access private * - * @param string $message Optional. Response to print. Default empty. - */ -function _ajax_wp_die_handler( $message = '' ) { + * @param string $message Error message. + * @param string $title Optional. Error title (unused). Default empty. + * @param string|array $args Optional. Arguments to control behavior. Default empty array. + */ +function _ajax_wp_die_handler( $message, $title = '', $args = array() ) { + $defaults = array( + 'response' => 200, + ); + $r = wp_parse_args( $args, $defaults ); + + if ( ! headers_sent() ) { + status_header( $r['response'] ); + } if ( is_scalar( $message ) ) die( (string) $message ); die( '0' ); diff --git a/src/wp-includes/pluggable.php b/src/wp-includes/pluggable.php index dc10c7f393..fe4c0a9933 100644 --- a/src/wp-includes/pluggable.php +++ b/src/wp-includes/pluggable.php @@ -1108,7 +1108,7 @@ function check_ajax_referer( $action = -1, $query_arg = false, $die = true ) { if ( $die && false === $result ) { if ( wp_doing_ajax() ) { - wp_die( -1 ); + wp_die( -1, 403 ); } else { die( '-1' ); }