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;
 }