PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.0.6
Presto Player v4.0.6
4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Plugin.php
presto-player / inc Last commit date
Blocks 6 months ago Contracts 1 year ago Database 1 year ago Integrations 1 year ago Libraries 1 year ago Models 7 months ago Seeds 1 year ago Services 6 months ago Support 7 months ago config 9 months ago Activator.php 1 year ago Attachment.php 1 year ago Controller.php 1 year ago Core.php 1 year ago Deactivator.php 1 year ago Factory.php 1 year ago Files.php 1 year ago Playlist.php 1 year ago Plugin.php 9 months ago Requirements.php 1 year ago support.php 1 year ago
Plugin.php
119 lines
1 <?php
2 /**
3 * Plugin main class file.
4 *
5 * @package PrestoPlayer
6 */
7
8 namespace PrestoPlayer;
9
10 /**
11 * Main Plugin class.
12 */
13 class Plugin {
14 /**
15 * Required versions for features.
16 *
17 * @var array
18 */
19 protected const REQUIRED_VERSIONS = array(
20 'popups' => '3.0.0',
21 );
22
23 /**
24 * Check if pro version is enabled.
25 *
26 * @return bool
27 */
28 protected function isPro() {
29 return defined( 'PRESTO_PLAYER_PRO_ENABLED' );
30 }
31
32 /**
33 * Get the required pro version.
34 *
35 * @return string
36 */
37 protected function requiredProVersion() {
38 return '0.0.3';
39 }
40
41 /**
42 * Get the required pro version for a feature.
43 *
44 * @param string $feature Feature name to check.
45 * @return string
46 */
47 protected function requiredProVersionForFeature( $feature ) {
48 return self::REQUIRED_VERSIONS[ $feature ];
49 }
50
51 /**
52 * Get the version from plugin data
53 *
54 * @return string
55 */
56 protected function version() {
57 // Load version from plugin data.
58 if ( ! \function_exists( 'get_plugin_data' ) ) {
59 require_once \ABSPATH . 'wp-admin/includes/plugin.php';
60 }
61
62 return \get_plugin_data( PRESTO_PLAYER_PLUGIN_FILE, false, false )['Version'];
63 }
64
65 /**
66 * Get the current pro version.
67 *
68 * @return string|false
69 */
70 protected function proVersion() {
71 if ( ! $this->isPro() ) {
72 return false;
73 }
74 if ( class_exists( '\PrestoPlayer\Pro\Plugin' ) ) {
75 return \PrestoPlayer\Pro\Plugin::version();
76 }
77 return false;
78 }
79
80 /**
81 * Check if pro version meets minimum required version for a feature.
82 *
83 * @param string $feature Feature name to check.
84 * @return bool
85 */
86 protected function hasRequiredProVersion( $feature ) {
87 // get the required version for the feature.
88 $required_versions = $this->requiredProVersionForFeature( $feature );
89
90 // The feature does not exist.
91 if ( empty( $required_versions ) ) {
92 return false;
93 }
94
95 // get the pro version.
96 $pro_version = $this->proVersion();
97
98 // Pro version is not set (not installed).
99 if ( ! $pro_version ) {
100 return false;
101 }
102
103 // Compare the pro version with the required version.
104 return version_compare( $pro_version, $required_versions, '>=' );
105 }
106
107 /**
108 * Static Facade Accessor
109 *
110 * @param string $method Method to call.
111 * @param mixed $params Method params.
112 *
113 * @return mixed
114 */
115 public static function __callStatic( $method, $params ) {
116 return call_user_func_array( array( new static(), $method ), $params );
117 }
118 }
119