Skip to content

Commit 5076513

Browse files
Add import from wordpress and database to plan 1
1 parent bce058a commit 5076513

File tree

5 files changed

+115
-19
lines changed

5 files changed

+115
-19
lines changed

classes/Visualizer/Module.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,4 +635,16 @@ public static function is_pro_older_than( $version ) {
635635
return version_compare( VISUALIZER_PRO_VERSION, $version, '<' );
636636
}
637637

638+
/**
639+
* Gets the features for the provided license type.
640+
*/
641+
public static final function get_features_for_license( $plan ) {
642+
switch ( $plan ) {
643+
case 1:
644+
return array( 'import-wp', 'db-query' );
645+
case 2:
646+
return array( 'schedule-chart', 'chart-permissions' );
647+
}
648+
}
649+
638650
}

classes/Visualizer/Module/Admin.php

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,65 @@ public function __construct( Visualizer_Plugin $plugin ) {
6868
$this->_addAction( '_wp_put_post_revision', 'addRevision', null, 10, 1 );
6969
$this->_addAction( 'wp_restore_post_revision', 'restoreRevision', null, 10, 2 );
7070

71+
$this->_addAction( 'visualizer_chart_schedules_spl', 'addSplChartSchedules', null, 10, 3 );
72+
7173
$this->_addAction( 'admin_init', 'init' );
7274
}
7375

76+
77+
/**
78+
* Add disabled `optgroup` schedules to the drop downs.
79+
*
80+
* @since ?
81+
*
82+
* @access public
83+
*
84+
* @param string $feature The feature for which to add schedules.
85+
* @param int $chart_id The chart ID.
86+
* @param int $plan The plan number.
87+
*/
88+
public function addSplChartSchedules( $feature, $chart_id, $plan ) {
89+
if ( apply_filters( 'visualizer_is_business', false ) ) {
90+
return;
91+
}
92+
93+
$license = __( 'PRO', 'visualizer' );
94+
switch ( $plan ) {
95+
case 2:
96+
$license = __( 'Developer', 'visualizer' );
97+
break;
98+
}
99+
100+
$hours = array(
101+
'0' => __( 'Live', 'visualizer' ),
102+
'1' => __( 'Each hour', 'visualizer' ),
103+
'12' => __( 'Each 12 hours', 'visualizer' ),
104+
'24' => __( 'Each day', 'visualizer' ),
105+
'72' => __( 'Each 3 days', 'visualizer' ),
106+
);
107+
108+
switch ( $feature ) {
109+
case 'json':
110+
// no more schedules if pro is already active.
111+
if ( Visualizer_Module::is_pro() ) {
112+
return;
113+
}
114+
break;
115+
case 'wp':
116+
// fall-through.
117+
case 'db':
118+
break;
119+
default:
120+
return;
121+
}
122+
123+
echo '<optgroup disabled label="' . sprintf( __( 'More in the %s version', 'visualizer' ), $license ) . '">';
124+
foreach ( $hours as $hour => $desc ) {
125+
echo '<option disabled>' . $desc . '</option>';
126+
}
127+
echo '</optgroup>';
128+
}
129+
74130
/**
75131
* No limits on revisions.
76132
*/

classes/Visualizer/Module/Chart.php

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1181,14 +1181,29 @@ public function saveQuery() {
11811181
)
11821182
);
11831183

1184+
$hours = filter_input(
1185+
INPUT_POST,
1186+
'refresh',
1187+
FILTER_VALIDATE_INT,
1188+
array(
1189+
'options' => array(
1190+
'min_range' => -1,
1191+
'max_range' => apply_filters( 'visualizer_is_business', false ) ? PHP_INT_MAX : -1,
1192+
),
1193+
)
1194+
);
1195+
1196+
if ( ! $hours ) {
1197+
$hours = -1;
1198+
}
1199+
11841200
$render = new Visualizer_Render_Page_Update();
11851201
if ( $chart_id ) {
11861202
$params = wp_parse_args( $_POST['params'] );
11871203
$source = new Visualizer_Source_Query( stripslashes( $params['query'] ) );
11881204
$source->fetch( false );
11891205
$error = $source->get_error();
11901206
if ( empty( $error ) ) {
1191-
$hours = $_POST['refresh'];
11921207
update_post_meta( $chart_id, Visualizer_Plugin::CF_DB_QUERY, stripslashes( $params['query'] ) );
11931208
update_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, $source->getSourceName() );
11941209
update_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, $source->getSeries() );
@@ -1237,7 +1252,21 @@ public function saveFilter() {
12371252
)
12381253
);
12391254

1240-
$hours = $_POST['refresh'];
1255+
$hours = filter_input(
1256+
INPUT_POST,
1257+
'refresh',
1258+
FILTER_VALIDATE_INT,
1259+
array(
1260+
'options' => array(
1261+
'min_range' => -1,
1262+
'max_range' => apply_filters( 'visualizer_is_business', false ) ? PHP_INT_MAX : -1,
1263+
),
1264+
)
1265+
);
1266+
1267+
if ( ! $hours ) {
1268+
$hours = -1;
1269+
}
12411270

