PluginProbe
WPGet API – Connect to any external REST API / 1.1.0
WPGet API – Connect to any external REST API v1.1.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-admin-options.php +84 -353 1.9.51.1.0 View file →
@@ -45,14 +45,8 @@
45 45 */
46 46 public $options_pages = array();
47 47
48 48 /**
49 - * Is pro plugin installed
50 - * @var array
51 - */
52 - public $pro_plugin = false;
53 -
54 - /**
55 49 * Holds an instance of the object
56 50 *
57 51 * @var Myprefix_Admin
58 52 **/
@@ -65,9 +59,8 @@
65 59 private function __construct() {
66 60 // Set our title
67 61 $this->menu_title = __( 'WPGetAPI', 'wpgetapi' );
68 62 $this->title = __( 'WPGetAPI', 'wpgetapi' );
69 -
70 63 }
71 64
72 65 /**
73 66 * Returns the running object
@@ -89,23 +82,11 @@
89 82 public function hooks() {
90 83 add_action( 'admin_init', array( $this, 'init' ) );
91 84 add_action( 'admin_menu', array( $this, 'add_options_pages' ) );
92 85
93 - add_action( 'cmb2_admin_init', array( $this, 'init_custom_fields' ) );
94 -
95 - add_action( "cmb2_save_options-page_fields", array( $this, 'redirect' ), 1, 2 );
96 -
97 - add_action( 'admin_footer', array( $this, 'load_testing_javascript' ) );
98 -
99 - add_action( 'wp_ajax_wpgetapi_test_endpoint', array( $this, 'test_the_endpoint' ) );
100 -
86 + add_action( 'cmb2_init', array( $this, 'init_custom_fields' ) );
101 87 }
102 88
103 -
104 - /**
105 - * Setup our custom fields
106 - * @since 0.1.0
107 - */
108 89 public function init_custom_fields() {
109 90 require_once WPGETAPIDIR . 'includes/class-fields.php';
110 91 WpGetApi_Parameter_Field::init_parameter();
111 92 }
@@ -114,9 +95,8 @@
114 95 * Register our setting to WP
115 96 * @since 0.1.0
116 97 */
117 98 public function init() {
118 - $this->pro_plugin = is_plugin_active( 'wpgetapi-extras/wpgetapi-extras.php' ) ? true : false;
119 99 $option_tabs = self::option_fields();
120 100 foreach ($option_tabs as $index => $option_tab) {
121 101 register_setting( $option_tab['id'], $option_tab['id'] );
122 102 }
@@ -127,12 +107,16 @@
127 107 * Get our saved API's from setup
128 108 * @since 0.1.0
129 109 */
130 110 public function get_apis() {
111 +
131 112 $setup = get_option( 'wpgetapi_setup' );
113 +
132 114 if( empty( $setup ) || ! isset( $setup['apis'] ) || empty( $setup['apis'] ) )
133 115 return;
116 +
134 117 return $setup['apis'];
118 +
135 119 }
136 120
137 121
138 122 /**
@@ -145,15 +129,15 @@
145 129 if ( ! empty( $this->option_metabox ) ) {
146 130 return $this->option_metabox;
147 131 }
148 132
149 - // setup tab
133 + // sale tab
150 134 $option_metabox[] = array(
151 135 'title' => __( 'Setup', 'wpgetapi' ),
152 136 'menu_title' => __( 'Setup', 'wpgetapi' ),
153 137 'id' => 'wpgetapi_setup',
154 - 'desc' => __( 'Add the details of the API(s) you are using. Endpoints will be setup in the next step after hitting save.', 'wpgetapi' ),
155 - 'show_on' => array( 'key' => 'options-page', 'value' => array( 'wpgetapi_setup' ), ),
138 + 'desc' => __( 'Add the details of your API(s) below and hit the Save button.', 'wpgetapi' ),
139 + 'show_on' => array( 'key' => 'options-page', 'value' => array( 'setup' ), ),
156 140 'show_names' => true,
157 141 'fields' => $this->setup_fields(),
158 142 );
159 143
@@ -175,9 +159,9 @@
175 159 'id' => $metabox_id,
176 160 'desc' => '',
177 161 'show_on' => array( 'key' => 'options-page', 'value' => array( $metabox_id ), ),
178 162 'show_names' => true,
179 - 'fields' => $this->endpoint_fields( $type, $api_id, $base_url ),
163 + 'fields' => $this->api_fields( $type, $api_id, $base_url ),
180 164 );
181 165
182 166 }
183 167
@@ -182,14 +166,13 @@
182 166 }
183 167
184 168 }
185 169
186 - $option_metabox = apply_filters( 'wpgetapi_admin_pages', $option_metabox );
187 -
188 170 return $option_metabox;
189 171
190 172 }
191 173
174 +
192 175 public function setup_fields() {
193 176
194 177 $fields[] = array(
195 178 'id' => 'apis',
@@ -197,42 +180,42 @@
197 180 'name' => '',
198 181 'description' => '',
199 182 'options' => array(
200 183 'group_title' => __( 'API {#}', 'wpgetapi' ),
201 - 'add_button' => __( 'Add New API', 'wpgetapi' ),
184 + 'add_button' => __( 'Add API', 'wpgetapi' ),
202 185 'remove_button' => __( 'Remove API', 'wpgetapi' ),
203 186 'sortable' => true, // beta
204 187 ),
205 188 'fields' => array(
206 189 array(
207 - 'name' => __( 'API Name', 'wpgetapi' ) . '<span class="dashicons dashicons-editor-help" data-tip="' . __( 'The name of this API. Call it whatever you like.', 'wpgetapi' ) . '"></span>',
190 + 'name' => __( 'API Name', 'wpgetapi' ),
208 191 'id' => 'name',
209 192 'type' => 'text',
210 193 'attributes' => array(
211 194 'required' => true,
212 - 'placeholder' => 'Google Maps',
195 + 'placeholder' => 'New API Name',
213 196 ),
214 - 'desc' => '',
197 + 'desc' => __( 'The name of the API you are connecting to.', 'wpgetapi' ),
215 198 ),
216 199 array(
217 - 'name' => __( 'Unique ID', 'wpgetapi' ) . '<span class="dashicons dashicons-editor-help" data-tip="' . __( 'Choose your own unique ID for this API. Use lowercase letters and underscores only!', 'wpgetapi' ) . '"></span>',
200 + 'name' => __( 'API ID', 'wpgetapi' ),
218 201 'id' => 'id',
219 202 'type' => 'text',
220 203 'attributes' => array(
221 204 'required' => true,
222 - 'placeholder' => 'google_maps',
205 + 'placeholder' => 'new_api_name',
223 206 ),
224 - 'desc' => '',
207 + 'desc' => __( 'A unique ID for your API. Once this is set you should not change this value.', 'wpgetapi' ),
225 208 ),
226 209 array(
227 - 'name' => __( 'Base URL', 'wpgetapi' ) . '<span class="dashicons dashicons-editor-help" data-tip="' . __( 'The base URL of the API you are connecting to.', 'wpgetapi' ) . '"></span>',
210 + 'name' => __( 'Base URL', 'wpgetapi' ),
228 211 'id' => 'base_url',
229 212 'type' => 'text',
230 213 'attributes' => array(
231 214 'required' => true,
232 - 'placeholder' => 'https://maps.googleapis.com/maps/api',
215 + 'placeholder' => 'https://newapiurl.com',
233 216 ),
234 - 'desc' => '',
217 + 'desc' => __( 'The base URL of the API you are connecting to.', 'wpgetapi' ),
235 218 ),
236 219
237 220 )
238 221 );
@@ -242,22 +225,40 @@
242 225 }
243 226
244 227
245 228 /**
246 - * Endpoint settings.
229 + * Site wide info on the current sale.
247 230 * @return sale info array
248 231 *
249 232 */
250 - public function endpoint_fields( $type = '', $api_id = '', $base_url = '' ) {
233 + public function api_fields( $type = '', $api_id = '', $base_url = '' ) {
251 234
252 235 $fields = array();
253 236
254 - $cache_disabled = $this->pro_plugin ? '' : 'disabled';
255 - $cache_url = $this->pro_plugin ? '<a target="_blank" href="https://wpgetapi.com/docs/caching-api-calls/">Caching Help</a>' : '<a target="_blank" href="https://wpgetapi.com/downloads/pro-plugin/?utm_campaign=Cache Pro Plugin&utm_medium=Admin&utm_source=User">PRO Feature<span class="dashicons dashicons-external"></span></a>';
256 -
237 + $fields[] = array(
238 + 'name' => __( 'Timeout', 'wpgetapi' ),
239 + 'id' => 'timeout',
240 + 'type' => 'text',
241 + 'desc' => __( 'Timeout of the API call.', 'wpgetapi' ),
242 + 'attributes' => array(
243 + 'placeholder' => '10'
244 + ),
245 + 'before_row' => '<pre class="url"><span>Base URL: </span>' . $base_url . '</pre>',
246 + );
247 + $fields[] = array(
248 + 'name' => __( 'SSL Verify', 'wpgetapi' ),
249 + 'id' => 'sslverify',
250 + 'type' => 'select',
251 + 'desc' => __( 'This should normally be set to true. If you are having issues, you can try false.', 'wpgetapi' ),
252 + 'options' => array(
253 + '1' => 'True',
254 + '0' => 'False'
255 + ),
256 + );
257 +
257 258 $endpoint_fields = apply_filters( 'wpgetapi_fields_endpoints', array(
258 259 array(
259 - 'name' => __( 'Unique ID', 'wpgetapi' ) . '<span class="dashicons dashicons-editor-help" data-tip="' . __( 'Choose your own unique ID for this endpoint. Use lowercase letters and underscores only!', 'wpgetapi' ) . '"></span>',
260 + 'name' => __( 'Unique ID', 'wpgetapi' ),
260 261 'id' => 'id',
261 262 'type' => 'text',
262 263 'classes' => 'field-id',
263 264 'attributes' => array(
@@ -263,15 +264,18 @@
263 264 'attributes' => array(
264 265 'required' => true,
265 266 'placeholder' => 'new_endpoint',
266 267 ),
267 - 'desc' => '',
268 - 'before_row' => "wpgetapi_output_top_of_endpoint",
269 - 'api_id' => $api_id,
270 -
268 + 'desc' => __( 'Choose a unique ID for this endpoint. Once this is set you should not change this value.', 'wpgetapi' ),
269 + 'before_row' => "
270 + <pre class='functions'>
271 + Template Function: </span><span>wpgetapi_endpoint( '" . $api_id . "', '<span class='endpoint_id'></span>', array('debug' => false) );</span><br>
272 + Shortcode: <span>[wpgetapi_endpoint api_id='" . $api_id . "' endpoint_id='<span class='endpoint_id'></span>' debug='false']</span>
273 + </pre>
274 + ",
271 275 ),
272 276 array(
273 - 'name' => __( 'Endpoint', 'wpgetapi' ) . '<span class="dashicons dashicons-editor-help" data-tip="' . __( 'This Endpoint will be appended to the Base URL to create the full URL that will be called.', 'wpgetapi' ) . '"></span>',
277 + 'name' => __( 'Endpoint', 'wpgetapi' ),
274 278 'id' => 'endpoint',
275 279 'type' => 'text',
276 280 'classes' => 'field-endpoint',
277 281 'attributes' => array(
@@ -277,12 +281,12 @@
277 281 'attributes' => array(
278 282 'required' => true,
279 283 'placeholder' => '/newendpoint',
280 284 ),
281 - 'desc' => '',
285 + 'desc' => __( 'The endpoint that will be appended to the base URL to get the data. Include slash at beginning.', 'wpgetapi' ),
282 286 ),
283 287 array(
284 - 'name' => __( 'Method', 'wpgetapi' ) . '<span class="dashicons dashicons-editor-help" data-tip="' . __( 'The Request Method for this endpoint. If you are displaying data from the API, it will usually be GET. If you are sending to the API, it will usually be POST.', 'wpgetapi' ) . '"></span>',
288 + 'name' => __( 'Method', 'wpgetapi' ),
285 289 'id' => 'method',
286 290 'type' => 'select',
287 291 'classes' => 'field-method',
288 292 'attributes' => array(
@@ -290,23 +294,13 @@
290 294 ),
291 295 'options' => array(
292 296 'GET' => 'GET',
293 297 'POST' => 'POST',
294 - 'PUT' => 'PUT',
295 - 'PATCH' => 'PATCH',
296 - 'DELETE' => 'DELETE',
297 298 ),
298 - 'desc' => '',
299 + 'desc' => __( 'The request method for this endpoint.', 'wpgetapi' ),
299 300 ),
300 -
301 301 array(
302 - 'name' => __( 'Results Format', 'wpgetapi' ) .
303 - '<span class="dashicons dashicons-editor-help" data-tip="' .
304 - sprintf(
305 - __( 'The format that the API data will be returned in. To format the data as HTML, click the link below to learn how. %1s', 'wpgetapi' ),
306 - htmlentities( '<br><a target="_blank" href="https://wpgetapi.com/docs/formatting-json-data/?utm_campaign=Shortcode JSON&utm_medium=Admin&utm_source=User">Format as HTML</a>' )
307 - ) .
308 - '"></span>',
302 + 'name' => __( 'Results Format', 'wpgetapi' ),
309 303 'id' => 'results_format',
310 304 'type' => 'select',
311 305 'classes' => 'field-results-format',
312 306 'attributes' => array(
@@ -312,84 +306,34 @@
312 306 'attributes' => array(
313 307 'required' => true,
314 308 ),
315 309 'options_cb' => 'wpgetapi_results_format_options',
316 - 'desc' => ''
310 + 'desc' => __( 'The format of the results.', 'wpgetapi' ),
317 311 ),
318 -
319 312 array(
320 - 'name' => __( 'Cache Time', 'wpgetapi' ) .
321 - '<span class="dashicons dashicons-editor-help" data-tip="' .
322 - sprintf(
323 - __( 'The time in seconds to cache this request for. %1s', 'wpgetapi' ),
324 - htmlentities( '<br>' . $cache_url )
325 - ) .
326 - '"></span>',
327 - 'id' => 'cache_time',
328 - 'type' => 'text',
329 - 'classes' => 'field-cache-time',
330 - 'attributes' => array(
331 - 'placeholder' => '3600',
332 - $cache_disabled => $cache_disabled,
333 - ),
334 - 'desc' => ''
335 - ),
336 -
337 - array(
338 - 'name' => __( 'Query String', 'wpgetapi' ) .
339 - '<span class="dashicons dashicons-editor-help" data-tip="' .
340 - sprintf(
341 - __( 'Parameters as name/value pairs that will be appended to the URL. The query string is the part of the URL after the question mark, like so: https://yoururl.com<b>?key=value&key3=value3</b> %1s', 'wpgetapi' ),
342 - htmlentities( '<br><a target="_blank" href="https://wpgetapi.com/docs/adding-query-string-parameters/?utm_campaign=Query String&utm_medium=Admin&utm_source=User">More Info</a>' )
343 - ) .
344 - '"></span>',
313 + 'name' => __( 'Query String', 'wpgetapi' ),
345 314 'id' => 'query_parameters',
346 315 'type' => 'parameter',
347 316 'classes' => 'field-query-parameters',
348 317 'repeatable' => true,
349 - 'desc' => ''
318 + 'desc' => __( 'Parameters as name/value pairs that will be appended to the URL. ', 'wpgetapi' ),
350 319 ),
351 320 array(
352 - 'name' => __( 'Headers', 'wpgetapi' ) .
353 - '<span class="dashicons dashicons-editor-help" data-tip="' .
354 - sprintf(
355 - __( 'Parameters as name/value pairs, sent in the Headers. %1s', 'wpgetapi' ),
356 - htmlentities( '<br><a target="_blank" href="https://wpgetapi.com/docs/sending-headers-in-request/?utm_campaign=Headers&utm_medium=Admin&utm_source=User">More Info</a>' )
357 - ) .
358 - '"></span>',
321 + 'name' => __( 'Headers', 'wpgetapi' ),
359 322 'id' => 'header_parameters',
360 323 'type' => 'parameter',
361 324 'classes' => 'field-header-parameters',
362 325 'repeatable' => true,
363 - 'desc' => ''
326 + 'desc' => __( 'Parameters as name/value pairs that will be included in the header. ', 'wpgetapi' ),
364 327 ),
365 328 array(
366 - 'name' => __( 'Body POST Fields', 'wpgetapi' ) .
367 - '<span class="dashicons dashicons-editor-help" data-tip="' .
368 - sprintf(
369 - __( 'Parameters as name/value pairs, sent in the Body as POST fields. %1s', 'wpgetapi' ),
370 - htmlentities( '<br><a target="_blank" href="https://wpgetapi.com/docs/sending-post-fields-in-request/?utm_campaign=Body&utm_medium=Admin&utm_source=User">More Info</a>' )
371 - ) .
372 - '"></span>',
329 + 'name' => __( 'Body', 'wpgetapi' ),
373 330 'id' => 'body_parameters',
374 331 'type' => 'parameter',
375 332 'classes' => 'field-body-parameters',
376 333 'repeatable' => true,
377 - 'desc' => ''
334 + 'desc' => __( 'Parameters as name/value pairs that will be included in the POST body. Only used when POST method is used and will be JSON encoded. ', 'wpgetapi' ),
378 335 ),
379 - array(
380 - 'name' => __( 'Encode Body', 'wpgetapi' ) . '<span class="dashicons dashicons-editor-help" data-tip="' . __( 'Encoding of the above Body parameters.', 'wpgetapi' ) . '"></span>',
381 - 'id' => 'body_json_encode',
382 - 'type' => 'select',
383 - 'classes' => 'field-body-json-encode',
384 - 'options' => array(
385 - 'false' => __( 'No encoding (raw)', 'wpgetapi' ),
386 - 'true' => __( 'JSON encode', 'wpgetapi' ),
387 - 'url' => __( 'URL encode (x-www-form-urlencoded)', 'wpgetapi' ),
388 - 'xml' => __( 'XML format (available in PRO only)', 'wpgetapi' ),
389 - ),
390 - 'desc' => '',
391 - ),
392 336 ) );
393 337
394 338
395 339 $fields[] = array(
@@ -394,9 +338,9 @@
394 338
395 339 $fields[] = array(
396 340 'id' => 'endpoints',
397 341 'type' => 'group',
398 - 'name' => '',
342 + 'name' => __( 'Endpoints', 'wpgetapi' ),
399 343 'description' => '',
400 344 'options' => array(
401 345 'group_title' => __( 'Endpoint {#}', 'wpgetapi' ),
402 346 'add_button' => __( 'Add Endpoint', 'wpgetapi' ),
@@ -402,13 +346,12 @@
402 346 'add_button' => __( 'Add Endpoint', 'wpgetapi' ),
403 347 'remove_button' => __( 'Remove Endpoint', 'wpgetapi' ),
404 348 'sortable' => true, // beta
405 349 ),
406 - 'before_group' => '<pre class="url">Base URL: <span>' . $base_url . '</span></pre>',
407 350 'fields' => $endpoint_fields,
408 351 );
409 352
410 - return apply_filters( 'wpgetapi_fields', $fields );
353 + return $fields;
411 354
412 355 }
413 356
414 357
@@ -418,9 +361,9 @@
418 361
419 362 foreach ($option_tabs as $index => $option_tab) {
420 363 if ( $index == 0) {
421 364
422 - $this->options_pages[] = add_menu_page( $this->title, $this->menu_title, 'manage_options', $option_tab['id'], array( $this, 'admin_page_display' ), 'none'
365 + $this->options_pages[] = add_menu_page( $this->title, $this->menu_title, 'manage_options', $option_tab['id'], array( $this, 'admin_page_display' ), 'dashicons-editor-code'
423 366 ); //Link admin menu to first tab
424 367
425 368 add_submenu_page( $option_tabs[0]['id'], $this->menu_title, $option_tab['menu_title'], 'manage_options', $option_tab['id'], array( $this, 'admin_page_display' ) ); //Duplicate menu link for first submenu page
426 369 } else {
@@ -448,15 +391,12 @@
448 391 <div class="wrap wpgetapi">
449 392
450 393 <div class="main_content_cell">
451 394
452 - <h1 class="wp-heading-inline">
453 - <img width="24" height="22" src="<?php echo esc_url( WPGETAPIURL . 'assets/img/wpgetapi-icon.png' ); ?>" /> <?php esc_html_e( $this->title, 'wpgetapi' ) ?> <span class="vnum"><?php echo WPGETAPIVERSION; ?></span>
454 - </h1>
395 + <h2><?php esc_html_e( $this->title, 'wpgetapi' ) ?></h2>
455 396 <!-- Options Page Nav Tabs -->
456 397 <h2 class="nav-tab-wrapper">
457 398 <?php foreach ($option_tabs as $option_tab) :
458 -
459 399 $tab_slug = $option_tab['id'];
460 400 $nav_class = 'nav-tab';
461 401 if ( $tab_slug == $_GET['page'] ) {
462 402 $nav_class .= ' nav-tab-active'; //add active class to current tab
@@ -461,20 +401,15 @@
461 401 if ( $tab_slug == $_GET['page'] ) {
462 402 $nav_class .= ' nav-tab-active'; //add active class to current tab
463 403 $tab_forms[] = $option_tab; //add current tab to forms to be rendered
464 404 }
465 -
466 - ?>
467 -
468 - <a class="<?php esc_attr_e( $nav_class ); ?>" href="<?php esc_url( menu_page_url( $tab_slug ) ); ?>"><?php esc_attr_e( $option_tab['menu_title'], 'wpgetapi' ); ?></a>
469 -
405 + ?>
406 + <a class="<?php esc_attr_e( $nav_class ); ?>" href="<?php esc_url( menu_page_url( $tab_slug ) ); ?>"><?php esc_attr_e( $option_tab['title'], 'wpgetapi' ); ?></a>
470 407 <?php endforeach; ?>
471 408 </h2>
472 409 <!-- End of Nav Tabs -->
473 410
474 - <?php
475 - //render all tab forms (normaly just 1 form)
476 - foreach ($tab_forms as $tab_form) : ?>
411 + <?php foreach ($tab_forms as $tab_form) : //render all tab forms (normaly just 1 form) ?>
477 412
478 413 <div id="<?php esc_attr_e($tab_form['id']); ?>" class="cmb-form group">
479 414 <div class="metabox-holder">
480 415 <div class="pmpbox pad">
@@ -479,9 +414,9 @@
479 414 <div class="metabox-holder">
480 415 <div class="pmpbox pad">
481 416 <h3 class="title"><?php esc_html_e($tab_form['title'], 'wpgetapi'); ?></h3>
482 417 <div class="desc"><?php echo wp_kses_post( $tab_form['desc'] ); ?></div>
483 - <?php cmb2_metabox_form( $tab_form, $tab_form['id'], $tab_form ); ?>
418 + <?php cmb2_metabox_form( $tab_form, $tab_form['id'] ); ?>
484 419 </div>
485 420 </div>
486 421 </div>
487 422
@@ -489,14 +424,22 @@
489 424
490 425 </div>
491 426
492 427 <div class="sidebar_cell">
493 -
494 - <?php
495 - $sidebar = self::sidebar_display();
496 - echo apply_filters( 'wpgetapi_admin_sidebar_display', $sidebar );
497 - ?>
428 + <div class="box">
429 + <h3>Help & Tips</h3>
430 + <p><a target="_blank" href="https://wpgetapi.com/docs">View The Docs</a></p>
431 + <p>Using the Template Function within your theme is the most flexible option. It does require basic knowledge of PHP.</p>
432 + <p>Trying to 'echo' the data when using the 'JSON (as array data)' option will result in a PHP warning. You will need to use 'var_dump' instead to see the output.</p>
433 + <p>Using the Shortcode within a page (or post) becomes more flexible when used in conjunction with our <a target="_blank" href="https://wpgetapi.com/downloads/pro-plugin">WPGetAPI Pro</a> plugin extension.</p>
498 434
435 + <p>You can easily get nested data from the array using our <a target="_blank" href="https://wpgetapi.com/downloads/pro-plugin">WPGetAPI Pro</a> plugin extension using either Shortcode or Template Function.</p>
436 +
437 + </div>
438 + <div class="box">
439 + <h3>Contact Us</h3>
440 + <p>Please <a target="_blank" href="https://wpgetapi.com/">visit our website</a> for any questions, help or feature requests. We are more than happy to help you set up your API.</p>
441 + </div>
499 442 </div>
500 443
501 444 </div>
502 445
@@ -502,220 +445,8 @@
502 445
503 446 <?php
504 447
505 448 }
506 -
507 -
508 - public function test_the_endpoint() {
509 -
510 - $api_id = sanitize_text_field( $_POST['api_id'] );
511 - $endpoint_id = sanitize_text_field( $_POST['endpoint_id'] );
512 - $data = wpgetapi_endpoint( $api_id, $endpoint_id, array( 'test_endpoint' => true ) );
513 -
514 - $output = array(
515 - 'data' => $data,
516 - 'endpoint_id' => $endpoint_id
517 - );
518 - echo json_encode( $output );
519 -
520 - wp_die(); // this is required to terminate immediately and return a proper response
521 -
522 - }
523 -
524 -
525 - public function load_testing_javascript() { ?>
526 -
527 - <script type="text/javascript" >
528 -
529 - jQuery(document).ready(function($) {
530 -
531 - $('body').on( 'click', '.wpgetapi-test-area .test-button', function(){//delegated
532 -
533 - var $this = $(this);
534 - var area = $this.parents( '.wpgetapi-test-area' );
535 - var api_id = $( area ).data( 'api' );
536 - var endpoint_id = $( area ).data( 'endpoint' );
537 -
538 - // disable button
539 - $this.attr( 'disabled', true );
540 -
541 - var data = {
542 - 'action': 'wpgetapi_test_endpoint',
543 - 'api_id': api_id,
544 - 'endpoint_id': endpoint_id
545 - };
546 -
547 - // send and get response
548 - jQuery.post(ajaxurl, data, function( response ) {
549 -
550 - var output = JSON.parse( response );
551 -
552 - jQuery( '.wpgetapi-test-area[data-endpoint="' + output.endpoint_id + '"] .handle' ).show();
553 -
554 - jQuery( '.wpgetapi-test-area[data-endpoint="' + output.endpoint_id + '"] .wpgetapi-result' ).html( output.data);
555 -
556 - // enable button
557 - $( '.wpgetapi-test-area[data-endpoint="' + output.endpoint_id + '"] .test-button' ).attr( 'disabled', false );
558 -
559 - });
560 -
561 - });
562 -
563 - $( '.wpgetapi-test-area .handle' ).on('click', function() {
564 - $('.wpgetapi-result').toggle();
565 - });
566 -
567 - });
568 -
569 - </script> <?php
570 -
571 - }
572 -
573 -
574 - /**
575 - * Sidebar markup.
576 - * @since 1.4.1
577 - */
578 - public function sidebar_display() {
579 -
580 - ob_start();
581 -
582 - // do our setup page
583 - if( isset( $_GET['page'] ) && $_GET['page'] === 'wpgetapi_setup' )
584 - return $this->sidebar_setup_page();
585 -
586 - ?>
587 -
588 - <div class="box">
589 - <strong><?php esc_html_e( 'Endpoint Instructions', 'wpgetapi' ); ?></strong>
590 - <ol>
591 - <li><?php _e( 'Give your endpoint a <b>Unique ID</b>', 'wpgetapi' ); ?></li>
592 - <li><?php _e( 'Add the <b>Endpoint</b> which can be found in your API docs', 'wpgetapi' ); ?></li>
593 - <li><?php _e( 'Set the <b>Method</b> - GET for getting data & POST for sending data to the API', 'wpgetapi' ); ?></li>
594 - <li><?php _e( 'Set the desired <b>Results Format</b>', 'wpgetapi' ); ?></li>
595 - <li><?php _e( 'Other fields are optional & will depend on your API', 'wpgetapi' ); ?></li>
596 - <li><?php _e( 'Hit the Save button', 'wpgetapi' ); ?></li>
597 - <li><?php _e( 'Copy the Template Tag or Shortcode & paste into page, post or theme file', 'wpgetapi' ); ?></li>
598 - </ol>
599 - </div>
600 -
601 - <hr>
602 -
603 - <div class="box">
604 - <strong><?php esc_html_e( 'Getting Help', 'wpgetapi' ); ?></strong>
605 - <ul>
606 - <li><?php
607 - printf(
608 - esc_html__( 'View the %1$s', 'cmb2' ),
609 - '<a target="_blank" href="https://wpgetapi.com/docs/quick-start-guide/?utm_campaign=Docs&utm_medium=Admin&utm_source=User">Quick Start Guide</a>'
610 - );
611 - ?></li>
612 - <li><?php
613 - printf(
614 - esc_html__( 'View the %1$s', 'cmb2' ),
615 - '<a target="_blank" href="https://wpgetapi.com/docs/frequently-asked-questions/?utm_campaign=Docs&utm_medium=Admin&utm_source=User">FAQs</a>'
616 - );
617 - ?></li>
618 - <li><?php
619 - printf(
620 - esc_html__( 'Do more with the %1$s', 'cmb2' ),
621 - '<a target="_blank" href="https://wpgetapi.com/downloads/pro-plugin/?utm_campaign=Pro&utm_medium=Admin&utm_source=User">PRO Plugin</a>'
622 - );
623 - ?></li>
624 - </ul>
625 - </div>
626 -
627 - <?php
628 - $content = ob_get_contents();
629 - ob_end_clean();
630 - return $content;
631 -
632 - }
633 -
634 -
635 - /**
636 - * Sidebar for our setup page.
637 - * @since 1.4.4
638 - */
639 - public function sidebar_setup_page() {
640 -
641 - ob_start();
642 - ?>
643 -
644 - <div class="box">
645 - <strong><?php esc_html_e( 'Setup Instructions', 'wpgetapi' ); ?></strong>
646 - <ol>
647 - <li><?php _e( 'Name your API in the <b>API Name</b> field', 'wpgetapi' ); ?></li>
648 - <li><?php _e( 'Give your API a <b>Unique ID</b>', 'wpgetapi' ); ?></li>
649 - <li><?php _e( 'Add the <b>Base URL</b> of your API. This can be found in the docs of your API', 'wpgetapi' ); ?></li>
650 - <li><?php _e( 'Hit the Save button', 'wpgetapi' ); ?></li>
651 - <li><?php _e( 'Visit the new tab that will be created', 'wpgetapi' ); ?></li>
652 - </ol>
653 - </div>
654 -
655 - <hr>
656 -
657 - <div class="box">
658 - <strong><?php esc_html_e( 'Getting Help', 'wpgetapi' ); ?></strong>
659 - <ul>
660 - <li><?php
661 - printf(
662 - esc_html__( 'View the %1$s', 'cmb2' ),
663 - '<a target="_blank" href="https://wpgetapi.com/docs/quick-start-guide/?utm_campaign=Docs&utm_medium=Admin&utm_source=User">Quick Start Guide</a>'
664 - );
665 - ?></li>
666 - <li><?php
667 - printf(
668 - esc_html__( 'View the %1$s', 'cmb2' ),
669 - '<a target="_blank" href="https://wpgetapi.com/docs/frequently-asked-questions/?utm_campaign=Docs&utm_medium=Admin&utm_source=User">FAQs</a>'
670 - );
671 - ?></li>
672 - <li><?php
673 - printf(
674 - esc_html__( 'Do more with the %1$s', 'cmb2' ),
675 - '<a target="_blank" href="https://wpgetapi.com/downloads/pro-plugin/?utm_campaign=Pro&utm_medium=Admin&utm_source=User">PRO Plugin</a>'
676 - );
677 - ?></li>
678 - </ul>
679 - </div>
680 -
681 - <?php
682 - $content = ob_get_contents();
683 - ob_end_clean();
684 - return $content;
685 -
686 - }
687 -
688 -
689 - /**
690 - * Tabs don't immmediately appear on save, so this hack!
691 - * @since 0.1.0
692 - */
693 - public function redirect( $object_id, $updated ) {
694 -
695 - if( $object_id == 'wpgetapi_setup' ) {
696 -
697 - add_settings_error( 'wpgetapi-notices', '', 'Saved, reloading page...', 'updated' );
698 - settings_errors( 'wpgetapi-notices' );
699 - ?>
700 -
701 - <script>
702 - setTimeout(function() {
703 - location.reload();
704 - }, 1000);
705 - </script>
706 - <?php
707 -
708 - } else if ( strpos( $object_id, 'wpgetapi_' ) !== false ) {
709 -
710 - $text = apply_filters( 'wpgetapi_admin_notice_text', __( 'Saved.', 'wpgetapi' ), $object_id );
711 - add_settings_error( 'wpgetapi-notices', '', $text, 'updated' );
712 - settings_errors( 'wpgetapi-notices' );
713 -
714 - }
715 -
716 - }
717 -
718 449
719 450 /**
720 451 * Public getter method for retrieving protected/private variables
721 452 * @since 0.1.0