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 -381 2.0.11.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,43 +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' => '',
225 - 'sanitization_cb' => 'wpgetapi_sanitize_unique_id'
207 + 'desc' => __( 'A unique ID for your API. Once this is set you should not change this value.', 'wpgetapi' ),
226 208 ),
227 209 array(
228 - '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' ),
229 211 'id' => 'base_url',
230 212 'type' => 'text',
231 213 'attributes' => array(
232 214 'required' => true,
233 - 'placeholder' => 'https://maps.googleapis.com/maps/api',
215 + 'placeholder' => 'https://newapiurl.com',
234 216 ),
235 - 'desc' => '',
217 + 'desc' => __( 'The base URL of the API you are connecting to.', 'wpgetapi' ),
236 218 ),
237 219
238 220 )
239 221 );
@@ -243,22 +225,40 @@
243 225 }
244 226
245 227
246 228 /**
247 - * Endpoint settings.
229 + * Site wide info on the current sale.
248 230 * @return sale info array
249 231 *
250 232 */
251 - public function endpoint_fields( $type = '', $api_id = '', $base_url = '' ) {
233 + public function api_fields( $type = '', $api_id = '', $base_url = '' ) {
252 234
253 235 $fields = array();
254 236
255 - $cache_disabled = $this->pro_plugin ? '' : 'disabled';
256 - $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=Pro&utm_medium=Admin&utm_source=Cache">View PRO Plugin</a>';
257 -
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 +
258 258 $endpoint_fields = apply_filters( 'wpgetapi_fields_endpoints', array(
259 259 array(
260 - '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' ),
261 261 'id' => 'id',
262 262 'type' => 'text',
263 263 'classes' => 'field-id',
264 264 'attributes' => array(
@@ -264,16 +264,18 @@
264 264 'attributes' => array(
265 265 'required' => true,
266 266 'placeholder' => 'new_endpoint',
267 267 ),
268 - 'desc' => '',
269 - 'before_row' => "wpgetapi_output_top_of_endpoint",
270 - 'api_id' => $api_id,
271 - 'sanitization_cb' => 'wpgetapi_sanitize_unique_id'
272 -
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 + ",
273 275 ),
274 276 array(
275 - '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' ),
276 278 'id' => 'endpoint',
277 279 'type' => 'text',
278 280 'classes' => 'field-endpoint',
279 281 'attributes' => array(
@@ -279,12 +281,12 @@
279 281 'attributes' => array(
280 282 'required' => true,
281 283 'placeholder' => '/newendpoint',
282 284 ),
283 - 'desc' => '',
285 + 'desc' => __( 'The endpoint that will be appended to the base URL to get the data. Include slash at beginning.', 'wpgetapi' ),
284 286 ),
285 287 array(
286 - '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' ),
287 289 'id' => 'method',
288 290 'type' => 'select',
289 291 'classes' => 'field-method',
290 292 'attributes' => array(
@@ -292,23 +294,13 @@
292 294 ),
293 295 'options' => array(
294 296 'GET' => 'GET',
295 297 'POST' => 'POST',
296 - 'PUT' => 'PUT',
297 - 'PATCH' => 'PATCH',
298 - 'DELETE' => 'DELETE',
299 298 ),
300 - 'desc' => '',
299 + 'desc' => __( 'The request method for this endpoint.', 'wpgetapi' ),
301 300 ),
302 -
303 301 array(
304 - 'name' => __( 'Results Format', 'wpgetapi' ) .
305 - '<span class="dashicons dashicons-editor-help" data-tip="' .
306 - sprintf(
307 - __( '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' ),
308 - 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>' )
309 - ) .
310 - '"></span>',
302 + 'name' => __( 'Results Format', 'wpgetapi' ),
311 303 'id' => 'results_format',
312 304 'type' => 'select',
313 305 'classes' => 'field-results-format',
314 306 'attributes' => array(
@@ -314,110 +306,34 @@
314 306 'attributes' => array(
315 307 'required' => true,
316 308 ),
317 309 'options_cb' => 'wpgetapi_results_format_options',
318 - 'desc' => ''
310 + 'desc' => __( 'The format of the results.', 'wpgetapi' ),
319 311 ),
320 -
321 312 array(
322 - 'name' => __( 'Cache Time', 'wpgetapi' ) .
323 - '<span class="dashicons dashicons-editor-help" data-tip="' .
324 - sprintf(
325 - __( 'The time in seconds to cache this request for. %1s', 'wpgetapi' ),
326 - htmlentities( '<br>' . $cache_url )
327 - ) .
328 - '"></span>',
329 - 'id' => 'cache_time',
330 - 'type' => 'text',
331 - 'classes' => 'field-cache-time',
332 - 'attributes' => array(
333 - 'placeholder' => '3600',
334 - $cache_disabled => $cache_disabled,
335 - ),
336 - 'desc' => 'Available in PRO plugin.'
337 - ),
338 -
339 - array(
340 - 'name' => __( 'Query String', 'wpgetapi' ) .
341 - '<span class="dashicons dashicons-editor-help" data-tip="' .
342 - sprintf(
343 - __( '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' ),
344 - 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>' )
345 - ) .
346 - '"></span>',
313 + 'name' => __( 'Query String', 'wpgetapi' ),
347 314 'id' => 'query_parameters',
348 315 'type' => 'parameter',
349 316 'classes' => 'field-query-parameters',
350 317 'repeatable' => true,
351 - 'desc' => ''
318 + 'desc' => __( 'Parameters as name/value pairs that will be appended to the URL. ', 'wpgetapi' ),
352 319 ),
353 320 array(
354 - 'name' => __( 'Headers', 'wpgetapi' ) .
355 - '<span class="dashicons dashicons-editor-help" data-tip="' .
356 - sprintf(
357 - __( 'Parameters as name/value pairs, sent in the Headers. %1s', 'wpgetapi' ),
358 - 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>' )
359 - ) .
360 - '"></span>',
321 + 'name' => __( 'Headers', 'wpgetapi' ),
361 322 'id' => 'header_parameters',
362 323 'type' => 'parameter',
363 324 'classes' => 'field-header-parameters',
364 325 'repeatable' => true,
365 - 'desc' => ''
326 + 'desc' => __( 'Parameters as name/value pairs that will be included in the header. ', 'wpgetapi' ),
366 327 ),
367 328 array(
368 - 'name' => __( 'Body POST Fields', 'wpgetapi' ) .
369 - '<span class="dashicons dashicons-editor-help" data-tip="' .
370 - sprintf(
371 - __( 'Parameters as name/value pairs, sent in the Body as POST fields. %1s', 'wpgetapi' ),
372 - 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>' )
373 - ) .
374 - '"></span>',
329 + 'name' => __( 'Body', 'wpgetapi' ),
375 330 'id' => 'body_parameters',
376 331 'type' => 'parameter',
377 332 'classes' => 'field-body-parameters',
378 333 'repeatable' => true,
379 - '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' ),
380 335 ),
381 - array(
382 - 'name' => __( 'Encode Body', 'wpgetapi' ) . '<span class="dashicons dashicons-editor-help" data-tip="' . __( 'Encoding of the above Body parameters.', 'wpgetapi' ) . '"></span>',
383 - 'id' => 'body_json_encode',
384 - 'type' => 'select',
385 - 'classes' => 'field-body-json-encode',
386 - 'options' => array(
387 - 'false' => __( 'No encoding (raw)', 'wpgetapi' ),
388 - 'true' => __( 'JSON encode', 'wpgetapi' ),
389 - 'url' => __( 'URL encode (x-www-form-urlencoded)', 'wpgetapi' ),
390 - 'base64' => __( 'Base64 encode', 'wpgetapi' ),
391 - 'xml' => __( 'XML format (available in PRO)', 'wpgetapi' ),
392 -
393 - ),
394 - 'desc' => '',
395 - ),
396 - array(
397 - 'name' => __( 'Actions', 'wpgetapi' ) . '<span class="dashicons dashicons-editor-help" data-tip="' .
398 - sprintf(
399 - __( 'Call this endpoint when your chosen action runs. This feature is available in the PRO plugin. %1s', 'wpgetapi' ),
400 - htmlentities( '<br><a target="_blank" href="https://wpgetapi.com/downloads/pro-plugin/?utm_campaign=Pro&utm_medium=Admin&utm_source=Actions">View PRO Plugin</a>' )
401 - ) .
402 - '"></span>',
403 - 'id' => 'actions',
404 - 'type' => 'select',
405 - 'classes' => 'field-actions',
406 - 'desc' => __( 'Available in PRO plugin.', 'wpgetapi' ),
407 - 'options' => array(
408 - '' => __( '-- No Action --', 'wpgetapi-extras' ),
409 - 'new_post_published' => __( 'Post/Custom Post - New Post Published', 'wpgetapi-extras' ),
410 - 'transition_post_status' => __( 'Post/Custom Post - Status Changed', 'wpgetapi-extras' ),
411 - 'delete_post' => __( 'Post/Custom Post - Delete Post', 'wpgetapi-extras' ),
412 -
413 - 'user_register' => __( 'User - New User Registered', 'wpgetapi-extras' ),
414 - 'delete_user' => __( 'User - Delete User', 'wpgetapi-extras' ),
415 - 'user_login' => __( 'User - User Logs In', 'wpgetapi-extras' ),
416 - ),
417 - 'default' => '',
418 - )
419 -
420 336 ) );
421 337
422 338
423 339 $fields[] = array(
@@ -422,9 +338,9 @@
422 338
423 339 $fields[] = array(
424 340 'id' => 'endpoints',
425 341 'type' => 'group',
426 - 'name' => '',
342 + 'name' => __( 'Endpoints', 'wpgetapi' ),
427 343 'description' => '',
428 344 'options' => array(
429 345 'group_title' => __( 'Endpoint {#}', 'wpgetapi' ),
430 346 'add_button' => __( 'Add Endpoint', 'wpgetapi' ),
@@ -430,13 +346,12 @@
430 346 'add_button' => __( 'Add Endpoint', 'wpgetapi' ),
431 347 'remove_button' => __( 'Remove Endpoint', 'wpgetapi' ),
432 348 'sortable' => true, // beta
433 349 ),
434 - 'before_group' => '<pre class="url">Base URL: <span>' . $base_url . '</span></pre>',
435 350 'fields' => $endpoint_fields,
436 351 );
437 352
438 - return apply_filters( 'wpgetapi_fields', $fields );
353 + return $fields;
439 354
440 355 }
441 356
442 357
@@ -446,9 +361,9 @@
446 361
447 362 foreach ($option_tabs as $index => $option_tab) {
448 363 if ( $index == 0) {
449 364
450 - $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'
451 366 ); //Link admin menu to first tab
452 367
453 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
454 369 } else {
@@ -476,15 +391,12 @@
476 391 <div class="wrap wpgetapi">
477 392
478 393 <div class="main_content_cell">
479 394
480 - <h1 class="wp-heading-inline">
481 - <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>
482 - </h1>
395 + <h2><?php esc_html_e( $this->title, 'wpgetapi' ) ?></h2>
483 396 <!-- Options Page Nav Tabs -->
484 397 <h2 class="nav-tab-wrapper">
485 398 <?php foreach ($option_tabs as $option_tab) :
486 -
487 399 $tab_slug = $option_tab['id'];
488 400 $nav_class = 'nav-tab';
489 401 if ( $tab_slug == $_GET['page'] ) {
490 402 $nav_class .= ' nav-tab-active'; //add active class to current tab
@@ -489,20 +401,15 @@
489 401 if ( $tab_slug == $_GET['page'] ) {
490 402 $nav_class .= ' nav-tab-active'; //add active class to current tab
491 403 $tab_forms[] = $option_tab; //add current tab to forms to be rendered
492 404 }
493 -
494 - ?>
495 -
496 - <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>
497 -
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>
498 407 <?php endforeach; ?>
499 408 </h2>
500 409 <!-- End of Nav Tabs -->
501 410
502 - <?php
503 - //render all tab forms (normaly just 1 form)
504 - foreach ($tab_forms as $tab_form) : ?>
411 + <?php foreach ($tab_forms as $tab_form) : //render all tab forms (normaly just 1 form) ?>
505 412
506 413 <div id="<?php esc_attr_e($tab_form['id']); ?>" class="cmb-form group">
507 414 <div class="metabox-holder">
508 415 <div class="pmpbox pad">
@@ -507,9 +414,9 @@
507 414 <div class="metabox-holder">
508 415 <div class="pmpbox pad">
509 416 <h3 class="title"><?php esc_html_e($tab_form['title'], 'wpgetapi'); ?></h3>
510 417 <div class="desc"><?php echo wp_kses_post( $tab_form['desc'] ); ?></div>
511 - <?php cmb2_metabox_form( $tab_form, $tab_form['id'], $tab_form ); ?>
418 + <?php cmb2_metabox_form( $tab_form, $tab_form['id'] ); ?>
512 419 </div>
513 420 </div>
514 421 </div>
515 422
@@ -517,14 +424,22 @@
517 424
518 425 </div>
519 426
520 427 <div class="sidebar_cell">
521 -
522 - <?php
523 - $sidebar = self::sidebar_display();
524 - echo apply_filters( 'wpgetapi_admin_sidebar_display', $sidebar );
525 - ?>
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>
526 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>
527 442 </div>
528 443
529 444 </div>
530 445
@@ -530,220 +445,8 @@
530 445
531 446 <?php
532 447
533 448 }
534 -
535 -
536 - public function test_the_endpoint() {
537 -
538 - $api_id = sanitize_text_field( $_POST['api_id'] );
539 - $endpoint_id = sanitize_text_field( $_POST['endpoint_id'] );
540 - $data = wpgetapi_endpoint( $api_id, $endpoint_id, array( 'test_endpoint' => true ) );
541 -
542 - $output = array(
543 - 'data' => $data,
544 - 'endpoint_id' => $endpoint_id
545 - );
546 - echo json_encode( $output );
547 -
548 - wp_die(); // this is required to terminate immediately and return a proper response
549 -
550 - }
551 -
552 -
553 - public function load_testing_javascript() { ?>
554 -
555 - <script type="text/javascript" >
556 -
557 - jQuery(document).ready(function($) {
558 -
559 - $('body').on( 'click', '.wpgetapi-test-area .test-button', function(){//delegated
560 -
561 - var $this = $(this);
562 - var area = $this.parents( '.wpgetapi-test-area' );
563 - var api_id = $( area ).data( 'api' );
564 - var endpoint_id = $( area ).data( 'endpoint' );
565 -
566 - // disable button
567 - $this.attr( 'disabled', true );
568 -
569 - var data = {
570 - 'action': 'wpgetapi_test_endpoint',
571 - 'api_id': api_id,
572 - 'endpoint_id': endpoint_id
573 - };
574 -
575 - // send and get response
576 - jQuery.post(ajaxurl, data, function( response ) {
577 -
578 - var output = JSON.parse( response );
579 -
580 - jQuery( '.wpgetapi-test-area[data-endpoint="' + output.endpoint_id + '"] .handle' ).show();
581 -
582 - jQuery( '.wpgetapi-test-area[data-endpoint="' + output.endpoint_id + '"] .wpgetapi-result' ).html( output.data);
583 -
584 - // enable button
585 - $( '.wpgetapi-test-area[data-endpoint="' + output.endpoint_id + '"] .test-button' ).attr( 'disabled', false );
586 -
587 - });
588 -
589 - });
590 -
591 - $( '.wpgetapi-test-area .handle' ).on('click', function() {
592 - $('.wpgetapi-result').toggle();
593 - });
594 -
595 - });
596 -
597 - </script> <?php
598 -
599 - }
600 -
601 -
602 - /**
603 - * Sidebar markup.
604 - * @since 1.4.1
605 - */
606 - public function sidebar_display() {
607 -
608 - ob_start();
609 -
610 - // do our setup page
611 - if( isset( $_GET['page'] ) && $_GET['page'] === 'wpgetapi_setup' )
612 - return $this->sidebar_setup_page();
613 -
614 - ?>
615 -
616 - <div class="box">
617 - <strong><?php esc_html_e( 'Endpoint Instructions', 'wpgetapi' ); ?></strong>
618 - <ol>
619 - <li><?php _e( 'Give your endpoint a <b>Unique ID</b>', 'wpgetapi' ); ?></li>
620 - <li><?php _e( 'Add the <b>Endpoint</b> which can be found in your API docs', 'wpgetapi' ); ?></li>
621 - <li><?php _e( 'Set the <b>Method</b> - GET for getting data & POST for sending data to the API', 'wpgetapi' ); ?></li>
622 - <li><?php _e( 'Set the desired <b>Results Format</b>', 'wpgetapi' ); ?></li>
623 - <li><?php _e( 'Other fields are optional & will depend on your API', 'wpgetapi' ); ?></li>
624 - <li><?php _e( 'Hit the Save button', 'wpgetapi' ); ?></li>
625 - <li><?php _e( 'Copy the Template Tag or Shortcode & paste into page, post or theme file', 'wpgetapi' ); ?></li>
626 - </ol>
627 - </div>
628 -
629 - <hr>
630 -
631 - <div class="box">
632 - <strong><?php esc_html_e( 'Getting Help', 'wpgetapi' ); ?></strong>
633 - <ul>
634 - <li><?php
635 - printf(
636 - esc_html__( 'View the %1$s', 'cmb2' ),
637 - '<a target="_blank" href="https://wpgetapi.com/docs/quick-start-guide/?utm_campaign=Docs&utm_medium=Admin&utm_source=User">Quick Start Guide</a>'
638 - );
639 - ?></li>
640 - <li><?php
641 - printf(
642 - esc_html__( 'View the %1$s', 'cmb2' ),
643 - '<a target="_blank" href="https://wpgetapi.com/docs/frequently-asked-questions/?utm_campaign=Docs&utm_medium=Admin&utm_source=User">FAQs</a>'
644 - );
645 - ?></li>
646 - <li><?php
647 - printf(
648 - esc_html__( 'Do more with the %1$s', 'cmb2' ),
649 - '<a target="_blank" href="https://wpgetapi.com/downloads/pro-plugin/?utm_campaign=Pro&utm_medium=Admin&utm_source=User">PRO Plugin</a>'
650 - );
651 - ?></li>
652 - </ul>
653 - </div>
654 -
655 - <?php
656 - $content = ob_get_contents();
657 - ob_end_clean();
658 - return $content;
659 -
660 - }
661 -
662 -
663 - /**
664 - * Sidebar for our setup page.
665 - * @since 1.4.4
666 - */
667 - public function sidebar_setup_page() {
668 -
669 - ob_start();
670 - ?>
671 -
672 - <div class="box">
673 - <strong><?php esc_html_e( 'Setup Instructions', 'wpgetapi' ); ?></strong>
674 - <ol>
675 - <li><?php _e( 'Name your API in the <b>API Name</b> field', 'wpgetapi' ); ?></li>
676 - <li><?php _e( 'Give your API a <b>Unique ID</b>', 'wpgetapi' ); ?></li>
677 - <li><?php _e( 'Add the <b>Base URL</b> of your API. This can be found in the docs of your API', 'wpgetapi' ); ?></li>
678 - <li><?php _e( 'Hit the Save button', 'wpgetapi' ); ?></li>
679 - <li><?php _e( 'Visit the new tab that will be created', 'wpgetapi' ); ?></li>
680 - </ol>
681 - </div>
682 -
683 - <hr>
684 -
685 - <div class="box">
686 - <strong><?php esc_html_e( 'Getting Help', 'wpgetapi' ); ?></strong>
687 - <ul>
688 - <li><?php
689 - printf(
690 - esc_html__( 'View the %1$s', 'cmb2' ),
691 - '<a target="_blank" href="https://wpgetapi.com/docs/quick-start-guide/?utm_campaign=Docs&utm_medium=Admin&utm_source=User">Quick Start Guide</a>'
692 - );
693 - ?></li>
694 - <li><?php
695 - printf(
696 - esc_html__( 'View the %1$s', 'cmb2' ),
697 - '<a target="_blank" href="https://wpgetapi.com/docs/frequently-asked-questions/?utm_campaign=Docs&utm_medium=Admin&utm_source=User">FAQs</a>'
698 - );
699 - ?></li>
700 - <li><?php
701 - printf(
702 - esc_html__( 'Do more with the %1$s', 'cmb2' ),
703 - '<a target="_blank" href="https://wpgetapi.com/downloads/pro-plugin/?utm_campaign=Pro&utm_medium=Admin&utm_source=User">PRO Plugin</a>'
704 - );
705 - ?></li>
706 - </ul>
707 - </div>
708 -
709 - <?php
710 - $content = ob_get_contents();
711 - ob_end_clean();
712 - return $content;
713 -
714 - }
715 -
716 -
717 - /**
718 - * Tabs don't immmediately appear on save, so this hack!
719 - * @since 0.1.0
720 - */
721 - public function redirect( $object_id, $updated ) {
722 -
723 - if( $object_id == 'wpgetapi_setup' ) {
724 -
725 - add_settings_error( 'wpgetapi-notices', '', 'Saved, reloading page...', 'updated' );
726 - settings_errors( 'wpgetapi-notices' );
727 - ?>
728 -
729 - <script>
730 - setTimeout(function() {
731 - location.reload();
732 - }, 500);
733 - </script>
734 - <?php
735 -
736 - } else if ( strpos( $object_id, 'wpgetapi_' ) !== false ) {
737 -
738 - $text = apply_filters( 'wpgetapi_admin_notice_text', __( 'Saved.', 'wpgetapi' ), $object_id );
739 - add_settings_error( 'wpgetapi-notices', '', $text, 'updated' );
740 - settings_errors( 'wpgetapi-notices' );
741 -
742 - }
743 -
744 - }
745 -
746 449
747 450 /**
748 451 * Public getter method for retrieving protected/private variables
749 452 * @since 0.1.0