function RemoteCall($pPage, &$pData, $pExpiration = false) { if (RWLogger::IsOn()) { $params = func_get_args(); RWLogger::LogEnterence("RemoteCall", $params, true); RWLogger::Log("RemoteCall", 'Address: ' . WP_RW__ADDRESS . "/{$pPage}"); } if (false === WP_RW__CACHING_ON) { // No caching on debug mode. $pExpiration = false; } $cacheKey = ''; if (false !== $pExpiration) { // Calc cache index key. $cacheKey = 'rw_' . md5(var_export($pData, true)); // Try to get cached item. $value = get_transient($cacheKey); if (RWLogger::IsOn()) { RWLogger::Log("RemoteCall", "TRANSIENT_KEY - " . $cacheKey); RWLogger::Log("RemoteCall", "TRANSIENT_VAL - " . $value); } // If found returned cached value. if (false !== $value) { if (RWLogger::IsOn()) { RWLogger::Log('RemoteCall', 'IS_CACHED: TRUE'); } return $value; } } if ($this->fs->is_paying_or_trial__premium_only()) { if (RWLogger::IsOn()) { RWLogger::Log("RemoteCall", "SECURE"); } $this->AddToken($pData, true); } if (RWLogger::IsOn()) { RWLogger::Log('REMOTE_CALL_DATA', 'IS_CACHED: FALSE'); RWLogger::Log("RemoteCall", 'REMOTE_CALL_DATA: ' . var_export($pData, true)); RWLogger::Log("RemoteCall", 'Query: "' . WP_RW__ADDRESS . "/{$pPage}?" . http_build_query($pData) . '"'); } if (RWLogger::IsOn()) { RWLogger::Log("wp_remote_post", "exist"); } if (isset($_REQUEST['XDEBUG_SESSION'])) { $pPage = add_query_arg('XDEBUG_SESSION', $_REQUEST['XDEBUG_SESSION'], $pPage); } $rw_ret_obj = wp_remote_post(WP_RW__ADDRESS . "/{$pPage}", array('body' => $pData)); if (is_wp_error($rw_ret_obj)) { $this->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); if (RWLogger::IsOn()) { RWLogger::Log("ret_object", var_export($rw_ret_obj, true)); } if (false !== $pExpiration && !empty($cacheKey)) { set_transient($cacheKey, $rw_ret_obj, $pExpiration); } return $rw_ret_obj; }