_jsonp_wp_die_handler

The timeline below displays how wordpress function _jsonp_wp_die_handler has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.5

/**
 * Kills WordPress execution and displays JSONP response with an error message.
 *
 * This is the handler for wp_die() when processing JSONP requests.
 *
 * @since 5.2.0
 * @access private
 *
 * @param string       $message Error message.
 * @param string       $title   Optional. Error title. Default empty string.
 * @param string|array $args    Optional. Arguments to control behavior. Default empty array.
 */
function _jsonp_wp_die_handler($message, $title = '', $args = array())
{
    list($message, $title, $parsed_args) = _wp_die_process_input($message, $title, $args);
    $data = array('code' => $parsed_args['code'], 'message' => $message, 'data' => array('status' => $parsed_args['response']), 'additional_errors' => $parsed_args['additional_errors']);
    if (isset($parsed_args['error_data'])) {
        $data['data']['error'] = $parsed_args['error_data'];
    }
    if (!headers_sent()) {
        header("Content-Type: application/javascript; charset={$parsed_args['charset']}");
        header('X-Content-Type-Options: nosniff');
        header('X-Robots-Tag: noindex');
        if (null !== $parsed_args['response']) {
            status_header($parsed_args['response']);
        }
        nocache_headers();
    }
    $result = wp_json_encode($data);
    $jsonp_callback = $_GET['_jsonp'];
    echo '/**/' . $jsonp_callback . '(' . $result . ')';
    if ($parsed_args['exit']) {
        die;
    }
}

WordPress Version: 6.2

/**
 * Kills WordPress execution and displays JSONP response with an error message.
 *
 * This is the handler for wp_die() when processing JSONP requests.
 *
 * @since 5.2.0
 * @access private
 *
 * @param string       $message Error message.
 * @param string       $title   Optional. Error title. Default empty string.
 * @param string|array $args    Optional. Arguments to control behavior. Default empty array.
 */
function _jsonp_wp_die_handler($message, $title = '', $args = array())
{
    list($message, $title, $parsed_args) = _wp_die_process_input($message, $title, $args);
    $data = array('code' => $parsed_args['code'], 'message' => $message, 'data' => array('status' => $parsed_args['response']), 'additional_errors' => $parsed_args['additional_errors']);
    if (!headers_sent()) {
        header("Content-Type: application/javascript; charset={$parsed_args['charset']}");
        header('X-Content-Type-Options: nosniff');
        header('X-Robots-Tag: noindex');
        if (null !== $parsed_args['response']) {
            status_header($parsed_args['response']);
        }
        nocache_headers();
    }
    $result = wp_json_encode($data);
    $jsonp_callback = $_GET['_jsonp'];
    echo '/**/' . $jsonp_callback . '(' . $result . ')';
    if ($parsed_args['exit']) {
        die;
    }
}

WordPress Version: 5.3

/**
 * Kills WordPress execution and displays JSONP response with an error message.
 *
 * This is the handler for wp_die() when processing JSONP requests.
 *
 * @since 5.2.0
 * @access private
 *
 * @param string       $message Error message.
 * @param string       $title   Optional. Error title. Default empty.
 * @param string|array $args    Optional. Arguments to control behavior. Default empty array.
 */
function _jsonp_wp_die_handler($message, $title = '', $args = array())
{
    list($message, $title, $parsed_args) = _wp_die_process_input($message, $title, $args);
    $data = array('code' => $parsed_args['code'], 'message' => $message, 'data' => array('status' => $parsed_args['response']), 'additional_errors' => $parsed_args['additional_errors']);
    if (!headers_sent()) {
        header("Content-Type: application/javascript; charset={$parsed_args['charset']}");
        header('X-Content-Type-Options: nosniff');
        header('X-Robots-Tag: noindex');
        if (null !== $parsed_args['response']) {
            status_header($parsed_args['response']);
        }
        nocache_headers();
    }
    $result = wp_json_encode($data);
    $jsonp_callback = $_GET['_jsonp'];
    echo '/**/' . $jsonp_callback . '(' . $result . ')';
    if ($parsed_args['exit']) {
        die;
    }
}

WordPress Version: 5.2

/**
 * Kills WordPress execution and displays JSONP response with an error message.
 *
 * This is the handler for wp_die() when processing JSONP requests.
 *
 * @since 5.2.0
 * @access private
 *
 * @param string       $message Error message.
 * @param string       $title   Optional. Error title. Default empty.
 * @param string|array $args    Optional. Arguments to control behavior. Default empty array.
 */
function _jsonp_wp_die_handler($message, $title = '', $args = array())
{
    list($message, $title, $r) = _wp_die_process_input($message, $title, $args);
    $data = array('code' => $r['code'], 'message' => $message, 'data' => array('status' => $r['response']), 'additional_errors' => $r['additional_errors']);
    if (!headers_sent()) {
        header('Content-Type: application/javascript; charset=utf-8');
        header('X-Content-Type-Options: nosniff');
        header('X-Robots-Tag: noindex');
        if (null !== $r['response']) {
            status_header($r['response']);
        }
        nocache_headers();
    }
    $result = wp_json_encode($data);
    $jsonp_callback = $_GET['_jsonp'];
    echo '/**/' . $jsonp_callback . '(' . $result . ')';
    if ($r['exit']) {
        die;
    }
}