PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.4.8
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.4.8
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/Render/Layout.php +50 -183 3.10.123.4.8 View file →
@@ -104,9 +104,9 @@
104 104 </tr>
105 105 </thead>
106 106 <tfoot>
107 107 </tfoot>
108 - <tbody>
108 + <tbody>
109 109 <?php
110 110 foreach ( $results as $result ) {
111 111 echo '<tr>';
112 112 foreach ( $result as $r ) {
@@ -127,20 +127,17 @@
127 127 * @access public
128 128 */
129 129 public static function _renderJsonScreen( $args ) {
130 130 $id = $args[1];
131 - $action = esc_url(
132 - add_query_arg(
133 - array(
134 - 'action' => Visualizer_Plugin::ACTION_JSON_SET_DATA,
135 - 'security' => wp_create_nonce( Visualizer_Plugin::ACTION_JSON_SET_DATA . Visualizer_Plugin::VERSION ),
136 - 'chart' => $id,
137 - ),
138 - admin_url( 'admin-ajax.php' )
139 - )
131 + $action = add_query_arg(
132 + array(
133 + 'action' => Visualizer_Plugin::ACTION_JSON_SET_DATA,
134 + 'security' => wp_create_nonce( Visualizer_Plugin::ACTION_JSON_SET_DATA . Visualizer_Plugin::VERSION ),
135 + 'chart' => $id,
136 + ),
137 + admin_url( 'admin-ajax.php' )
140 138 );
141 139
142 - $is_wc_source = get_post_meta( $id, Visualizer_Plugin::CF_IS_WOOCOMMERCE_SOURCE, true );
143 140 $url = get_post_meta( $id, Visualizer_Plugin::CF_JSON_URL, true );
144 141 $root = get_post_meta( $id, Visualizer_Plugin::CF_JSON_ROOT, true );
145 142 $paging = get_post_meta( $id, Visualizer_Plugin::CF_JSON_PAGING, true );
146 143 $headers = get_post_meta( $id, Visualizer_Plugin::CF_JSON_HEADERS, true );
@@ -171,13 +168,11 @@
171 168 id="vz-import-json-url"
172 169 name="url"
173 170 value="<?php echo esc_url( $url ); ?>"
174 171 placeholder="<?php esc_html_e( 'Please enter the URL', 'visualizer' ); ?>"
175 - class="visualizer-input json-form-element"
176 - <?php echo $is_wc_source ? 'readonly' : ''; ?>
177 - >
172 + class="visualizer-input json-form-element">
178 173 <button class="button button-secondary button-small" id="visualizer-json-fetch"><?php esc_html_e( 'Fetch Endpoint', 'visualizer' ); ?></button>
179 -
174 +
180 175 <div class="visualizer-json-subform">
181 176 <h3 class="viz-substep <?php echo $headers_open ? 'open' : ''; ?>"><?php _e( 'Headers', 'visualizer' ); ?></h3>
182 177 <div class="json-wizard-headers">
183 178 <div class="json-wizard-header">
@@ -198,9 +193,9 @@
198 193 id="vz-import-json-username"
199 194 name="username"
200 195 value="<?php echo ( array_key_exists( 'auth', $headers ) && array_key_exists( 'username', $headers['auth'] ) ? $headers['auth']['username'] : '' ); ?>"
201 196 placeholder="<?php esc_html_e( 'Username/Access Key', 'visualizer' ); ?>"
202 - class="json-form-element">
197 + class="json-form-element">
203 198 &
204 199 <input
205 200 type="password"
206 201 id="vz-import-json-password"
@@ -206,9 +201,9 @@
206 201 id="vz-import-json-password"
207 202 name="password"
208 203 value="<?php echo ( array_key_exists( 'auth', $headers ) && array_key_exists( 'password', $headers['auth'] ) ? $headers['auth']['password'] : '' ); ?>"
209 204 placeholder="<?php esc_html_e( 'Password/Secret Key', 'visualizer' ); ?>"
210 - class="json-form-element">
205 + class="json-form-element">
211 206 </div>
212 207 </div>
213 208 <div class="json-wizard-header">
214 209 <div></div>
@@ -225,14 +220,8 @@
225 220 placeholder="<?php esc_html_e( 'e.g. SharedKey <AccountName>:<Signature>', 'visualizer' ); ?>"
226 221 class="visualizer-input json-form-element">
227 222 </div>
228 223 </div>
229 - <div class="json-wizard-header">
230 - <div class="field-title"><?php esc_html_e( 'Additional headers', 'visualizer' ); ?></div>
231 - <div>
232 - <textarea name="additional_headers" class="visualizer-input" placeholder="<?php esc_html_e( 'Key:Value, Key2:Value2,...', 'visualizer' ); ?>"><?php echo isset( $headers['additional_headers'] ) ? $headers['additional_headers'] : ''; ?></textarea>
233 - </div>
234 - </div>
235 224 </div>
236 225 </div>
237 226 </form>
238 227 </div>
@@ -310,17 +299,15 @@
310 299 * @access public
311 300 */
312 301 public static function _renderSimpleEditorScreen( $args ) {
313 302 $chart_id = $args[1];
314 - $action = esc_url(
315 - add_query_arg(
316 - array(
317 - 'action' => Visualizer_Plugin::ACTION_UPLOAD_DATA,
318 - 'nonce' => wp_create_nonce(),
319 - 'chart' => $chart_id,
320 - ),
321 - admin_url( 'admin-ajax.php' )
322 - )
303 + $action = add_query_arg(
304 + array(
305 + 'action' => Visualizer_Plugin::ACTION_UPLOAD_DATA,
306 + 'nonce' => wp_create_nonce(),
307 + 'chart' => $chart_id,
308 + ),
309 + admin_url( 'admin-ajax.php' )
323 310 );
324 311 ?>
325 312 <div class="viz-simple-editor">
326 313 <div class="viz-simple-editor-type viz-table-editor">
@@ -419,9 +406,9 @@
419 406 }
420 407 ?>
421 408 </tr>
422 409 </thead>
423 - <tbody>
410 + <tbody>
424 411 <tr>
425 412 <th><?php _e( 'Data Type', 'visualizer' ); ?></th>
426 413 <?php
427 414 $index = 0;
@@ -588,15 +575,14 @@
588 575 <ul class="viz-group-wrapper full-height">
589 576 <li class="viz-group open" id="vz-chart-settings">
590 577 <ul class="viz-group-content">
591 578 <ul class="viz-group-wrapper">
592 - <form id="settings-form" action="<?php echo esc_url( add_query_arg( 'nonce', wp_create_nonce() ) ); ?>" method="post">
593 - <input type="hidden" id="chart-img" name="chart-img">
579 + <form id="settings-form" action="<?php echo add_query_arg( 'nonce', wp_create_nonce() ); ?>" method="post">
594 580 <?php echo $sidebar; ?>
595 581 <?php self::_renderPermissions( $args ); ?>
596 582 <input type="hidden" name="save" value="1">
597 583 </form>
598 - <form id="cancel-form" action="<?php echo esc_url( add_query_arg( 'nonce', wp_create_nonce() ) ); ?>" method="post">
584 + <form id="cancel-form" action="<?php echo add_query_arg( 'nonce', wp_create_nonce() ); ?>" method="post">
599 585 <input type="hidden" name="cancel" value="1">
600 586 </form>
601 587 </ul>
602 588 </ul>
@@ -660,26 +646,19 @@
660 646 */
661 647 public static function _renderTabBasic( $args ) {
662 648 $chart_id = $args[1];
663 649
664 - $upload_link = esc_url(
665 - add_query_arg(
666 - array(
667 - 'action' => Visualizer_Plugin::ACTION_UPLOAD_DATA,
668 - 'nonce' => wp_create_nonce(),
669 - 'chart' => $chart_id,
670 - ),
671 - admin_url( 'admin-ajax.php' )
672 - )
650 + $upload_link = add_query_arg(
651 + array(
652 + 'action' => Visualizer_Plugin::ACTION_UPLOAD_DATA,
653 + 'nonce' => wp_create_nonce(),
654 + 'chart' => $chart_id,
655 + ),
656 + admin_url( 'admin-ajax.php' )
673 657 );
674 658
675 659 // this will allow us to open the correct source tab by default.
676 - $source_of_chart = strtolower( get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true ) );
677 - // Import from woocommerce report.
678 - $is_woocommerce_source = strtolower( get_post_meta( $chart_id, Visualizer_Plugin::CF_IS_WOOCOMMERCE_SOURCE, true ) );
679 - if ( ! empty( $is_woocommerce_source ) ) {
680 - $source_of_chart .= '_wc';
681 - }
660 + $source_of_chart = strtolower( get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true ) );
682 661 // both import from wp and import from db have the same source so we need to differentiate.
683 662 $filter_config = get_post_meta( $chart_id, Visualizer_Plugin::CF_FILTER_CONFIG, true );
684 663 // if filter config is present, then its import from wp.
685 664 if ( ! empty( $filter_config ) ) {
@@ -828,16 +807,14 @@
828 807 <p class="viz-group-description"><?php _e( 'You can import here data from your previously created charts', 'visualizer' ); ?></p>
829 808 <form>
830 809 <select name="vz-import-from-chart" id="chart-id" class="visualizer-select">
831 810 <?php
832 - $fetch_link = esc_url(
833 - add_query_arg(
834 - array(
835 - 'action' => Visualizer_Module::is_pro() ? Visualizer_Pro::ACTION_FETCH_DATA : '',
836 - 'nonce' => wp_create_nonce(),
837 - ),
838 - admin_url( 'admin-ajax.php' )
839 - )
811 + $fetch_link = add_query_arg(
812 + array(
813 + 'action' => Visualizer_Module::is_pro() ? Visualizer_Pro::ACTION_FETCH_DATA : '',
814 + 'nonce' => wp_create_nonce(),
815 + ),
816 + admin_url( 'admin-ajax.php' )
840 817 );
841 818 $query_args_charts = array(
842 819 'post_type' => Visualizer_Plugin::CPT_VISUALIZER,
843 820 'posts_per_page' => 300,
@@ -871,26 +848,20 @@
871 848 </form>
872 849 <input type="button" id="existing-chart" class="button button-primary"
873 850 value="<?php _e( 'Import Chart', 'visualizer' ); ?>"
874 851 data-viz-link="<?php echo $fetch_link; ?>">
875 - <?php
876 - if ( ! Visualizer_Module_Admin::proFeaturesLocked() ) {
877 - echo apply_filters( 'visualizer_pro_upsell', '', 'import-chart' );
878 - }
879 - ?>
852 + <?php echo apply_filters( 'visualizer_pro_upsell', '' ); ?>
880 853 </div>
881 854 </div>
882 855 </li>
883 856
884 857 <?php
885 - $save_filter = esc_url(
886 - add_query_arg(
887 - array(
888 - 'action' => Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY,
889 - 'security' => wp_create_nonce( Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY . Visualizer_Plugin::VERSION ),
890 - 'chart' => $chart_id,
891 - ), admin_url( 'admin-ajax.php' )
892 - )
858 + $save_filter = add_query_arg(
859 + array(
860 + 'action' => Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY,
861 + 'security' => wp_create_nonce( Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY . Visualizer_Plugin::VERSION ),
862 + 'chart' => $chart_id,
863 + ), admin_url( 'admin-ajax.php' )
893 864 );
894 865 ?>
895 866 <!-- import from WordPress -->
896 867 <li class="viz-group visualizer_source_query_wp <?php echo apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'import-wp' ); ?> ">
@@ -924,8 +895,9 @@
924 895 </select>
925 896
926 897 <input type="button" id="filter-chart-button" class="button button-secondary show-chart-toggle" value="<?php echo $bttn_label; ?>" data-current="chart" data-t-filter="<?php _e( 'Show Chart', 'visualizer' ); ?>" data-t-chart="<?php echo $bttn_label; ?>">
927 898 <input type="button" id="db-filter-save-button" class="button button-primary" value="<?php _e( 'Save Schedule', 'visualizer' ); ?>">
899 + <?php echo apply_filters( 'visualizer_pro_upsell', '', 'db-query' ); ?>
928 900 </form>
929 901 <?php echo apply_filters( 'visualizer_pro_upsell', '', 'import-wp' ); ?>
930 902 </div>
931 903 </div>
@@ -930,116 +902,16 @@
930 902 </div>
931 903 </div>
932 904 </li>
933 905
934 - <!-- import from WooCommerce -->
935 906 <?php
936 - if ( class_exists( 'WooCommerce', false ) ) :
937 - $wc_source = strtolower( get_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_WOOCOMMERCE_SOURCE, true ) );
938 - $wc_source_list = apply_filters(
939 - 'visualizer_woocommerce_report_endpoints',
907 + $save_query = add_query_arg(
940 908 array(
941 - array(
942 - 'name' => esc_html__( 'Sales', 'visualizer' ),
943 - 'endpoint' => esc_attr( 'sales' ),
944 - ),
945 - array(
946 - 'name' => esc_html__( 'Top Sellers', 'visualizer' ),
947 - 'endpoint' => esc_attr( 'top_sellers' ),
948 - ),
949 - array(
950 - 'name' => esc_html__( 'Coupons Totals', 'visualizer' ),
951 - 'endpoint' => esc_attr( 'coupons/totals' ),
952 - ),
953 - array(
954 - 'name' => esc_html__( 'Customers Totals', 'visualizer' ),
955 - 'endpoint' => esc_attr( 'customers/totals' ),
956 - ),
957 - array(
958 - 'name' => esc_html__( 'Orders Totals', 'visualizer' ),
959 - 'endpoint' => esc_attr( 'orders/totals' ),
960 - ),
961 - array(
962 - 'name' => esc_html__( 'Products Totals', 'visualizer' ),
963 - 'endpoint' => esc_attr( 'products/totals' ),
964 - ),
965 - array(
966 - 'name' => esc_html__( 'Reviews Totals', 'visualizer' ),
967 - 'endpoint' => esc_attr( 'reviews/totals' ),
968 - ),
969 - )
909 + 'action' => Visualizer_Plugin::ACTION_SAVE_DB_QUERY,
910 + 'security' => wp_create_nonce( Visualizer_Plugin::ACTION_SAVE_DB_QUERY . Visualizer_Plugin::VERSION ),
911 + 'chart' => $chart_id,
912 + ), admin_url( 'admin-ajax.php' )
970 913 );
971 - ?>
972 - <li class="viz-group visualizer_woocommerce_source<?php echo 'visualizer_source_json_wc' === $source_of_chart ? ' open' : ''; ?> <?php echo apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'import-wc-report' ); ?> ">
973 - <h2 class="viz-group-title viz-sub-group"><?php _e( 'Import from WooCommerce Reports', 'visualizer' ); ?><span class="dashicons dashicons-lock"></span></h2>
974 - <div class="viz-group-content edit-data-content">
975 - <div>
976 - <p class="viz-group-description"><?php _e( 'You can choose here to import/synchronize your chart data with a WooCommerce report API. For more info check <a href="https://woocommerce.github.io/woocommerce-rest-api-docs/?shell#reports" target="_blank" >this</a> tutorial', 'visualizer' ); ?></p>
977 - <form id="vz-import-woo-report" action="<?php echo $upload_link; ?>" method="post" target="thehole" enctype="multipart/form-data">
978 - <div class="remote-file-section">
979 - <?php
980 - $bttn_label = 'visualizer_source_json_wc' === $source_of_chart ? __( 'Modify Parameters', 'visualizer' ) : __( 'Create Parameters', 'visualizer' );
981 - ?>
982 - <p class="viz-group-description"><?php _e( 'How often do you want to check the URL', 'visualizer' ); ?></p>
983 - <select name="time" id="vz-woo-time" class="visualizer-select json-form-element" data-chart="<?php echo $chart_id; ?>">
984 - <?php
985 - $hours = get_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_SCHEDULE, true );
986 - $schedules = apply_filters(
987 - 'visualizer_chart_schedules', array(
988 - '-1' => __( 'One-time', 'visualizer' ),
989 - ),
990 - 'json',
991 - $chart_id
992 - );
993 - foreach ( $schedules as $num => $name ) {
994 - // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
995 - $extra = $num == $hours ? 'selected' : '';
996 - ?>
997 - <option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
998 - <?php
999 - }
1000 - do_action( 'visualizer_chart_schedules_spl', 'json', $chart_id, 1 );
1001 - ?>
1002 - </select>
1003 - <p class="viz-group-description"><?php _e( 'Select report endpoint', 'visualizer' ); ?></p>
1004 - <select name="vz_woo_source" id="vz-woo-source" class="visualizer-select json-form-element" data-chart="<?php echo $chart_id; ?>">
1005 - <option value=""></option>
1006 - <?php
1007 - if ( ! empty( $wc_source_list ) ) {
1008 - foreach ( $wc_source_list as $api ) {
1009 - if ( isset( $api['name'] ) && $api['endpoint'] ) {
1010 - echo sprintf( '<option value="%2$s" %3$s>%1$s</option>', $api['name'], $api['endpoint'], selected( $wc_source, $api['endpoint'], false ) ); // phpcs:ignore
1011 - }
1012 - }
1013 - }
1014 - ?>
1015 - </select>
1016 - </div>
1017 -
1018 - <input type="button" id="woo-chart-button" class="button button-secondary show-chart-toggle"
1019 - value="<?php echo $bttn_label; ?>" data-current="chart"
1020 - data-t-filter="<?php _e( 'Show Chart', 'visualizer' ); ?>"
1021 - data-t-chart="<?php echo $bttn_label; ?>"
1022 - <?php empty( $wc_source ) ? 'disabled' : ''; ?>
1023 - >
1024 - <input type="button" id="woo-chart-save-button" class="button button-primary "
1025 - value="<?php _e( 'Save Schedule', 'visualizer' ); ?>" <?php empty( $wc_source ) ? 'disabled' : ''; ?>>
1026 - </form>
1027 - <?php echo apply_filters( 'visualizer_pro_upsell', '', 'import-wc-report' ); ?>
1028 - </div>
1029 - </div>
1030 - </li>
1031 - <?php endif; ?>
1032 - <?php
1033 - $save_query = esc_url(
1034 - add_query_arg(
1035 - array(
1036 - 'action' => Visualizer_Plugin::ACTION_SAVE_DB_QUERY,
1037 - 'security' => wp_create_nonce( Visualizer_Plugin::ACTION_SAVE_DB_QUERY . Visualizer_Plugin::VERSION ),
1038 - 'chart' => $chart_id,
1039 - ), admin_url( 'admin-ajax.php' )
1040 - )
1041 - );
1042 914 ?>
1043 915 <!-- import from db -->
1044 916 <li class="viz-group visualizer_source_query <?php echo apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'db-query' ); ?>">
1045 917 <h2 class="viz-group-title viz-sub-group"><?php _e( 'Import from database', 'visualizer' ); ?><span
@@ -1080,9 +952,9 @@
1080 952 </div>
1081 953 </li>
1082 954
1083 955 <!-- manual -->
1084 - <li class="viz-group visualizer_source_manual <?php echo ! Visualizer_Module_Admin::proFeaturesLocked() ? apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'db-query' ) : ''; ?>">
956 + <li class="viz-group visualizer_source_manual">
1085 957 <h2 class="viz-group-title viz-sub-group visualizer-editor-tab" data-current="chart"><?php _e( 'Manual Data', 'visualizer' ); ?>
1086 958 <span class="dashicons dashicons-lock"></span>
1087 959 </h2>
1088 960 <div class="viz-group-content edit-data-content">
@@ -1122,13 +994,8 @@
1122 994 data-t-chart="<?php _e( 'View Editor', 'visualizer' ); ?>"
1123 995 >
1124 996 <p class="viz-group-description viz-info-msg"><?php echo sprintf( __( 'Please make sure you click \'Show Chart\' before you save the chart.', 'visualizer' ) ); ?></p>
1125 997 <?php } ?>
1126 - <?php
1127 - if ( ! Visualizer_Module_Admin::proFeaturesLocked() ) {
1128 - echo apply_filters( 'visualizer_pro_upsell', '', 'manual-data' );
1129 - }
1130 - ?>
1131 998 </form>
1132 999 </div>
1133 1000 </li>
1134 1001 </ul>