PluginProbe
TablePress – Tables in WordPress made easy / 3.4
TablePress – Tables in WordPress made easy v3.4
3.4 3.3.4 3.3.3 3.3.2 3.3.1 trunk 1.12 1.14 1.9.2 2.0.4 2.1.7 2.1.8 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 2.3.1 2.3.2 2.4 2.4.1 2.4.2 2.4.3 All 45 releases
← All changes | libraries/freemius/includes/class-fs-logger.php +43 -10 2.4.3 → 3.4 View file →
@@ -635,10 +635,20 @@
635 635 $limit = 10000,
636 636 $offset = 0,
637 637 $order = false
638 638 ) {
639 - global $wpdb;
639 + if ( empty( $filename ) ) {
640 + $filename = 'fs-logs-' . date( 'Y-m-d_H-i-s', WP_FS__SCRIPT_START_TIME ) . '.csv';
641 + }
640 642
643 + $upload_dir = wp_upload_dir();
644 + $filepath = rtrim( $upload_dir['path'], '/' ) . "/{$filename}";
645 +
646 + WP_Filesystem();
647 + if ( ! $GLOBALS['wp_filesystem']->is_writable( dirname( $filepath ) ) ) {
648 + return false;
649 + }
650 +
641 651 $query = self::build_db_logs_query(
642 652 $filters,
643 653 $limit,
644 654 $offset,
@@ -645,16 +655,8 @@
645 655 $order,
646 656 true
647 657 );
648 658
649 - $upload_dir = wp_upload_dir();
650 - if ( empty( $filename ) ) {
651 - $filename = 'fs-logs-' . date( 'Y-m-d_H-i-s', WP_FS__SCRIPT_START_TIME ) . '.csv';
652 - }
653 - $filepath = rtrim( $upload_dir['path'], '/' ) . "/{$filename}";
654 -
655 - $query .= " INTO OUTFILE '{$filepath}' FIELDS TERMINATED BY '\t' ESCAPED BY '\\\\' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\\n'";
656 -
657 659 $columns = '';
658 660 for ( $i = 0, $len = count( self::$_log_columns ); $i < $len; $i ++ ) {
659 661 if ( $i > 0 ) {
660 662 $columns .= ', ';
@@ -664,14 +666,18 @@
664 666 }
665 667
666 668 $query = "SELECT {$columns} UNION ALL " . $query;
667 669
668 - $result = $wpdb->query( $query );
670 + $result = $GLOBALS['wpdb']->get_results( $query );
669 671
670 672 if ( false === $result ) {
671 673 return false;
672 674 }
673 675
676 + if ( ! self::write_csv_to_filesystem( $filepath, $result ) ) {
677 + return false;
678 + }
679 +
674 680 return rtrim( $upload_dir['url'], '/' ) . '/' . $filename;
675 681 }
676 682
677 683 /**
@@ -688,8 +694,35 @@
688 694 $filename = 'fs-logs-' . date( 'Y-m-d_H-i-s', WP_FS__SCRIPT_START_TIME ) . '.csv';
689 695 }
690 696
691 697 return rtrim( $upload_dir['url'], '/' ) . $filename;
698 + }
699 +
700 + /**
701 + * @param string $file_path
702 + * @param array $query_results
703 + *
704 + * @return bool
705 + */
706 + private static function write_csv_to_filesystem( $file_path, $query_results ) {
707 + if ( empty( $query_results ) ) {
708 + return false;
709 + }
710 +
711 + $content = '';
712 +
713 + foreach ( $query_results as $row ) {
714 + $row_data = array_map( function ( $value ) {
715 + return str_replace( "\n", ' ', $value );
716 + }, (array) $row );
717 + $content .= implode( "\t", $row_data ) . "\n";
718 + }
719 +
720 + if ( ! $GLOBALS['wp_filesystem']->put_contents( $file_path, $content, FS_CHMOD_FILE ) ) {
721 + return false;
722 + }
723 +
724 + return true;
692 725 }
693 726
694 727 #endregion
695 728 }