@@ -29,6 +29,10 @@ final class HttpClient
2929
3030 private $ _method ;
3131
32+ private $ _responseHeaders = [];
33+
34+ private $ _requestResponse ;
35+
3236 private $ _options = [];
3337
3438 /**
@@ -225,7 +229,7 @@ public function request($url, $type, $data, $headers = null, $options = null)
225229
226230 $ requestResponse = wp_remote_request ($ url , $ options );
227231
228- $ responseCode = wp_remote_retrieve_response_code ( $ requestResponse) ;
232+ $ this -> _requestResponse = $ requestResponse ;
229233
230234 if (is_wp_error ($ requestResponse )) {
231235 return $ requestResponse ;
@@ -235,17 +239,19 @@ public function request($url, $type, $data, $headers = null, $options = null)
235239
236240 $ decodedData = JSON ::decode ($ responseBody );
237241
238- $ response = empty ( $ decodedData ) ? $ responseBody : $ decodedData ;
242+ $ this -> _responseHeaders = wp_remote_retrieve_headers ( $ requestResponse ) ;
239243
240- if (!empty ($ responseCode )) {
241- if (!empty ($ response ) && \is_object ($ response )) {
242- $ response ->status_code = $ responseCode ;
243- } else {
244- $ response = (object ) ['status_code ' => $ responseCode ];
245- }
246- }
244+ return empty ($ decodedData ) ? $ responseBody : $ decodedData ;
245+ }
247246
248- return $ response ;
247+ public function getResponseHeaders ()
248+ {
249+ return $ this ->_responseHeaders ;
250+ }
251+
252+ public function getResponseCode ()
253+ {
254+ return wp_remote_retrieve_response_code ($ this ->_requestResponse );
249255 }
250256
251257 private function setDefault (array $ config )
0 commit comments