File "class-wc-api-json-handler.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/includes/legacy/api/v3/class-wc-api-json-handler.php
File size: 1.31 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

if (!defined('ABSPATH')) {
    exit;
}
class WC_API_JSON_Handler implements WC_API_Handler
{
    public function get_content_type()
    {
        return sprintf('%s; charset=%s', isset($_GET['_jsonp']) ? 'application/javascript' : 'application/json', get_option('blog_charset'));
    }
    public function parse_body($body)
    {
        return json_decode($body, true);
    }
    public function generate_response($data)
    {
        if (isset($_GET['_jsonp'])) {
            if (!apply_filters('woocommerce_api_jsonp_enabled', true)) {
                WC()->api->server->send_status(400);
                return wp_json_encode(array(array('code' => 'woocommerce_api_jsonp_disabled', 'message' => __('JSONP support is disabled on this site', 'woocommerce'))));
            }
            $jsonp_callback = $_GET['_jsonp'];
            if (!wp_check_jsonp_callback($jsonp_callback)) {
                WC()->api->server->send_status(400);
                return wp_json_encode(array(array('code' => 'woocommerce_api_jsonp_callback_invalid', __('The JSONP callback function is invalid', 'woocommerce'))));
            }
            WC()->api->server->header('X-Content-Type-Options', 'nosniff');
            return '/**/' . $jsonp_callback . '(' . wp_json_encode($data) . ')';
        }
        return wp_json_encode($data);
    }
}