public static function RemoteCall($pPage, &$pData) { if (RWLogger::IsOn()) { $params = func_get_args(); RWLogger::LogEnterence("RemoteCall", $params, true); } if (RWLogger::IsOn()) { RWLogger::Log("address", WP_RW__ADDRESS . "/{$pPage}"); } if (false !== WP_RW__USER_SECRET) { if (RWLogger::IsOn()) { RWLogger::Log("is secure call", "true"); } self::AddToken($pData, true); } if (function_exists('wp_remote_post')) { if (RWLogger::IsOn()) { RWLogger::Log("wp_remote_post", "exist"); } $rw_ret_obj = wp_remote_post(WP_RW__ADDRESS . "/{$pPage}", array('body' => $pData)); if (is_wp_error($rw_ret_obj)) { self::$errors = $rw_ret_obj; if (RWLogger::IsOn()) { RWLogger::Log("ret_object", var_export($rw_ret_obj, true)); } return false; } $rw_ret_obj = wp_remote_retrieve_body($rw_ret_obj); } else { $fp = fsockopen(WP_RW__DOMAIN, 80, $err_num, $err_str, 3); if (!$fp) { self::$errors->add('connect', __("Can't connect to Rating-Widget.com", WP_RW__ID)); if (RWLogger::IsOn()) { RWLogger::Log("ret_object", "Can't connect to Rating-Widget.com"); } return false; } if (function_exists('stream_set_timeout')) { stream_set_timeout($fp, 3); } global $wp_version; $request_body = http_build_query($pData, null, '&'); $request = "POST {$pPage} HTTP/1.0\r\n"; $request .= "Host: " . WP_RW__DOMAIN . "\r\n"; $request .= "User-agent: WordPress/{$wp_version}\r\n"; $request .= 'Content-Type: application/x-www-form-urlencoded; charset=' . get_option('blog_charset') . "\r\n"; $request .= 'Content-Length: ' . strlen($request_body) . "\r\n"; fwrite($fp, "{$request}\r\n{$request_body}"); $response = ''; while (!feof($fp)) { $response .= fread($fp, 4096); } fclose($fp); list($headers, $rw_ret_obj) = explode("\r\n\r\n", $response, 2); } if (RWLogger::IsOn()) { RWLogger::Log("ret_object", var_export($rw_ret_obj, true)); } return $rw_ret_obj; }