Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/jetpack
File: class.json-api-endpoints.php
<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
[0] Fix | Delete
/**
[1] Fix | Delete
* Jetpack API endpoint base class.
[2] Fix | Delete
*
[3] Fix | Delete
* @package automattic/jetpack
[4] Fix | Delete
*/
[5] Fix | Delete
[6] Fix | Delete
use Automattic\Jetpack\Connection\Client;
[7] Fix | Delete
use Automattic\Jetpack\Connection\Manager;
[8] Fix | Delete
use Automattic\Jetpack\Connection\Rest_Authentication;
[9] Fix | Delete
use Automattic\Jetpack\Connection\Tokens;
[10] Fix | Delete
use Automattic\Jetpack\Status;
[11] Fix | Delete
use Automattic\Jetpack\Status\Host;
[12] Fix | Delete
[13] Fix | Delete
require_once __DIR__ . '/json-api-config.php';
[14] Fix | Delete
require_once __DIR__ . '/sal/class.json-api-links.php';
[15] Fix | Delete
require_once __DIR__ . '/sal/class.json-api-metadata.php';
[16] Fix | Delete
require_once __DIR__ . '/sal/class.json-api-date.php';
[17] Fix | Delete
[18] Fix | Delete
/**
[19] Fix | Delete
* Endpoint.
[20] Fix | Delete
*/
[21] Fix | Delete
abstract class WPCOM_JSON_API_Endpoint {
[22] Fix | Delete
/**
[23] Fix | Delete
* The API Object
[24] Fix | Delete
*
[25] Fix | Delete
* @var WPCOM_JSON_API
[26] Fix | Delete
*/
[27] Fix | Delete
public $api;
[28] Fix | Delete
[29] Fix | Delete
/**
[30] Fix | Delete
* The link-generating utility class
[31] Fix | Delete
*
[32] Fix | Delete
* @var WPCOM_JSON_API_Links
[33] Fix | Delete
*/
[34] Fix | Delete
public $links;
[35] Fix | Delete
[36] Fix | Delete
/**
[37] Fix | Delete
* Whether to pass wpcom user details.
[38] Fix | Delete
*
[39] Fix | Delete
* @var bool
[40] Fix | Delete
*/
[41] Fix | Delete
public $pass_wpcom_user_details = false;
[42] Fix | Delete
[43] Fix | Delete
/**
[44] Fix | Delete
* One liner.
[45] Fix | Delete
*
[46] Fix | Delete
* @var string
[47] Fix | Delete
*/
[48] Fix | Delete
public $description;
[49] Fix | Delete
[50] Fix | Delete
/**
[51] Fix | Delete
* Object Grouping For Documentation (Users, Posts, Comments)
[52] Fix | Delete
*
[53] Fix | Delete
* @var string
[54] Fix | Delete
*/
[55] Fix | Delete
public $group;
[56] Fix | Delete
[57] Fix | Delete
/**
[58] Fix | Delete
* Stats extra value to bump
[59] Fix | Delete
*
[60] Fix | Delete
* @var mixed
[61] Fix | Delete
*/
[62] Fix | Delete
public $stat;
[63] Fix | Delete
[64] Fix | Delete
/**
[65] Fix | Delete
* HTTP Method
[66] Fix | Delete
*
[67] Fix | Delete
* @var string
[68] Fix | Delete
*/
[69] Fix | Delete
public $method = 'GET';
[70] Fix | Delete
[71] Fix | Delete
/**
[72] Fix | Delete
* Minimum version of the api for which to serve this endpoint
[73] Fix | Delete
*
[74] Fix | Delete
* @var string
[75] Fix | Delete
*/
[76] Fix | Delete
public $min_version = '0';
[77] Fix | Delete
[78] Fix | Delete
/**
[79] Fix | Delete
* Maximum version of the api for which to serve this endpoint
[80] Fix | Delete
*
[81] Fix | Delete
* @var string
[82] Fix | Delete
* @phan-suppress PhanUndeclaredConstant -- https://github.com/phan/phan/issues/4855
[83] Fix | Delete
*/
[84] Fix | Delete
public $max_version = WPCOM_JSON_API__CURRENT_VERSION;
[85] Fix | Delete
[86] Fix | Delete
/**
[87] Fix | Delete
* Forced endpoint environment when running on WPCOM
[88] Fix | Delete
*
[89] Fix | Delete
* @var string '', 'wpcom', 'secure', or 'jetpack'
[90] Fix | Delete
*/
[91] Fix | Delete
public $force = '';
[92] Fix | Delete
[93] Fix | Delete
/**
[94] Fix | Delete
* Whether the endpoint is deprecated
[95] Fix | Delete
*
[96] Fix | Delete
* @var bool
[97] Fix | Delete
*/
[98] Fix | Delete
public $deprecated = false;
[99] Fix | Delete
[100] Fix | Delete
/**
[101] Fix | Delete
* Version of the endpoint this endpoint is deprecated in favor of.
[102] Fix | Delete
*
[103] Fix | Delete
* @var string
[104] Fix | Delete
* @phan-suppress PhanUndeclaredConstant -- https://github.com/phan/phan/issues/4855
[105] Fix | Delete
*/
[106] Fix | Delete
protected $new_version = WPCOM_JSON_API__CURRENT_VERSION;
[107] Fix | Delete
[108] Fix | Delete
/**
[109] Fix | Delete
* Whether the endpoint is only available on WordPress.com hosted blogs
[110] Fix | Delete
*
[111] Fix | Delete
* @var bool
[112] Fix | Delete
*/
[113] Fix | Delete
public $jp_disabled = false;
[114] Fix | Delete
[115] Fix | Delete
/**
[116] Fix | Delete
* Path at which to serve this endpoint: sprintf() format.
[117] Fix | Delete
*
[118] Fix | Delete
* @var string
[119] Fix | Delete
*/
[120] Fix | Delete
public $path = '';
[121] Fix | Delete
[122] Fix | Delete
/**
[123] Fix | Delete
* Identifiers to fill sprintf() formatted $path
[124] Fix | Delete
*
[125] Fix | Delete
* @var array
[126] Fix | Delete
*/
[127] Fix | Delete
public $path_labels = array();
[128] Fix | Delete
[129] Fix | Delete
/**
[130] Fix | Delete
* The REST endpoint if available.
[131] Fix | Delete
*
[132] Fix | Delete
* @var string
[133] Fix | Delete
*/
[134] Fix | Delete
public $rest_route;
[135] Fix | Delete
[136] Fix | Delete
/**
[137] Fix | Delete
* Jetpack Version in which REST support was introduced.
[138] Fix | Delete
*
[139] Fix | Delete
* @var string
[140] Fix | Delete
*/
[141] Fix | Delete
public $rest_min_jp_version;
[142] Fix | Delete
[143] Fix | Delete
/**
[144] Fix | Delete
* Accepted query parameters
[145] Fix | Delete
*
[146] Fix | Delete
* @var array
[147] Fix | Delete
*/
[148] Fix | Delete
public $query = array(
[149] Fix | Delete
// Parameter name.
[150] Fix | Delete
'context' => array(
[151] Fix | Delete
// Default value => description.
[152] Fix | Delete
'display' => 'Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..',
[153] Fix | Delete
// Other possible values => description.
[154] Fix | Delete
'edit' => 'Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..',
[155] Fix | Delete
),
[156] Fix | Delete
'http_envelope' => array(
[157] Fix | Delete
'false' => '',
[158] Fix | Delete
'true' => 'Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.',
[159] Fix | Delete
),
[160] Fix | Delete
'pretty' => array(
[161] Fix | Delete
'false' => '',
[162] Fix | Delete
'true' => 'Output pretty JSON',
[163] Fix | Delete
),
[164] Fix | Delete
'meta' => "(string) Optional. Loads data from the endpoints found in the 'meta' part of the response. Comma-separated list. Example: meta=site,likes",
[165] Fix | Delete
'fields' => '(string) Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title',
[166] Fix | Delete
// Parameter name => description (default value is empty).
[167] Fix | Delete
'callback' => '(string) An optional JSONP callback function.',
[168] Fix | Delete
);
[169] Fix | Delete
[170] Fix | Delete
/**
[171] Fix | Delete
* Response format
[172] Fix | Delete
*
[173] Fix | Delete
* @var array
[174] Fix | Delete
*/
[175] Fix | Delete
public $response_format = array();
[176] Fix | Delete
[177] Fix | Delete
/**
[178] Fix | Delete
* Request format
[179] Fix | Delete
*
[180] Fix | Delete
* @var array
[181] Fix | Delete
*/
[182] Fix | Delete
public $request_format = array();
[183] Fix | Delete
[184] Fix | Delete
/**
[185] Fix | Delete
* Is this endpoint still in testing phase? If so, not available to the public.
[186] Fix | Delete
*
[187] Fix | Delete
* @var bool
[188] Fix | Delete
*/
[189] Fix | Delete
public $in_testing = false;
[190] Fix | Delete
[191] Fix | Delete
/**
[192] Fix | Delete
* Is this endpoint still allowed if the site in question is flagged?
[193] Fix | Delete
*
[194] Fix | Delete
* @var bool
[195] Fix | Delete
*/
[196] Fix | Delete
public $allowed_if_flagged = false;
[197] Fix | Delete
[198] Fix | Delete
/**
[199] Fix | Delete
* Is this endpoint allowed if the site is red flagged?
[200] Fix | Delete
*
[201] Fix | Delete
* @var bool
[202] Fix | Delete
*/
[203] Fix | Delete
public $allowed_if_red_flagged = false;
[204] Fix | Delete
[205] Fix | Delete
/**
[206] Fix | Delete
* Is this endpoint allowed if the site is deleted?
[207] Fix | Delete
*
[208] Fix | Delete
* @var bool
[209] Fix | Delete
*/
[210] Fix | Delete
public $allowed_if_deleted = false;
[211] Fix | Delete
[212] Fix | Delete
/**
[213] Fix | Delete
* Version of the API
[214] Fix | Delete
*
[215] Fix | Delete
* @var string
[216] Fix | Delete
*/
[217] Fix | Delete
public $version = '';
[218] Fix | Delete
[219] Fix | Delete
/**
[220] Fix | Delete
* Example request to make
[221] Fix | Delete
*
[222] Fix | Delete
* @var string
[223] Fix | Delete
*/
[224] Fix | Delete
public $example_request = '';
[225] Fix | Delete
[226] Fix | Delete
/**
[227] Fix | Delete
* Example request data (for POST methods)
[228] Fix | Delete
*
[229] Fix | Delete
* @var string
[230] Fix | Delete
*/
[231] Fix | Delete
public $example_request_data = '';
[232] Fix | Delete
[233] Fix | Delete
/**
[234] Fix | Delete
* Example response from $example_request
[235] Fix | Delete
*
[236] Fix | Delete
* @var string
[237] Fix | Delete
*/
[238] Fix | Delete
public $example_response = '';
[239] Fix | Delete
[240] Fix | Delete
/**
[241] Fix | Delete
* OAuth2 scope required when running on WPCOM
[242] Fix | Delete
*
[243] Fix | Delete
* @var string
[244] Fix | Delete
*/
[245] Fix | Delete
public $required_scope = '';
[246] Fix | Delete
[247] Fix | Delete
/**
[248] Fix | Delete
* Set to true if the endpoint implements its own filtering instead of the standard `fields` query method
[249] Fix | Delete
*
[250] Fix | Delete
* @var bool
[251] Fix | Delete
*/
[252] Fix | Delete
public $custom_fields_filtering = false;
[253] Fix | Delete
[254] Fix | Delete
/**
[255] Fix | Delete
* Set to true if the endpoint accepts all cross origin requests. You probably should not set this flag.
[256] Fix | Delete
*
[257] Fix | Delete
* @var bool
[258] Fix | Delete
*/
[259] Fix | Delete
public $allow_cross_origin_request = false;
[260] Fix | Delete
[261] Fix | Delete
/**
[262] Fix | Delete
* Set to true if the endpoint can recieve unauthorized POST requests.
[263] Fix | Delete
*
[264] Fix | Delete
* @var bool
[265] Fix | Delete
*/
[266] Fix | Delete
public $allow_unauthorized_request = false;
[267] Fix | Delete
[268] Fix | Delete
/**
[269] Fix | Delete
* Set to true if the endpoint should accept site based (not user based) authentication.
[270] Fix | Delete
*
[271] Fix | Delete
* @var bool
[272] Fix | Delete
*/
[273] Fix | Delete
public $allow_jetpack_site_auth = false;
[274] Fix | Delete
[275] Fix | Delete
/**
[276] Fix | Delete
* Set to true if the endpoint should accept user based authentication.
[277] Fix | Delete
*
[278] Fix | Delete
* @var bool
[279] Fix | Delete
*/
[280] Fix | Delete
public $allow_jetpack_token_auth = false;
[281] Fix | Delete
[282] Fix | Delete
/**
[283] Fix | Delete
* Set to true if the endpoint should accept auth from an upload token.
[284] Fix | Delete
*
[285] Fix | Delete
* @var bool
[286] Fix | Delete
*/
[287] Fix | Delete
public $allow_upload_token_auth = false;
[288] Fix | Delete
[289] Fix | Delete
/**
[290] Fix | Delete
* Set to true if the endpoint should require auth from a Rewind auth token.
[291] Fix | Delete
*
[292] Fix | Delete
* @var bool
[293] Fix | Delete
*/
[294] Fix | Delete
public $require_rewind_auth = false;
[295] Fix | Delete
[296] Fix | Delete
/**
[297] Fix | Delete
* Whether this endpoint allows falling back to a blog token for making requests to remote Jetpack sites.
[298] Fix | Delete
*
[299] Fix | Delete
* @var bool
[300] Fix | Delete
*/
[301] Fix | Delete
public $allow_fallback_to_jetpack_blog_token = false;
[302] Fix | Delete
[303] Fix | Delete
/**
[304] Fix | Delete
* REST namespace.
[305] Fix | Delete
*/
[306] Fix | Delete
const REST_NAMESPACE = 'jetpack/rest';
[307] Fix | Delete
[308] Fix | Delete
/**
[309] Fix | Delete
* Post object format.
[310] Fix | Delete
*
[311] Fix | Delete
* @var array
[312] Fix | Delete
*/
[313] Fix | Delete
public $post_object_format;
[314] Fix | Delete
[315] Fix | Delete
/**
[316] Fix | Delete
* Comment object format.
[317] Fix | Delete
*
[318] Fix | Delete
* @var array
[319] Fix | Delete
*/
[320] Fix | Delete
public $comment_object_format;
[321] Fix | Delete
[322] Fix | Delete
/**
[323] Fix | Delete
* Dropdown page object format.
[324] Fix | Delete
*
[325] Fix | Delete
* @var array
[326] Fix | Delete
*/
[327] Fix | Delete
public $dropdown_page_object_format;
[328] Fix | Delete
[329] Fix | Delete
/**
[330] Fix | Delete
* Constructor.
[331] Fix | Delete
*
[332] Fix | Delete
* @param string|array|object $args Args.
[333] Fix | Delete
*/
[334] Fix | Delete
public function __construct( $args ) {
[335] Fix | Delete
$defaults = array(
[336] Fix | Delete
'in_testing' => false,
[337] Fix | Delete
'allowed_if_flagged' => false,
[338] Fix | Delete
'allowed_if_red_flagged' => false,
[339] Fix | Delete
'allowed_if_deleted' => false,
[340] Fix | Delete
'description' => '',
[341] Fix | Delete
'group' => '',
[342] Fix | Delete
'stat' => '',
[343] Fix | Delete
'method' => 'GET',
[344] Fix | Delete
'path' => '/',
[345] Fix | Delete
'min_version' => '0',
[346] Fix | Delete
'max_version' => WPCOM_JSON_API__CURRENT_VERSION,
[347] Fix | Delete
'force' => '',
[348] Fix | Delete
'deprecated' => false,
[349] Fix | Delete
'new_version' => WPCOM_JSON_API__CURRENT_VERSION,
[350] Fix | Delete
'jp_disabled' => false,
[351] Fix | Delete
'path_labels' => array(),
[352] Fix | Delete
'rest_route' => null,
[353] Fix | Delete
'rest_min_jp_version' => null,
[354] Fix | Delete
'request_format' => array(),
[355] Fix | Delete
'response_format' => array(),
[356] Fix | Delete
'query_parameters' => array(),
[357] Fix | Delete
'version' => 'v1',
[358] Fix | Delete
'example_request' => '',
[359] Fix | Delete
'example_request_data' => '',
[360] Fix | Delete
'example_response' => '',
[361] Fix | Delete
'required_scope' => '',
[362] Fix | Delete
'pass_wpcom_user_details' => false,
[363] Fix | Delete
'custom_fields_filtering' => false,
[364] Fix | Delete
'allow_cross_origin_request' => false,
[365] Fix | Delete
'allow_unauthorized_request' => false,
[366] Fix | Delete
'allow_jetpack_site_auth' => false,
[367] Fix | Delete
'allow_jetpack_token_auth' => false,
[368] Fix | Delete
'allow_upload_token_auth' => false,
[369] Fix | Delete
'allow_fallback_to_jetpack_blog_token' => false,
[370] Fix | Delete
);
[371] Fix | Delete
[372] Fix | Delete
$args = wp_parse_args( $args, $defaults );
[373] Fix | Delete
[374] Fix | Delete
$this->in_testing = $args['in_testing'];
[375] Fix | Delete
[376] Fix | Delete
$this->allowed_if_flagged = $args['allowed_if_flagged'];
[377] Fix | Delete
$this->allowed_if_red_flagged = $args['allowed_if_red_flagged'];
[378] Fix | Delete
$this->allowed_if_deleted = $args['allowed_if_deleted'];
[379] Fix | Delete
[380] Fix | Delete
$this->description = $args['description'];
[381] Fix | Delete
$this->group = $args['group'];
[382] Fix | Delete
$this->stat = $args['stat'];
[383] Fix | Delete
$this->force = $args['force'];
[384] Fix | Delete
$this->jp_disabled = $args['jp_disabled'];
[385] Fix | Delete
[386] Fix | Delete
$this->method = $args['method'];
[387] Fix | Delete
$this->path = $args['path'];
[388] Fix | Delete
$this->path_labels = $args['path_labels'];
[389] Fix | Delete
$this->min_version = $args['min_version'];
[390] Fix | Delete
$this->max_version = $args['max_version'];
[391] Fix | Delete
$this->deprecated = $args['deprecated'];
[392] Fix | Delete
$this->new_version = $args['new_version'];
[393] Fix | Delete
[394] Fix | Delete
$this->rest_route = $args['rest_route'];
[395] Fix | Delete
$this->rest_min_jp_version = $args['rest_min_jp_version'];
[396] Fix | Delete
[397] Fix | Delete
// Ensure max version is not less than min version.
[398] Fix | Delete
if ( version_compare( $this->min_version, $this->max_version, '>' ) ) {
[399] Fix | Delete
$this->max_version = $this->min_version;
[400] Fix | Delete
}
[401] Fix | Delete
[402] Fix | Delete
$this->pass_wpcom_user_details = $args['pass_wpcom_user_details'];
[403] Fix | Delete
$this->custom_fields_filtering = (bool) $args['custom_fields_filtering'];
[404] Fix | Delete
[405] Fix | Delete
$this->allow_cross_origin_request = (bool) $args['allow_cross_origin_request'];
[406] Fix | Delete
$this->allow_unauthorized_request = (bool) $args['allow_unauthorized_request'];
[407] Fix | Delete
$this->allow_jetpack_site_auth = (bool) $args['allow_jetpack_site_auth'];
[408] Fix | Delete
$this->allow_jetpack_token_auth = (bool) $args['allow_jetpack_token_auth'];
[409] Fix | Delete
$this->allow_upload_token_auth = (bool) $args['allow_upload_token_auth'];
[410] Fix | Delete
$this->allow_fallback_to_jetpack_blog_token = (bool) $args['allow_fallback_to_jetpack_blog_token'];
[411] Fix | Delete
$this->require_rewind_auth = isset( $args['require_rewind_auth'] ) ? (bool) $args['require_rewind_auth'] : false;
[412] Fix | Delete
[413] Fix | Delete
$this->version = $args['version'];
[414] Fix | Delete
[415] Fix | Delete
$this->required_scope = $args['required_scope'];
[416] Fix | Delete
[417] Fix | Delete
if ( $this->request_format ) {
[418] Fix | Delete
$this->request_format = array_filter( array_merge( $this->request_format, $args['request_format'] ) );
[419] Fix | Delete
} else {
[420] Fix | Delete
$this->request_format = $args['request_format'];
[421] Fix | Delete
}
[422] Fix | Delete
[423] Fix | Delete
if ( $this->response_format ) {
[424] Fix | Delete
$this->response_format = array_filter( array_merge( $this->response_format, $args['response_format'] ) );
[425] Fix | Delete
} else {
[426] Fix | Delete
$this->response_format = $args['response_format'];
[427] Fix | Delete
}
[428] Fix | Delete
[429] Fix | Delete
if ( false === $args['query_parameters'] ) {
[430] Fix | Delete
$this->query = array();
[431] Fix | Delete
} elseif ( is_array( $args['query_parameters'] ) ) {
[432] Fix | Delete
$this->query = array_filter( array_merge( $this->query, $args['query_parameters'] ) );
[433] Fix | Delete
}
[434] Fix | Delete
[435] Fix | Delete
$this->api = WPCOM_JSON_API::init(); // Auto-add to WPCOM_JSON_API.
[436] Fix | Delete
$this->links = WPCOM_JSON_API_Links::getInstance();
[437] Fix | Delete
[438] Fix | Delete
/** Example Request/Response */
[439] Fix | Delete
[440] Fix | Delete
// Examples for endpoint documentation request.
[441] Fix | Delete
$this->example_request = $args['example_request'];
[442] Fix | Delete
$this->example_request_data = $args['example_request_data'];
[443] Fix | Delete
$this->example_response = $args['example_response'];
[444] Fix | Delete
[445] Fix | Delete
$this->api->add( $this );
[446] Fix | Delete
[447] Fix | Delete
if ( ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM ) && $this->rest_route && ( ! defined( 'XMLRPC_REQUEST' ) || ! XMLRPC_REQUEST ) ) {
[448] Fix | Delete
$this->create_rest_route_for_endpoint();
[449] Fix | Delete
}
[450] Fix | Delete
}
[451] Fix | Delete
[452] Fix | Delete
/**
[453] Fix | Delete
* Get all query args. Prefill with defaults.
[454] Fix | Delete
*
[455] Fix | Delete
* @param bool $return_default_values Whether to include default values in the response.
[456] Fix | Delete
* @param bool $cast_and_filter Whether to cast and filter input according to the documentation.
[457] Fix | Delete
* @return array
[458] Fix | Delete
*/
[459] Fix | Delete
public function query_args( $return_default_values = true, $cast_and_filter = true ) {
[460] Fix | Delete
$args = array_intersect_key( $this->api->query, $this->query );
[461] Fix | Delete
[462] Fix | Delete
if ( ! $cast_and_filter ) {
[463] Fix | Delete
return $args;
[464] Fix | Delete
}
[465] Fix | Delete
[466] Fix | Delete
return $this->cast_and_filter( $args, $this->query, $return_default_values );
[467] Fix | Delete
}
[468] Fix | Delete
[469] Fix | Delete
/**
[470] Fix | Delete
* Get POST body data.
[471] Fix | Delete
*
[472] Fix | Delete
* @param bool $return_default_values Whether to include default values in the response.
[473] Fix | Delete
* @param bool $cast_and_filter Whether to cast and filter input according to the documentation.
[474] Fix | Delete
* @return mixed
[475] Fix | Delete
*/
[476] Fix | Delete
public function input( $return_default_values = true, $cast_and_filter = true ) {
[477] Fix | Delete
$return = null;
[478] Fix | Delete
$input = trim( (string) $this->api->post_body );
[479] Fix | Delete
$content_type = (string) $this->api->content_type;
[480] Fix | Delete
if ( $content_type ) {
[481] Fix | Delete
list ( $content_type ) = explode( ';', $content_type );
[482] Fix | Delete
}
[483] Fix | Delete
$content_type = trim( $content_type );
[484] Fix | Delete
switch ( $content_type ) {
[485] Fix | Delete
case 'application/json':
[486] Fix | Delete
case 'application/x-javascript':
[487] Fix | Delete
case 'text/javascript':
[488] Fix | Delete
case 'text/x-javascript':
[489] Fix | Delete
case 'text/x-json':
[490] Fix | Delete
case 'text/json':
[491] Fix | Delete
$return = json_decode( $input, true );
[492] Fix | Delete
[493] Fix | Delete
if ( JSON_ERROR_NONE !== json_last_error() ) {
[494] Fix | Delete
return null;
[495] Fix | Delete
}
[496] Fix | Delete
[497] Fix | Delete
break;
[498] Fix | Delete
case 'multipart/form-data':
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function