PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.11.7
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.11.7
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 3.10.4 All 148 releases
← All changes | classes/Visualizer/Source/Json.php +13 -67 4.0.53.11.7 View file →
@@ -320,8 +320,9 @@
320 320 $rows[] = $row;
321 321 }
322 322
323 323 return $rows;
324 +
324 325 }
325 326
326 327 /**
327 328 * Get the next page URL.
@@ -329,9 +330,9 @@
329 330 * @since ?
330 331 *
331 332 * @access private
332 333 */
333 - private function getNextPage( $data ) {
334 + private function getNextPage( $array ) {
334 335 if ( empty( $this->_paging ) ) {
335 336 return null;
336 337 }
337 338
@@ -337,12 +338,12 @@
337 338
338 339 $root = explode( self::TAG_SEPARATOR, $this->_paging );
339 340 // get rid of the first element as that is the faux root element indicator
340 341 array_shift( $root );
341 - $leaf = $data;
342 + $leaf = $array;
342 343 foreach ( $root as $tag ) {
343 344 if ( array_key_exists( $tag, $leaf ) ) {
344 - $leaf = $leaf[ $tag ];
345 + $leaf = $array[ $tag ];
345 346 } else {
346 347 // if the tag does not exist, we assume it is present in the 0th element of the current array.
347 348 // TODO: we may want to change this to a filter later.
348 349 $leaf = $leaf[0][ $tag ];
@@ -360,21 +361,21 @@
360 361 * @since ?
361 362 *
362 363 * @access private
363 364 */
364 - private function getRootElements( $parent_key, $now, $root, $data ) {
365 - if ( is_null( $data ) ) {
365 + private function getRootElements( $parent, $now, $root, $array ) {
366 + if ( is_null( $array ) ) {
366 367 return null;
367 368 }
368 369
369 - $root[] = $parent_key;
370 - foreach ( $data as $key => $value ) {
370 + $root[] = $parent;
371 + foreach ( $array as $key => $value ) {
371 372 if ( is_array( $value ) && ! empty( $value ) ) {
372 373 if ( ! is_numeric( $key ) ) {
373 - $now = sprintf( '%s%s%s', $parent_key, self::TAG_SEPARATOR, $key );
374 + $now = sprintf( '%s%s%s', $parent, self::TAG_SEPARATOR, $key );
374 375 $root[] = $now;
375 376 } else {
376 - $now = $parent_key;
377 + $now = $parent;
377 378 }
378 379 $root = $this->getRootElements( $now, $key, $root, $value );
379 380 }
380 381 }
@@ -440,9 +441,9 @@
440 441 $this->_additional_headers = explode( ',', $this->_additional_headers );
441 442 $this->_additional_headers = array_filter( $this->_additional_headers );
442 443 if ( ! empty( $this->_additional_headers ) ) {
443 444 $this->_additional_headers = array_map(
444 - function ( $headers ) {
445 + function( $headers ) {
445 446 $headers = explode( ':', $headers );
446 447 $headers = array_map( 'trim', $headers );
447 448 return $headers;
448 449 },
@@ -455,21 +456,10 @@
455 456 }
456 457 }
457 458 }
458 459
459 - // Check if this is a WooCommerce endpoint request and add verification token.
460 - if ( $this->is_woocommerce_request( $url ) ) {
461 - // Generate a unique token for this specific request.
462 - $token = wp_generate_password( 32, false );
463 - set_transient( 'visualizer_wc_token_' . $token, time(), 60 );
464 - if ( ! isset( $args['headers'] ) ) {
465 - $args['headers'] = array();
466 - }
467 - $args['headers']['X-Visualizer-Token'] = $token;
468 - }
469 -
470 460 do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Connecting to %s with args = %s ', $url, print_r( $args, true ) ), 'debug', __FILE__, __LINE__ );
471 - return wp_safe_remote_request( $url, $args );
461 + return wp_remote_request( $url, $args );
472 462 }
473 463
474 464 /**
475 465 * Refresh the data for the provided series.
@@ -498,53 +488,8 @@
498 488 return true;
499 489 }
500 490
501 491 /**
502 - * Check if the URL is a WooCommerce endpoint request.
503 - *
504 - * @access private
505 - * @param string $url The URL to check.
506 - * @return bool True if it's a WooCommerce request, false otherwise.
507 - */
508 - private function is_woocommerce_request( $url ) {
509 - if ( empty( $url ) ) {
510 - return false;
511 - }
512 -
513 - $parsed_url = function_exists( 'wp_parse_url' ) ? wp_parse_url( $url ) : parse_url( $url );
514 - if ( empty( $parsed_url ) || empty( $parsed_url['host'] ) || empty( $parsed_url['path'] ) ) {
515 - return false;
516 - }
517 -
518 - $site_url = function_exists( 'home_url' ) ? home_url() : ( function_exists( 'site_url' ) ? site_url() : '' );
519 - $site_parts = $site_url ? ( function_exists( 'wp_parse_url' ) ? wp_parse_url( $site_url ) : parse_url( $site_url ) ) : array();
520 - if ( empty( $site_parts['host'] ) ) {
521 - return false;
522 - }
523 -
524 - $target_host = strtolower( $parsed_url['host'] );
525 - $site_host = strtolower( $site_parts['host'] );
526 - if ( $target_host !== $site_host ) {
527 - return false;
528 - }
529 -
530 - $path = '/' . ltrim( $parsed_url['path'], '/' );
531 - $wc_patterns = array(
532 - '/wp-json/wc/',
533 - '/wp-json/wc-analytics/',
534 - '/wc-analytics/',
535 - );
536 -
537 - foreach ( $wc_patterns as $pattern ) {
538 - if ( strpos( $path, $pattern ) !== false ) {
539 - return true;
540 - }
541 - }
542 -
543 - return false;
544 - }
545 -
546 - /**
547 492 * Returns source name.
548 493 *
549 494 * @since 1.0.0
550 495 *
@@ -553,5 +498,6 @@
553 498 */
554 499 public function getSourceName() {
555 500 return __CLASS__;
556 501 }
502 +
557 503 }