PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.1.3
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.1.3
4.0.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 All 149 releases
← All changes | classes/Visualizer/Module/Setup.php +32 -11 3.1.23.1.3 View file →
@@ -44,10 +44,11 @@
44 44
45 45 register_activation_hook( VISUALIZER_BASEFILE, array( $this, 'activate' ) );
46 46 register_deactivation_hook( VISUALIZER_BASEFILE, array( $this, 'deactivate' ) );
47 47 $this->_addAction( 'visualizer_schedule_refresh_db', 'refreshDbChart' );
48 - $this->_addFilter( 'visualizer_schedule_refresh_chart', 'refresh_db_for_chart', null, 10, 3 );
48 + $this->_addFilter( 'visualizer_schedule_refresh_chart', 'refresh_db_for_chart', 10, 3 );
49 49
50 + $this->_addAction( 'activated_plugin', 'onActivation' );
50 51 $this->_addAction( 'init', 'setupCustomPostTypes' );
51 52 $this->_addAction( 'plugins_loaded', 'loadTextDomain' );
52 53 $this->_addFilter( 'visualizer_logger_data', 'getLoggerData' );
53 54 $this->_addFilter( 'visualizer_get_chart_counts', 'getChartCountsByTypeAndMeta' );
@@ -145,8 +146,23 @@
145 146 wp_schedule_event( strtotime( 'midnight' ) - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS, 'hourly', 'visualizer_schedule_refresh_db' );
146 147 }
147 148
148 149 /**
150 + * On activation of the plugin
151 + */
152 + public function onActivation( $plugin ) {
153 + if ( defined( 'TI_UNIT_TESTING' ) ) {
154 + return;
155 + }
156 +
157 + if ( $plugin == VISUALIZER_BASENAME ) {
158 + wp_redirect( admin_url( 'upload.php?page=' . Visualizer_Plugin::NAME ) );
159 + exit();
160 + }
161 + }
162 +
163 +
164 + /**
149 165 * Deactivate the plugin
150 166 */
151 167 public function deactivate() {
152 168 wp_clear_scheduled_hook( 'visualizer_schedule_refresh_db' );
@@ -152,14 +168,13 @@
152 168 wp_clear_scheduled_hook( 'visualizer_schedule_refresh_db' );
153 169 }
154 170
155 171 /**
156 - * Refresh the specific chart from the db. This is mostly for charts that have 0 refresh time i.e. live data.
172 + * Refresh the specific chart from the db.
157 173 *
158 174 * @param WP_Post $chart The chart object.
159 175 * @param int $chart_id The chart id.
160 - * @param bool $force If this is true, then the chart data will be refreshed no matter if the chart requests live data or cached data.
161 - * If false, data will be refreshed only if the chart requests live data.
176 + * @param bool $force If this is true, then the chart data will be force refreshed. If false, data will be refreshed only if the chart requests live data.
162 177 *
163 178 * @access public
164 179 */
165 180 public function refresh_db_for_chart( $chart, $chart_id, $force = false ) {
@@ -170,8 +185,18 @@
170 185 if ( ! $chart ) {
171 186 $chart = get_post( $chart_id );
172 187 }
173 188
189 + if ( ! $chart ) {
190 + return $chart;
191 + }
192 +
193 + // check if the source is correct.
194 + $source = get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true );
195 + if ( $source !== 'Visualizer_Source_Query' ) {
196 + return $chart;
197 + }
198 +
174 199 // check if its a live-data chart or a cached-data chart.
175 200 if ( ! $force ) {
176 201 $hours = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_SCHEDULE, true );
177 202 if ( ! empty( $hours ) ) {
@@ -179,17 +204,12 @@
179 204 return $chart;
180 205 }
181 206 }
182 207
183 - // check if the source is correct.
184 - $source = get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true );
185 - if ( $source !== 'Visualizer_Source_Query_Params' ) {
186 - return $chart;
187 - }
188 -
189 208 $params = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_QUERY, true );
190 209 $source = new Visualizer_Source_Query( $params );
191 210 $source->fetch( false );
211 +
192 212 $error = $source->get_error();
193 213 if ( empty( $error ) ) {
194 214 update_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, $source->getSeries() );
195 215
@@ -229,9 +249,10 @@
229 249 if ( $time > $now ) {
230 250 continue;
231 251 }
232 252
233 - $this->refresh_db_for_chart( null, $chart_id, false );
253 + // if the time is nigh, we force an update.
254 + $this->refresh_db_for_chart( null, $chart_id, true );
234 255 $hours = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_SCHEDULE, true );
235 256 $new_schedules[ $chart_id ] = time() + $hours * HOUR_IN_SECONDS;
236 257 }
237 258 update_option( Visualizer_Plugin::CF_DB_SCHEDULE, $new_schedules );