PluginProbe
WPGet API – Connect to any external REST API / 1.4.0
WPGet API – Connect to any external REST API v1.4.0
1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.3 2.1.4 2.1.5 2.2.0 2.2.1 2.2.10 2.2.2 2.2.3 All 97 releases
← All changes | includes/class-api.php +103 -454 2.0.11.4.0 View file →
@@ -26,13 +26,9 @@
26 26 public $endpoint = ''; // the endpoint that we will get
27 27 public $query_parameters = ''; // the query paramaters appended to url
28 28 public $header_parameters = ''; // the header paramaters
29 29 public $body_parameters = ''; // the body paramaters
30 - public $body_json_encode = ''; // body_json_encode body
31 - public $body_url_encode = ''; // urlencode body
32 - public $body_base64_encode = ''; // base64 encode body
33 - public $body_xml_format = ''; // xml format body
34 - public $xml_root_node = 'root'; // root node for xml
30 + public $body_json_encode = ''; // the body_json_encode
35 31
36 32 public $response = ''; // the returned response
37 33
38 34 public $final_url = ''; // final URL
@@ -37,15 +33,12 @@
37 33
38 34 public $final_url = ''; // final URL
39 35 public $final_request_args = array(); // final request_args
40 36
41 - public $results_format = 'json_string'; // results format
37 + public $results_format = 'json_string'; // reseults format
42 38
43 - public $response_code = ''; // the response code from the call
44 -
45 39 public $timeout = 10; // the timeout
46 40 public $sslverify = 1; // the paramaters
47 - public $debug = false;
48 41
49 42
50 43 /**
51 44 * Main constructor
@@ -63,9 +56,9 @@
63 56 $this->endpoint_id = sanitize_text_field( $endpoint_id );
64 57 $this->keys = $keys;
65 58 $this->args = $args;
66 59
67 - add_filter( 'wpgetapi_raw_data', array( $this, 'maybe_add_debug_info' ), 99, 2 );
60 + add_filter( 'wpgetapi_raw_data', array( $this, 'maybe_add_debug_info' ), 5, 2 );
68 61
69 62 }
70 63
71 64
@@ -73,29 +66,8 @@
73 66 * Init our api data
74 67 */
75 68 public function init() {
76 69
77 - // if we are doing importer plugin,
78 - // we need to intercept and modify most of our methods values
79 - if( $this->api_id == 'wpgetapi_importer' ) {
80 -
81 - $data = apply_filters( 'wpgetapi_api_importer_init', $this );
82 -
83 - if( $data ) {
84 -
85 - foreach ($data as $key => $value) {
86 - $this->{$key} = $value;
87 - }
88 -
89 - $this->query_parameters = ! empty( $this->query_parameters ) ? $this->do_parameters( $this->query_parameters ) : array();
90 - $this->header_parameters = ! empty( $this->header_parameters ) ? $this->do_parameters( $this->header_parameters ) : array();
91 - $this->body_parameters = ! empty( $this->body_parameters ) ? $this->do_parameters( $this->body_parameters ) : array();
92 - return;
93 -
94 - }
95 -
96 - }
97 -
98 70 // do some checks
99 71 if( empty( $this->setup ) || ! isset( $this->setup['apis'] ) || empty( $this->setup['apis'] ) )
100 72 return 'No API found.';
101 73
@@ -114,9 +86,9 @@
114 86 // loop through endpoints
115 87 foreach ( $this->api['endpoints'] as $index => $endpoint ) {
116 88
117 89 if( $this->endpoint_id == $endpoint['id'] ) {
118 -
90 +
119 91 $this->method = isset( $endpoint['method'] ) && $endpoint['method'] != '' ? sanitize_text_field( $endpoint['method'] ) : 'GET';
120 92 $this->cache_time = isset( $endpoint['cache_time'] ) && ! empty( $endpoint['cache_time'] ) ? absint( $endpoint['cache_time'] ) : '';
121 93 $this->endpoint = isset( $endpoint['endpoint'] ) && ! empty( $endpoint['endpoint'] ) ? sanitize_text_field( $endpoint['endpoint'] ) : '';
122 94
@@ -125,30 +97,11 @@
125 97 $this->header_parameters = isset( $endpoint['header_parameters'] ) && ! empty( $endpoint['header_parameters'] ) ? $this->do_parameters( $endpoint['header_parameters'] ) : array();
126 98
127 99 $this->body_parameters = isset( $endpoint['body_parameters'] ) && ! empty( $endpoint['body_parameters'] ) ? $this->do_parameters( $endpoint['body_parameters'] ) : array();
128 100
129 - // how to encode the body
130 - $this->body_json_encode = isset( $endpoint['body_json_encode'] ) && $endpoint['body_json_encode'] == 'true' ? true : false;
131 - $this->body_url_encode = isset( $endpoint['body_json_encode'] ) && $endpoint['body_json_encode'] == 'url' ? true : false;
132 - $this->body_base64_encode = isset( $endpoint['body_json_encode'] ) && $endpoint['body_json_encode'] == 'base64' ? true : false;
133 - $this->body_xml_format = isset( $endpoint['body_json_encode'] ) && $endpoint['body_json_encode'] == 'xml' ? true : false;
134 -
135 - $this->xml_root_node = isset( $endpoint['xml_root'] ) && ! empty( $endpoint['xml_root'] ) ? $endpoint['xml_root'] : $this->xml_root_node;
136 -
101 + $this->body_json_encode = isset( $endpoint['body_json_encode'] ) && ! empty( $endpoint['body_json_encode'] ) ? sanitize_text_field( $endpoint['body_json_encode'] ) : true;
137 102 $this->results_format = isset( $endpoint['results_format'] ) ? sanitize_text_field( $endpoint['results_format'] ) : $this->results_format;
138 -
139 -
140 - if(
141 - // set the format to php array data if html format is set
142 - ( isset( $this->args['format'] ) && $this->args['format'] == 'html' && $this->results_format != 'xml_array' ) ||
143 - // set the format to php array data if it is set in the args (coming from the importer)
144 - ( isset( $this->args['results_format'] ) && $this->args['results_format'] == 'json_decoded' )
145 - ) {
146 - $this->results_format = 'json_decoded';
147 - }
148 -
149 103 }
150 -
151 104 }
152 105
153 106 $this->timeout = isset( $this->api['timeout'] ) && ! empty( $this->api['timeout'] ) ? $this->api['timeout'] : $this->timeout;
154 107 $this->sslverify = isset( $this->api['sslverify'] ) ? absint( $this->api['sslverify'] ) : $this->sslverify;
@@ -161,21 +114,58 @@
161 114 *
162 115 * @param string $field Field to retrieve
163 116 */
164 117 public function endpoint_output() {
118 + return $this->do_the_call();
119 + }
165 120
166 - do_action( 'wpgetapi_before_do_the_call', $this );
167 121
168 - return $this->do_the_call();
122 + /**
123 + * Sort out the parameters if they exist
124 + */
125 + public function do_parameters( $parameters ) {
126 +
127 + $new_array = array();
128 + $parameters = $this->decrypt($parameters);
169 129
130 + if( is_array( $parameters ) ) {
131 + foreach ( $parameters as $key => $parameter ) {
132 + if( ! empty( $parameter['name'] ) && ! empty( $parameter['value'] ) ) {
133 + $parameter['value'] = stripslashes( $parameter['value'] );
134 + $new_array[ sanitize_text_field( $parameter['name'] ) ] = $parameter['value'];
135 + }
136 + }
137 + }
138 +
139 + // look for array or json string and sort these out - for using such things in shortcode
140 + if( is_array( $new_array ) ) {
141 +
142 + foreach ( $new_array as $key => $value ) {
143 +
144 + // checking if the parameters have a json string
145 + if ( substr( $value, 0, 1 ) === '{' && substr( $value, -1 ) === '}' ) {
146 + $new_array[ $key ] = json_decode( $value, true);
147 + }
148 +
149 + // checking if the parameters have an array within the string
150 + // if they do, create them as an actual array
151 + if ( substr( $value, 0, 1 ) === '[' && substr( $value, -1 ) === ']' ) {
152 + $new_array[ $key ] = array( $value );
153 + }
154 +
155 + }
156 +
157 + }
158 +
159 + return $new_array;
160 +
170 161 }
171 162
172 -
173 163 /**
174 164 * Send the request and return our data
175 165 */
176 166 public function do_the_call() {
177 -
167 +
178 168 $this->init();
179 169
180 170 // build the URL
181 171 $this->final_url = apply_filters( 'wpgetapi_final_url', $this->build_url(), $this );
@@ -181,60 +171,28 @@
181 171 $this->final_url = apply_filters( 'wpgetapi_final_url', $this->build_url(), $this );
182 172
183 173 // build the request args
184 174 $this->final_request_args = apply_filters( 'wpgetapi_final_request_args', $this->build_request_args(), $this );
185 -
186 - /**
187 - * Check if we should stop or not. Setting $on to true, will stop us calling the api.
188 - * @param bool $on Whether on is set or not.
189 - */
190 175
191 - if ( apply_filters( 'wpgetapi_should_we_stop', false, $this ) ) {
192 - return;
193 - }
194 -
195 176 // POST request
196 177 if( $this->method == 'POST' )
197 178 $this->response = $this->POST_request();
198 179
199 - // PUT request
200 - if( $this->method == 'PUT' )
201 - $this->response = $this->PUT_request();
202 -
203 - // PATCH request
204 - if( $this->method == 'PATCH' )
205 - $this->response = $this->PATCH_request();
206 -
207 180 // GET request
208 181 if( $this->method == 'GET' )
209 182 $this->response = $this->GET_request();
210 183
211 - // DELETE request
212 - if( $this->method == 'DELETE' )
213 - $this->response = $this->DELETE_request();
214 -
215 184 // wp error
216 185 if( is_wp_error( $this->response ) ) {
217 - return apply_filters( 'wpgetapi_raw_error_data', json_encode( $this->response ), $this );
186 + return apply_filters( 'wpgetapi_raw_data', json_encode( $this->response ), $this );
218 187 }
219 188
220 - // get response_code
221 - $this->response_code = wp_remote_retrieve_response_code( $this->response );
189 + $data = wp_remote_retrieve_body( $this->response );
222 190
223 - // action to intercept call depending on response_code
224 - $this->response = apply_filters( 'wpgetapi_before_retrieve_body', $this->response, $this->response_code, $this );
225 -
226 - // get body
227 - // modified in version 1.6.1 to allow for OAuth 2.0 plugin returning body already
228 - $data = isset( $this->response['body'] ) ? $this->response['body'] : $this->response;
229 -
230 191 // returning in JSON format
231 192 if( $this->results_format == 'json_string' || $this->results_format == 'json_decoded' )
232 - $data = $this->return_data( $data );
193 + $data = $this->output_json( $data );
233 194
234 - if( $data === 'null' )
235 - $data = 'Result is null. Check that all endpoint settings are correct.';
236 -
237 195 return apply_filters( 'wpgetapi_raw_data', $data, $this );
238 196
239 197 }
240 198
@@ -247,27 +205,15 @@
247 205 // first make sure our endpoint starts with a slash
248 206 if ( substr( $this->endpoint, 0, 1 ) != '/' )
249 207 $this->endpoint = '/' . $this->endpoint;
250 208
251 - $this->endpoint = apply_filters( 'wpgetapi_endpoint', $this->endpoint, $this );
252 -
253 209 $url = untrailingslashit( $this->base_url ) . $this->endpoint;
254 210
255 - // if we have a URL pagination event from the import plugin
256 - // we need to modify the URL here
257 - if( isset( $this->args['paginate_url'] ) )
258 - $url = $this->args['paginate_url'];
259 -
260 - // filter our params - added for use in Oauth 2.0 plugin
261 - $params = apply_filters( 'wpgetapi_query_parameters', $this->query_parameters, $this );
262 -
263 211 // add empty array - was getting errors if it was just null or false
264 - $params = empty( $params ) ? array(''=>'') : $params;
212 + $params = empty( $this->query_parameters ) ? array(''=>'') : $this->query_parameters;
265 213
266 - $result = add_query_arg( $params, $url );
214 + return add_query_arg( $params, $url );
267 215
268 - return $result;
269 -
270 216 }
271 217
272 218
273 219 /**
@@ -281,66 +227,24 @@
281 227 ), $this );
282 228
283 229
284 230 // if doing POST request, include body paramters
285 - if( $this->method == 'POST' || $this->method == 'PUT' || $this->method == 'DELETE' || $this->method == 'PATCH' ) {
286 -
287 - // tokens are sent through here
231 + if( $this->method == 'POST' ) {
232 +
288 233 $this->body_parameters = apply_filters( 'wpgetapi_body_parameters', $this->body_parameters, $this );
289 234
290 - // do we json_encode the entire body
291 - if( $this->body_json_encode == true ) {
235 + // do we json_encode the entire body as a string
236 + if( $this->body_json_encode === true || $this->body_json_encode === 'true' )
292 237 $this->body_parameters = json_encode( $this->body_parameters );
293 - }
294 238
295 - // do we urlencode the entire body
296 - if( $this->body_parameters && $this->body_url_encode == true ) {
297 -
298 - // checking if the parameters have a json string (raw)
299 - if (
300 - ( ! is_array( $this->body_parameters ) ) &&
301 - ( substr( $this->body_parameters, 0, 1 ) === '{' || substr( $this->body_parameters, 0, 1 ) === '[' )
302 - ) {
303 - $this->body_parameters = json_decode( $this->body_parameters, true );
304 - }
305 -
306 - $this->body_parameters = http_build_query( $this->body_parameters, '', '&' );
239 + // add our body parameters
240 + $headers['headers']['body'] = $this->body_parameters;
307 241
308 - }
309 -
310 - // do we xml the entire body
311 - if( $this->body_parameters && $this->body_xml_format == true ) {
312 -
313 - $xml = new SimpleXmlElement( '<' . $this->xml_root_node . '/>' );
314 -
315 - foreach( $this->body_parameters as $key => $value) {
316 - $xml->addChild( $key, $value );
317 - }
318 -
319 - $this->body_parameters = $xml->asXML();
320 -
321 - }
322 -
323 - // do we base64 encode the entire body
324 - if( $this->body_parameters && $this->body_base64_encode == true ) {
325 -
326 - $this->body_parameters = is_array( $this->body_parameters ) ? json_encode( $this->body_parameters ) : $this->body_parameters;
327 - $this->body_parameters = base64_encode( $this->body_parameters );
328 -
329 - }
330 -
331 - // add our body parameters
332 - if( $this->body_parameters && ! empty( $this->body_parameters ) )
333 - $headers['body'] = $this->body_parameters;
334 -
335 242 }
336 243
337 - // get our body paramters as they are formatted
338 - $this->body_parameters = apply_filters( 'wpgetapi_final_body_parameters', $this->body_parameters, $this );
339 -
340 244 // add headers to our final request args
341 245 $this->final_request_args = wp_parse_args( $headers, $this->final_request_args );
342 -
246 +
343 247 // build the args taht are sent to the request
344 248 $default_args = apply_filters( 'wpgetapi_default_request_args_parameters', array(
345 249 'timeout' => $this->timeout,
346 250 'sslverify' => $this->sslverify,
@@ -353,10 +257,8 @@
353 257
354 258 }
355 259
356 260
357 -
358 -
359 261 /**
360 262 * Do a GET request
361 263 */
362 264 public function GET_request() {
@@ -362,163 +264,42 @@
362 264 public function GET_request() {
363 265 $response = '';
364 266 // so we can so something before the remote_get (caching)
365 267 $response = apply_filters( 'wpgetapi_before_get_request', $response, $this );
366 -
367 268 if( empty( $response ) )
368 269 $response = wp_remote_get( $this->final_url, $this->final_request_args );
270 +
369 271 return $response;
370 272 }
371 273
274 +
372 275 /**
373 276 * Do a POST request
374 277 */
375 278 public function POST_request() {
376 - $this->final_request_args['method'] = 'POST';
377 279 $response = wp_remote_post( $this->final_url, $this->final_request_args );
378 280 return $response;
379 281 }
380 282
381 - /**
382 - * Do a PUT request
383 - */
384 - public function PUT_request() {
385 - $this->final_request_args['method'] = 'PUT';
386 - $response = wp_remote_request( $this->final_url, $this->final_request_args );
387 - return $response;
388 - }
389 283
390 284 /**
391 - * Do a PATCH request
285 + * return JSON data
392 286 */
393 - public function PATCH_request() {
394 - $this->final_request_args['method'] = 'PATCH';
395 - $response = wp_remote_request( $this->final_url, $this->final_request_args );
396 - return $response;
397 - }
287 + public function output_json( $data ) {
398 288
399 - /**
400 - * Do a DELETE request
401 - */
402 - public function DELETE_request() {
403 - $this->final_request_args['method'] = 'DELETE';
404 - $response = wp_remote_request( $this->final_url, $this->final_request_args );
405 - return $response;
406 - }
407 -
408 -
409 - /**
410 - * return data
411 - */
412 - public function return_data( $data ) {
413 -
414 - $data = apply_filters( 'wpgetapi_json_response_body_before_decode', $data, $this->keys );
415 -
416 289 // converts all data to arrays, removing objects
417 - if( is_string( $data ) ) {
418 - $decode = json_decode( $data, true );
419 - if( json_last_error() ) {
420 - return esc_html( $data );
421 - } else {
422 - $data = $decode;
423 - }
424 - }
290 + $data = json_decode( $data, true );
291 + $data = apply_filters( 'wpgetapi_json_response_body', $data, $this->keys );
425 292
426 - $data = apply_filters( 'wpgetapi_json_response_body', $data, $this->keys );
427 -
428 293 if( $this->results_format == 'json_string' )
429 294 return trim( json_encode( $data ),'"');
430 -
295 +
431 296 if( $this->results_format == 'json_decoded' )
432 297 return $data;
433 298
434 299 }
435 300
436 - /**
437 - * Sort out the parameters if they exist
438 - */
439 - public function do_parameters( $parameters ) {
440 301
441 - $new_array = array();
442 - $raw = '';
443 - $parameters = $this->decrypt( $parameters );
444 -
445 - if( is_array( $parameters ) ) {
446 - foreach ( $parameters as $key => $parameter ) {
447 -
448 - if( ! empty( $parameter['name'] ) && ! empty( $parameter['value'] ) ) {
449 -
450 - $parameter['value'] = stripslashes( $parameter['value'] );
451 -
452 - // if we have wpgetapi_on, delete it so we don't send to api
453 - if( $parameter['name'] == 'wpgetapi_on' ) {
454 - unset( $parameters[ $key ] );
455 - continue;
456 - }
457 -
458 - $new_array[ sanitize_text_field( $parameter['name'] ) ] = $parameter['value'];
459 -
460 - // if we are sending raw body
461 - } else if( empty( $parameter['name'] ) && ! empty( $parameter['value'] ) ) {
462 -
463 - $raw = stripslashes( $parameter['value'] );
464 -
465 - }
466 -
467 - }
468 - }
469 -
470 - // look for array or json string and sort these out - for using such things in shortcode
471 - if( ! empty( $new_array ) ) {
472 -
473 - foreach ( $new_array as $key => $value ) {
474 -
475 - // checking if the parameters have a json string
476 - if ( strpos( $value, '{' ) !== false && strpos( $value, '}' ) !== false ) {
477 - //if ( substr( $value, 0, 1 ) === '{' && substr( $value, -1 ) === '}' ) {
478 - $new_array[ $key ] = json_decode( $value, true );
479 - } else
480 -
481 - // checking if the parameters have an array within the string
482 - // if they do, create them as an actual array
483 - if ( substr( $value, 0, 1 ) === '[' && substr( $value, -1 ) === ']' ) {
484 - $value = trim( $value,"[]" );
485 - $new_array[ $key ] = array( $value );
486 - }
487 -
488 - // set value as integer
489 - if ( strpos( $value, 'integer(' ) !== false && substr( $value, -1 ) === ')' ) {
490 - preg_match("/\(([^\)]*)\)/", $value, $match );
491 - $result = $match[1];
492 - $new_array[ $key ] = absint( $result );
493 - }
494 -
495 - // set value as float
496 - if ( strpos( $value, 'float(' ) !== false && substr( $value, -1 ) === ')' ) {
497 - preg_match("/\(([^\)]*)\)/", $value, $match );
498 - $result = $match[1];
499 - $new_array[ $key ] = (float) $result;
500 -
501 - }
502 -
503 - // set value as boolean
504 - if ( strpos( $value, 'boolean(' ) !== false && substr( $value, -1 ) === ')' ) {
505 - preg_match("/\(([^\)]*)\)/", $value, $match );
506 - $result = $match[1];
507 - $result = filter_var( $result, FILTER_VALIDATE_BOOLEAN );
508 - $new_array[ $key ] = $result;
509 -
510 - }
511 -
512 - }
513 -
514 - }
515 -
516 - return $raw ? $raw : $new_array;
517 -
518 - }
519 -
520 -
521 302 /**
522 303 * decrypt our parameters from the DB
523 304 */
524 305 public function decrypt( $array_or_string ) {
@@ -544,86 +325,20 @@
544 325
545 326 /**
546 327 * debug
547 328 */
548 - public function maybe_add_debug_info( $data, $wpgetapi ) {
329 + public function maybe_add_debug_info( $data, $this_data ) {
549 330
550 - if(
551 - ( isset( $this->args['debug'] ) && ( $this->args['debug'] === true || $this->args['debug'] === 'true' ) ) ||
552 - ( isset( $this->args['test_endpoint'] ) && ( $this->args['test_endpoint'] === true ) )
553 - ) {
331 + if( isset( $this->args['debug'] ) && ( $this->args['debug'] === true || $this->args['debug'] === 'true' ) ) {
554 332
555 - $this->debug = true;
556 -
557 - // admin test endpoint button
558 - $testing = isset( $this->args['test_endpoint'] ) && ( $this->args['test_endpoint'] === true ) ? true : false;
559 -
560 - // get api status from response code
561 - $status = array(
562 - 'title' => 'Error in API response.',
563 - 'desc' => 'Check all details within your endpoint. Something is misconfigured.',
564 - 'type' => '<span class="dashicons dashicons-dismiss"></span>'
565 - );
566 -
567 - if( $this->response_code == 200 ) {
568 - $status = array(
569 - 'title' => 'Success!',
570 - 'desc' => 'Your API is returning a success message and is returning the data as shown in the Data Output section below. You can modify this by changing the Results Format option or see <a href="https://wpgetapi.com/docs/format-api-data-as-html/">here</a> for info on formatting this data.',
571 - 'type' => '<span class="dashicons dashicons-yes-alt"></span>'
572 - );
573 - }
574 - if( $this->response_code == 400 || $this->response_code == 404 ) {
575 - $status = array(
576 - 'title' => 'Bad Request',
577 - 'desc' => 'This could indicate that the URL you are calling is incorrect or that some other data is missing or incorrect. Please check your Base URL and Endpoint are correct as well as the Request Method.',
578 - 'type' => '<span class="dashicons dashicons-dismiss"></span>'
579 - );
580 - }
581 - if( $this->response_code == 401 ) {
582 - $status = array(
583 - 'title' => 'Unauthorised',
584 - 'desc' => 'You are successfully connecting to your API. But your API key, login or API credentials are incorrect. See <a href="https://wpgetapi.com/docs/authentication-authorization/">here</a> for info on correctly authorizing your API requests.',
585 - 'type' => '<span class="dashicons dashicons-warning"></span>'
586 - );
587 - }
588 - if( $this->response_code == 403 ) {
589 - $status = array(
590 - 'title' => 'Forbidden',
591 - 'desc' => 'This could indicate that you may need to get your IP address whitelisted with your API provider or that you do not have access to this API.',
592 - 'type' => '<span class="dashicons dashicons-dismiss"></span>'
593 - );
594 - }
595 - if( $this->response_code == 405 ) {
596 - $status = array(
597 - 'title' => 'Method Not Allowed',
598 - 'desc' => 'Try changing the Request Method within the endpoint settings.',
599 - 'type' => '<span class="dashicons dashicons-dismiss"></span>'
600 - );
601 - }
602 - if( $this->response_code == 415 ) {
603 - $status = array(
604 - 'title' => 'Unsupported Media Type',
605 - 'desc' => 'Try adding "Content-type" to the Headers with the Value of "json/application" as shown <a href="https://wpgetapi.com/docs/troubleshooting/">here</a>.',
606 - 'type' => '<span class="dashicons dashicons-dismiss"></span>'
607 - );
608 - }
609 - if( $this->response_code == 500 ) {
610 - $status = array(
611 - 'title' => 'Internal Server Error',
612 - 'desc' => 'This indicates an issue with the server. Contact your API provider.',
613 - 'type' => '<span class="dashicons dashicons-dismiss"></span>'
614 - );
615 - }
616 -
617 -
618 333 ob_start(); ?>
619 334
620 335 <style>
621 336
622 337 .wpgetapi-debug {
623 - background: #fff;
338 + background: #f4f4f4;
624 339 padding: 20px;
625 - box-shadow: 0 0 1px #aaa;
340 + border: 1px solid #ccc;
626 341 margin: 20px;
627 342 font-size: 15px;
628 343 }
629 344 .wpgetapi-debug
@@ -638,9 +353,9 @@
638 353 }
639 354 .wpgetapi-debug p.small {
640 355 font-size: 85%;
641 356 color: #999;
642 - margin: 0 0 12px !important;
357 + margin-bottom: 15px !important
643 358 }
644 359 .wpgetapi-debug h5 {
645 360 font-weight: bold;
646 361 font-size: 18px;
@@ -650,154 +365,86 @@
650 365 .wpgetapi-debug .debug-item {
651 366 margin: 10px 0;
652 367 background: #fff;
653 368 padding: 15px 20px;
654 - display: inline-block !important;
369 + display: inline-block !important;;
655 370 width: 100% !important;
656 - box-shadow: 0 3px 8px rgb(0 0 0 / 6%);
657 - border: 1px solid #eee;
371 + box-shadow: 0 0 5px rgba(0,0,0,0.1)
658 372 }
659 373 .wpgetapi-debug .debug-item h6 {
660 374 font-weight: bold;
661 - font-size: 14px;
662 - margin: 0;
375 + font-size: 16px;
376 + margin: 0 0 3px;
663 377 text-transform: none !important;
664 378 }
665 379 .wpgetapi-debug .debug-item .debug-result,
666 380 .wpgetapi-debug .debug-item .debug-result pre {
667 381 font-family: monospace !important;
668 - font-size: 13px !important;
382 + font-size: 15px !important;
669 383 margin: 0 !important;
670 - padding: 8px 12px;
671 - background: #f4f7f9;
384 + padding: 10px 12px;
385 + background: #f8f8f8;
672 386 }
673 387 .wpgetapi-debug .debug-item .debug-result pre {
674 388 border: none;
675 389 padding: 5px
676 390 }
677 -.wpgetapi-debug.testing {
678 - background: transparent;
679 - padding: 0;
680 - box-shadow: none;
681 -}
682 -.wpgetapi-debug.testing .debug-item {
683 - margin: 5px 0;
684 -}
685 -.wpgetapi-debug.testing .debug-item.status {
686 - border: none;
687 - box-shadow: none;
688 - margin-bottom: 15px;
689 -}
690 -.wpgetapi-debug .debug-item.status h5 {
691 - font-size: 15px;
692 -}
693 -.wpgetapi-debug .status .dashicons {
694 - margin: 0 5px 3px 0;
695 -}
696 -.wpgetapi-debug .status .dashicons-yes-alt {
697 - color: #5e9929;
698 -}
699 -.wpgetapi-debug .status .dashicons-dismiss {
700 - color: #cc4646;
701 -}
702 -.wpgetapi-debug .status .dashicons-warning {
703 - color: #dfa12e;
704 -}
705 -.wpgetapi-debug .status .desc {
706 - font-size: 14px;
707 - font-weight: 400 !important;
708 -}
391 +
709 392 </style>
710 393
711 - <div class="wpgetapi-debug <?php echo $testing ? 'testing' : ''; ?>">
394 + <div class="wpgetapi-debug">
712 395
713 - <?php if( $testing ) { ?>
396 + <h5><strong>WPGetAPI, Debug Mode - Plugin Version <?php esc_html_e( WpGetApi()->version ); ?></strong></h5>
397 + <p class="small">Below you will find debug info for the current API call. To turn this off, set debug to false in your shortcode or template tag.<br>Connecting to API's can be tricky - if you require help, please see the <a target="_blank" href="https://wpgetapi.com/docs/">Documentation</a> and if you can't find the answer then please use the contact form on our <a target="_blank" title="Connect WordPress with external API" href="https://wpgetapi.com/">website</a> to get assistance.</p>
714 398
715 - <div class="debug-item status">
716 - <div class="">
717 - <h5><?php _e( $status['type'] ); ?> <?php esc_html_e( $status['title'] ); ?></h5>
718 - <span class="desc"><?php _e( $status['desc'] ); ?></span>
719 - </div>
720 - </div>
721 - <div class="debug-item">
722 - <h6><?php esc_html_e( 'Full URL', 'wpgetapi' ); ?></h6>
723 - <p class="small"><?php esc_html_e( 'The full URL that is being called.', 'wpgetapi' ); ?></p>
724 - <div class="debug-result"><?php esc_html_e( $this->final_url ); ?></div>
725 - </div>
726 -
727 - <div class="debug-item">
728 - <h6><?php esc_html_e( 'Data Output', 'wpgetapi' ); ?></h6>
729 - <p class="small"><?php esc_html_e( 'The output that has been returned from the API. This is what the shortcode or template tag will display and can be formatted however you like.', 'wpgetapi' ); ?></p>
730 - <div class="debug-result"><?php wpgetapi_pp( $data ); ?></div>
731 - </div>
732 -
733 - <div class="debug-item">
734 - <h6><?php esc_html_e( 'Final Request Arguments', 'wpgetapi' ); ?></h6>
735 - <p class="small"><?php esc_html_e( 'The final request arguments sent in the API request. Includes headers and body arguments.', 'wpgetapi' ); ?></p>
736 - <div class="debug-result"><?php wpgetapi_pp( $this->final_request_args ); ?></div>
737 - </div>
738 -
739 - <div class="debug-item">
740 - <h6><?php esc_html_e( 'Response', 'wpgetapi' ); ?></h6>
741 - <p class="small"><?php esc_html_e( 'The full response from the API request.', 'wpgetapi' ); ?></p>
742 - <div class="debug-result"><?php wpgetapi_pp( $this->response); ?></div>
743 - </div>
744 -
745 - <?php } else { ?>
746 -
747 - <h5><strong><?php esc_html_e( 'WPGetAPI, Debug Mode - Plugin Version', 'wpgetapi' ); ?> <?php esc_html_e( WpGetApi()->version ); ?></strong></h5>
748 - <p class="small"><?php esc_html_e( 'Below you will find debug info for the current API call. To turn this off, set debug to false in your shortcode or template tag.', 'wpgetapi' ); ?><br><?php esc_html_e( 'Connecting to API\'s can be tricky - if you require help, please see the', 'wpgetapi' ); ?> <a target="_blank" href="https://wpgetapi.com/docs/"><?php esc_html_e( 'Documentation', 'wpgetapi' ); ?></a>.</p>
749 -
750 399 <div class="debug-item">
751 - <h6><?php esc_html_e( 'Full URL', 'wpgetapi' ); ?></h6>
752 - <p class="small"><?php esc_html_e( 'The full URL that is being called.', 'wpgetapi' ); ?></p>
400 + <h6>Full URL</h6>
401 + <p class="small">The full URL that is being called.</p>
753 402 <div class="debug-result"><?php esc_html_e( $this->final_url ); ?></div>
754 403 </div>
755 404
756 405 <div class="debug-item">
757 - <h6><?php esc_html_e( 'Data Output', 'wpgetapi' ); ?></h6>
758 - <p class="small"><?php esc_html_e( 'The resulting output that has been returned from the API.', 'wpgetapi' ); ?></p>
406 + <h6>Data Output</h6>
407 + <p class="small">The resulting output that has been returned from the API.</p>
759 408 <div class="debug-result"><?php wpgetapi_pp( $data ); ?></div>
760 409 </div>
761 410
762 411 <div class="debug-item">
763 - <h6><?php esc_html_e( 'Query String', 'wpgetapi' ); ?></h6>
764 - <p class="small"><?php esc_html_e( 'The query string parameters (if any) that you have set within the endpoint settings.', 'wpgetapi' ); ?></p>
412 + <h6>Arguments</h6>
413 + <p class="small">The arguments set within your shortcode or template tag.</p>
414 + <div class="debug-result"><?php wpgetapi_pp( $this->args ); ?></div>
415 + </div>
416 +
417 + <div class="debug-item">
418 + <h6>Query String</h6>
419 + <p class="small">The query string parameters (if any) that you have set within the endpoint settings.</p>
765 420 <div class="debug-result"><?php wpgetapi_pp( $this->query_parameters ); ?></div>
766 421 </div>
767 422
768 423 <div class="debug-item">
769 - <h6><?php esc_html_e( 'Headers', 'wpgetapi' ); ?></h6>
770 - <p class="small"><?php esc_html_e( 'The header parameters (if any) that you have set within the endpoint settings.', 'wpgetapi' ); ?></p>
424 + <h6>Headers</h6>
425 + <p class="small">The headers parameters (if any) that you have set within the endpoint settings.</p>
771 426 <div class="debug-result"><?php wpgetapi_pp( $this->header_parameters ); ?></div>
772 427 </div>
773 428
774 429 <div class="debug-item">
775 - <h6><?php esc_html_e( 'Body', 'wpgetapi' ); ?></h6>
776 - <p class="small"><?php esc_html_e( 'The body parameters (if any) that you have set within the endpoint settings.', 'wpgetapi' ); ?></p>
430 + <h6>Body</h6>
431 + <p class="small">The body parameters (if any) that you have set within the endpoint settings.</p>
777 432 <div class="debug-result"><?php wpgetapi_pp( $this->body_parameters ); ?></div>
778 433 </div>
779 434
780 435 <div class="debug-item">
781 - <h6><?php esc_html_e( 'Final Request Arguments', 'wpgetapi' ); ?></h6>
782 - <p class="small"><?php esc_html_e( 'The final request arguments sent in the API request. Includes headers and body arguments.', 'wpgetapi' ); ?></p>
436 + <h6>Final Request Arguments</h6>
437 + <p class="small">The final request arguments sent in the API request. Includes headers and body arguments.</p>
783 438 <div class="debug-result"><?php wpgetapi_pp( $this->final_request_args ); ?></div>
784 439 </div>
785 440
786 441 <div class="debug-item">
787 - <h6><?php esc_html_e( 'Arguments', 'wpgetapi' ); ?></h6>
788 - <p class="small"><?php esc_html_e( 'The arguments set within your shortcode or template tag.', 'wpgetapi' ); ?></p>
789 - <div class="debug-result"><?php wpgetapi_pp( $this->args ); ?></div>
790 - </div>
791 -
792 - <div class="debug-item">
793 - <h6><?php esc_html_e( 'Response', 'wpgetapi' ); ?></h6>
794 - <p class="small"><?php esc_html_e( 'The full response from the API request.', 'wpgetapi' ); ?></p>
442 + <h6>Response</h6>
443 + <p class="small">The full response from the API request.</p>
795 444 <div class="debug-result"><?php wpgetapi_pp( $this->response); ?></div>
796 445 </div>
797 446
798 - <?php } ?>
799 -
800 447 </div>
801 448
802 449 <?php
803 450
@@ -807,9 +454,11 @@
807 454
808 455 return $data;
809 456
810 457 }
458 +
459 +
811 460
812 461 }
813 462
814 463
815 464 }