PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.0.2
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.0.2
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/Module/Setup.php +1 -112 3.1.03.0.2 View file →
@@ -41,18 +41,12 @@
41 41 */
42 42 public function __construct( Visualizer_Plugin $plugin ) {
43 43 parent::__construct( $plugin );
44 44
45 - register_activation_hook( VISUALIZER_BASEFILE, array( $this, 'activate' ) );
46 - register_deactivation_hook( VISUALIZER_BASEFILE, array( $this, 'deactivate' ) );
47 - $this->_addAction( 'visualizer_schedule_refresh_db', 'refreshDbChart' );
48 - $this->_addFilter( 'visualizer_schedule_refresh_chart', 'refresh_db_for_chart', null, 10, 3 );
49 -
50 45 $this->_addAction( 'init', 'setupCustomPostTypes' );
51 46 $this->_addAction( 'plugins_loaded', 'loadTextDomain' );
52 47 $this->_addFilter( 'visualizer_logger_data', 'getLoggerData' );
53 48 $this->_addFilter( 'visualizer_get_chart_counts', 'getChartCountsByTypeAndMeta' );
54 -
55 49 }
56 50 /**
57 51 * Fetches the SDK logger data.
58 52 *
@@ -112,16 +106,11 @@
112 106 * @access public
113 107 */
114 108 public function setupCustomPostTypes() {
115 109 register_post_type(
116 - Visualizer_Plugin::CPT_VISUALIZER,
117 - array(
110 + Visualizer_Plugin::CPT_VISUALIZER, array(
118 111 'label' => 'Visualizer Charts',
119 112 'public' => false,
120 - 'supports' => array( 'revisions' ),
121 - 'show_in_rest' => true,
122 - 'rest_base' => 'visualizer',
123 - 'rest_controller_class' => 'WP_REST_Posts_Controller',
124 113 )
125 114 );
126 115 }
127 116
@@ -134,107 +123,7 @@
134 123 * @access public
135 124 */
136 125 public function loadTextDomain() {
137 126 load_plugin_textdomain( Visualizer_Plugin::NAME, false, dirname( plugin_basename( VISUALIZER_BASEFILE ) ) . '/languages/' );
138 - }
139 -
140 - /**
141 - * Activate the plugin
142 - */
143 - public function activate() {
144 - wp_clear_scheduled_hook( 'visualizer_schedule_refresh_db' );
145 - wp_schedule_event( strtotime( 'midnight' ) - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS, 'hourly', 'visualizer_schedule_refresh_db' );
146 - }
147 -
148 - /**
149 - * Deactivate the plugin
150 - */
151 - public function deactivate() {
152 - wp_clear_scheduled_hook( 'visualizer_schedule_refresh_db' );
153 - }
154 -
155 - /**
156 - * Refresh the specific chart from the db. This is mostly for charts that have 0 refresh time i.e. live data.
157 - *
158 - * @param WP_Post $chart The chart object.
159 - * @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.
162 - *
163 - * @access public
164 - */
165 - public function refresh_db_for_chart( $chart, $chart_id, $force = false ) {
166 - if ( ! $chart_id ) {
167 - return $chart;
168 - }
169 -
170 - if ( ! $chart ) {
171 - $chart = get_post( $chart_id );
172 - }
173 -
174 - // check if its a live-data chart or a cached-data chart.
175 - if ( ! $force ) {
176 - $hours = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_SCHEDULE, true );
177 - if ( ! empty( $hours ) ) {
178 - // cached, bail!
179 - return $chart;
180 - }
181 - }
182 -
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 - $params = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_QUERY, true );
190 - $source = new Visualizer_Source_Query( $params );
191 - $source->fetch( false );
192 - $error = $source->get_error();
193 - if ( empty( $error ) ) {
194 - update_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, $source->getSeries() );
195 -
196 - wp_update_post(
197 - array(
198 - 'ID' => $chart_id,
199 - 'post_content' => $source->getData(),
200 - )
201 - );
202 -
203 - $chart = get_post( $chart_id );
204 - }
205 -
206 - return $chart;
207 - }
208 -
209 - /**
210 - * Refresh the db chart.
211 - *
212 - * @access public
213 - */
214 - public function refreshDbChart() {
215 - $schedules = get_option( Visualizer_Plugin::CF_DB_SCHEDULE, array() );
216 - if ( ! $schedules ) {
217 - return;
218 - }
219 - if ( ! defined( 'VISUALIZER_DO_NOT_DIE' ) ) {
220 - // define this so that the ajax call does not die
221 - // this means that if the new version of pro and the old version of free are installed, only the first chart will be updated
222 - define( 'VISUALIZER_DO_NOT_DIE', true );
223 - }
224 -
225 - $new_schedules = array();
226 - $now = time();
227 - foreach ( $schedules as $chart_id => $time ) {
228 - $new_schedules[ $chart_id ] = $time;
229 - if ( $time > $now ) {
230 - continue;
231 - }
232 -
233 - $this->refresh_db_for_chart( null, $chart_id, false );
234 - $hours = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_SCHEDULE, true );
235 - $new_schedules[ $chart_id ] = time() + $hours * HOUR_IN_SECONDS;
236 - }
237 - update_option( Visualizer_Plugin::CF_DB_SCHEDULE, $new_schedules );
238 127 }
239 128
240 129 }