api->server->send_status(400); $data = [ [ 'code' => 'aftership_api_jsonp_disabled', 'message' => __('JSONP support is disabled on this site', 'aftership') ] ]; } // Check for invalid characters (only alphanumeric allowed) if (preg_match('/\W/', $_GET['_jsonp'])) { WC()->api->server->send_status(400); $data = [ [ 'code' => 'aftership_api_jsonp_callback_invalid', __('The JSONP callback function is invalid', 'aftership') ] ]; } return $_GET['_jsonp'] . '(' . json_encode($data) . ')'; } $ok = [ 'meta' => [ 'code' => 20000, 'type' => 'OK', 'message' => 'Everything worked as expected' ], 'data' => $data ]; if (isset($data['errors'])) { $error = [ 'meta' => [ 'code' => $this->map_error_code($data['errors'][0]['code']), 'type' => $data['errors'][0]['code'], 'message' => $data['errors'][0]['message'], ], 'data' => '{}' ]; return json_encode($error); } return json_encode($ok); } /** * get error code by error message * @param $code_text * @return int */ private function map_error_code($code_text) { $code = 40010; switch ($code_text) { case 'aftership_api_disabled': $code = 400011; break; default: break; } return $code; } }