Skip to content

Commit 4116b5b

Browse files
Merge pull request #511 from contactashish13/issue-200-pro
Add import from wordpress and database to plan 1
2 parents a73b3de + 5076513 commit 4116b5b

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
@@ -640,4 +640,16 @@ public static function is_pro_older_than( $version ) {
640640
return version_compare( VISUALIZER_PRO_VERSION, $version, '<' );
641641
}
642642

643+
/**
644+
* Gets the features for the provided license type.
645+
*/
646+
public static final function get_features_for_license( $plan ) {
647+
switch ( $plan ) {
648+
case 1:
649+
return array( 'import-wp', 'db-query' );
650+
case 2:
651+
return array( 'schedule-chart', 'chart-permissions' );
652+
}
653+
}
654+
643655
}

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
@@ -1199,14 +1199,29 @@ public function saveQuery() {
11991199
)
12001200
);
12011201

1202+
$hours = filter_input(
1203+
INPUT_POST,
1204+
'refresh',
1205+
FILTER_VALIDATE_INT,
1206+
array(
1207+
'options' => array(
1208+
'min_range' => -1,
1209+
'max_range' => apply_filters( 'visualizer_is_business', false ) ? PHP_INT_MAX : -1,
1210+
),
1211+
)
1212+
);
1213+
1214+
if ( ! $hours ) {
1215+
$hours = -1;
1216+
}
1217+
12021218
$render = new Visualizer_Render_Page_Update();
12031219
if ( $chart_id ) {
12041220
$params = wp_parse_args( $_POST['params'] );
12051221
$source = new Visualizer_Source_Query( stripslashes( $params['query'] ) );
12061222
$source->fetch( false );
12071223
$error = $source->get_error();
12081224
if ( empty( $error ) ) {
1209-
$hours = $_POST['refresh'];
12101225
update_post_meta( $chart_id, Visualizer_Plugin::CF_DB_QUERY, stripslashes( $params['query'] ) );
12111226
update_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, $source->getSourceName() );
12121227
update_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, $source->getSeries() );
@@ -1255,7 +1270,21 @@ public function saveFilter() {
12551270
)
12561271
);
12571272

1258-
$hours = $_POST['refresh'];
1273+
$hours = filter_input(
1274+
INPUT_POST,
1275+
'refresh',
1276+
FILTER_VALIDATE_INT,
1277+
array(
1278+
'options' => array(
1279+
'min_range' => -1,
1280+
'max_range' => apply_filters( 'visualizer_is_business', false ) ? PHP_INT_MAX : -1,
1281+
),
1282+
)
1283+
);
1284+
1285+
if ( ! $hours ) {
1286+
$hours = -1;
1287+
}
12591288

12601289
do_action( 'visualizer_save_filter', $chart_id, $hours );
12611290

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)