12421271
do_action( 'visualizer_save_filter', $chart_id, $hours );
12431272

classes/Visualizer/Module/Sources.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public function filterChartData( $data, $chart_id ) {
130130
* @return string The new html code.
131131
*/
132132
public function addProUpsell( $old, $feature = null ) {
133-
$biz_features = array( 'schedule-chart', 'chart-permissions', 'db-query' );
133+
$biz_features = Visualizer_Module::get_features_for_license( 2 );
134134
$return = '';
135135
$feature = strval( $feature );
136136
if ( empty( $feature ) || ( in_array( $feature, $biz_features, true ) && ! apply_filters( 'visualizer_is_business', false ) ) ) {

classes/Visualizer/Render/Page/Data.php

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ class="visualizer-select">
214214
<option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
215215
<?php
216216
}
217+
do_action( 'visualizer_chart_schedules_spl', 'json', $this->chart->ID, 1 );
217218
?>
218219
</select>
219220
<?php
@@ -303,7 +304,7 @@ class="dashicons dashicons-lock"></span></h2>
303304
), admin_url( 'admin-ajax.php' )
304305
);
305306
?>
306-
<li class="viz-group visualizer_source_query_wp <?php echo apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'schedule-chart' ); ?> ">
307+
<li class="viz-group visualizer_source_query_wp <?php echo apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'import-wp' ); ?> ">
307308
<h2 class="viz-group-title viz-sub-group"><?php _e( 'Import from WordPress', 'visualizer' ); ?><span
308309
class="dashicons dashicons-lock"></span></h2>
309310
<div class="viz-group-content edit-data-content">
@@ -316,13 +317,11 @@ class="dashicons dashicons-lock"></span></h2>
316317
$bttn_label = 'visualizer_source_query_wp' === $source_of_chart ? __( 'Modify Filter', 'visualizer' ) : __( 'Create Filter', 'visualizer' );
317318
$hours = get_post_meta( $this->chart->ID, Visualizer_Plugin::CF_DB_SCHEDULE, true );
318319
$schedules = apply_filters(
319-
'visualizer_schedules', array(
320-
'0' => __( 'Live', 'visualizer' ),
321-
'1' => __( 'Each hour', 'visualizer' ),
322-
'12' => __( 'Each 12 hours', 'visualizer' ),
323-
'24' => __( 'Each day', 'visualizer' ),
324-
'72' => __( 'Each 3 days', 'visualizer' ),
325-
)
320+
'visualizer_chart_schedules', array(
321+
'-1' => __( 'One-time', 'visualizer' ),
322+
),
323+
'wp',
324+
$this->chart->ID
326325
);
327326
foreach ( $schedules as $num => $name ) {
328327
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
@@ -331,14 +330,15 @@ class="dashicons dashicons-lock"></span></h2>
331330
<option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
332331
<?php
333332
}
333+
do_action( 'visualizer_chart_schedules_spl', 'wp', $this->chart->ID, 2 );
334334
?>
335335
</select>
336336

337337
<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; ?>">
338338
<input type="button" id="db-filter-save-button" class="button button-primary" value="<?php _e( 'Save Schedule', 'visualizer' ); ?>">
339339
<?php echo apply_filters( 'visualizer_pro_upsell', '', 'db-query' ); ?>
340340
</form>
341-
<?php echo apply_filters( 'visualizer_pro_upsell', '', 'schedule-chart' ); ?>
341+
<?php echo apply_filters( 'visualizer_pro_upsell', '', 'import-wp' ); ?>
342342
</div>
343343
</div>
344344
</li>
@@ -365,13 +365,11 @@ class="dashicons dashicons-lock"></span></h2>
365365
$bttn_label = 'visualizer_source_query' === $source_of_chart ? __( 'Modify Query', 'visualizer' ) : __( 'Create Query', 'visualizer' );
366366
$hours = get_post_meta( $this->chart->ID, Visualizer_Plugin::CF_DB_SCHEDULE, true );
367367
$schedules = apply_filters(
368-
'visualizer_schedules', array(
369-
'0' => __( 'Live', 'visualizer' ),
370-
'1' => __( 'Each hour', 'visualizer' ),
371-
'12' => __( 'Each 12 hours', 'visualizer' ),
372-
'24' => __( 'Each day', 'visualizer' ),
373-
'72' => __( 'Each 3 days', 'visualizer' ),
374-
)
368+
'visualizer_chart_schedules', array(
369+
'-1' => __( 'One-time', 'visualizer' ),
370+
),
371+
'db',
372+
$this->chart->ID
375373
);
376374
foreach ( $schedules as $num => $name ) {
377375
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
@@ -380,6 +378,7 @@ class="dashicons dashicons-lock"></span></h2>
380378
<option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
381379
<?php
382380
}
381+
do_action( 'visualizer_chart_schedules_spl', 'db', $this->chart->ID, 2 );
383382
?>
384383
</select>
385384
<input type="hidden" name="params" id="viz-db-wizard-params">

0 commit comments

Comments
 (0)