forked from LiveCarta/LiveCartaWP
Changed source root directory
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Freemius
|
||||
* @copyright Copyright (c) 2015, Freemius, Inc.
|
||||
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
||||
* @since 1.0.6
|
||||
*/
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
class FS_Plan_Manager {
|
||||
/**
|
||||
* @var FS_Plan_Manager
|
||||
*/
|
||||
private static $_instance;
|
||||
|
||||
/**
|
||||
* @return FS_Plan_Manager
|
||||
*/
|
||||
static function instance() {
|
||||
if ( ! isset( self::$_instance ) ) {
|
||||
self::$_instance = new FS_Plan_Manager();
|
||||
}
|
||||
|
||||
return self::$_instance;
|
||||
}
|
||||
|
||||
private function __construct() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param FS_Plugin_License[] $licenses
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function has_premium_license( $licenses ) {
|
||||
if ( is_array( $licenses ) ) {
|
||||
/**
|
||||
* @var FS_Plugin_License[] $licenses
|
||||
*/
|
||||
foreach ( $licenses as $license ) {
|
||||
if ( ! $license->is_utilized() && $license->is_features_enabled() ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if plugin has any paid plans.
|
||||
*
|
||||
* @author Vova Feldman (@svovaf)
|
||||
* @since 1.0.7
|
||||
*
|
||||
* @param FS_Plugin_Plan[] $plans
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function has_paid_plan( $plans ) {
|
||||
if ( ! is_array( $plans ) || 0 === count( $plans ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @var FS_Plugin_Plan[] $plans
|
||||
*/
|
||||
for ( $i = 0, $len = count( $plans ); $i < $len; $i ++ ) {
|
||||
if ( ! $plans[ $i ]->is_free() ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if plugin has any free plan, or is it premium only.
|
||||
*
|
||||
* Note: If no plans configured, assume plugin is free.
|
||||
*
|
||||
* @author Vova Feldman (@svovaf)
|
||||
* @since 1.0.7
|
||||
*
|
||||
* @param FS_Plugin_Plan[] $plans
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function has_free_plan( $plans ) {
|
||||
if ( ! is_array( $plans ) || 0 === count( $plans ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @var FS_Plugin_Plan[] $plans
|
||||
*/
|
||||
for ( $i = 0, $len = count( $plans ); $i < $len; $i ++ ) {
|
||||
if ( $plans[ $i ]->is_free() ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find all plans that have trial.
|
||||
* Since 2.6.2 call get_filtered_plan
|
||||
*
|
||||
* @author Vova Feldman (@svovaf)
|
||||
* @since 1.0.9
|
||||
*
|
||||
* @param FS_Plugin_Plan[] $plans
|
||||
*
|
||||
* @return FS_Plugin_Plan[]
|
||||
*/
|
||||
function get_trial_plans( $plans ) {
|
||||
return $this->get_filtered_plans( $plans, true );
|
||||
}
|
||||
|
||||
/**
|
||||
* Find all plans that are not hidden and have trial.
|
||||
*
|
||||
* @author Daniele Alessandra (@danielealessandra)
|
||||
*
|
||||
* @param FS_Plugin_Plan[] $plans
|
||||
*
|
||||
* @return FS_Plugin_Plan[]
|
||||
* @since 2.6.3
|
||||
*
|
||||
*/
|
||||
function get_visible_trial_plans( $plans ) {
|
||||
return $this->get_filtered_plans( $plans, true, true );
|
||||
}
|
||||
|
||||
/**
|
||||
* Find all plans filtered by trial or visibility.
|
||||
*
|
||||
* @author Daniele Alessandra (@danielealessandra)
|
||||
*
|
||||
* @param FS_Plugin_Plan[] $plans
|
||||
* @param boolean $should_have_trials
|
||||
* @param boolean $should_be_visible
|
||||
*
|
||||
* @return FS_Plugin_Plan[]
|
||||
* @since 2.6.3
|
||||
*
|
||||
*/
|
||||
function get_filtered_plans( $plans, $should_have_trials = false, $should_be_visible = false ) {
|
||||
$filtered_plans = array();
|
||||
|
||||
if ( is_array( $plans ) && count( $plans ) > 0 ) {
|
||||
foreach ( $plans as $plan ) {
|
||||
if ( ( $should_have_trials && ! $plan->has_trial() ) || ( $should_be_visible && $plan->is_hidden ) ) {
|
||||
continue;
|
||||
}
|
||||
$filtered_plans[] = $plan;
|
||||
}
|
||||
}
|
||||
|
||||
return $filtered_plans;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if plugin has any trial plan.
|
||||
*
|
||||
* @author Vova Feldman (@svovaf)
|
||||
* @since 1.0.9
|
||||
*
|
||||
* @param FS_Plugin_Plan[] $plans
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function has_trial_plan( $plans ) {
|
||||
if ( ! is_array( $plans ) || 0 === count( $plans ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @var FS_Plugin_Plan[] $plans
|
||||
*/
|
||||
for ( $i = 0, $len = count( $plans ); $i < $len; $i ++ ) {
|
||||
if ( $plans[ $i ]->has_trial() ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user