Platform::getName()
);
$posts = $posts + $posts_default;
if ($returnUrl) {
return $api . '?' . http_build_query($posts, '', '&');
}
$request = wp_remote_post($api, array(
'timeout' => 20,
'body' => $posts
));
if (is_wp_error($request)) {
foreach ($request->get_error_messages() as $errorMessage) {
Notification::error($errorMessage);
}
return null;
} else {
$data = wp_remote_retrieve_body($request);
$headers = wp_remote_retrieve_headers($request);
$contentType = $headers['content-type'];
}
switch ($contentType) {
case 'text/html; charset=UTF-8':
Notification::error(sprintf('Unexpected response from the API.
Contact us (support@nextendweb.com) with the following log:') . '
');
return array(
'status' => 'ERROR_HANDLED'
);
break;
case 'application/json':
return json_decode($data, true);
}
return $data;
}
private static function parseHeaders(array $headers, $header = null) {
$output = array();
if ('HTTP' === substr($headers[0], 0, 4)) {
list(, $output['status'], $output['status_text']) = explode(' ', $headers[0]);
unset($headers[0]);
}
foreach ($headers as $v) {
$h = preg_split('/:\s*/', $v);
if (count($h) >= 2) {
$output[strtolower($h[0])] = $h[1];
}
}
if (null !== $header) {
if (isset($output[strtolower($header)])) {
return $output[strtolower($header)];
}
return null;
}
return $output;
}
}