PluginProbe
FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel / 1.5.0
FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel v1.5.0
1.7.1 1.7.0 1.6.0 1.5.2 trunk 0.1 0.2.0 0.2.1 0.3 0.3.1 0.3.2 0.3.3 0.3.4 0.4 0.4.1 0.4.2 0.4.3 1.0 1.1 1.2 1.3.1 1.4.0 1.4.1 1.5.0 1.5.1 All 26 releases
flywp / flywp.php

flywp.php in FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel 1.5.0, at flywp.php

170 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: FlyWP
4 * Plugin URI: https://flywp.com
5 * Description: Helper plugin for FlyWP
6 * Version: 1.5.0
7 * Author: FlyWP
8 * Author URI: https://flywp.com/?utm_source=wporg&utm_medium=banner&utm_campaign=author-uri
9 * License: GPL2
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 require __DIR__ . '/vendor/autoload.php';
18
19 use WeDevs\WpUtils\ContainerTrait;
20 use WeDevs\WpUtils\HookTrait;
21 use WeDevs\WpUtils\SingletonTrait;
22
23 /**
24 * Main FlyWP Class.
25 *
26 * @var admin FlyWP\Admin
27 * @var rest FlyWP\Api
28 * @var fastcgi FlyWP\Fastcgi_Cache
29 * @var router FlyWP\Router
30 *
31 * @class FlyWP
32 */
33 final class FlyWP_Plugin {
34
35 use SingletonTrait;
36 use ContainerTrait;
37 use HookTrait;
38
39 /**
40 * Plugin version.
41 *
42 * @var string
43 */
44 public $version = '1.5.0';
45
46 /**
47 * Plugin Constructor.
48 *
49 * @return void
50 */
51 private function __construct() {
52 $this->define_constants();
53
54 $this->add_action( 'plugins_loaded', 'init_plugin' );
55 register_activation_hook( __FILE__, [ $this, 'activate' ] );
56 register_deactivation_hook( __FILE__, [ $this, 'deactivate' ] );
57 }
58
59 /**
60 * Define plugin constants.
61 *
62 * @return void
63 */
64 private function define_constants() {
65 define( 'FLYWP_VERSION', $this->version );
66 define( 'FLYWP_PLUGIN_FILE', __FILE__ );
67 define( 'FLYWP_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
68 define( 'FLYWP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
69 define( 'FLYWP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
70
71 if ( ! defined( 'FLYWP_API_KEY' ) ) {
72 define( 'FLYWP_API_KEY', '' );
73 }
74 }
75
76 /**
77 * Plugin activation hook.
78 *
79 * @return void
80 */
81 public function activate() {
82 $router = new FlyWP\Router();
83 $router->register_routes();
84
85 flush_rewrite_rules( false );
86 }
87
88 /**
89 * Plugin deactivation hook.
90 *
91 * @return void
92 */
93 public function deactivate() {
94 $timestamp = wp_next_scheduled( FlyWP\Api\UpdatesData::CRON_HOOK );
95 if ( $timestamp ) {
96 wp_unschedule_event( $timestamp, FlyWP\Api\UpdatesData::CRON_HOOK );
97 }
98 }
99
100 /**
101 * Initialize plugin.
102 *
103 * @return void
104 */
105 public function init_plugin() {
106 if ( ! $this->has_key() ) {
107 $this->add_action( 'admin_notices', 'admin_notice' );
108
109 return;
110 }
111
112 if ( is_admin() ) {
113 $this->admin = new FlyWP\Admin();
114 } else {
115 $this->frontend = new FlyWP\Frontend();
116 }
117
118 $this->router = new FlyWP\Router();
119 $this->rest = new FlyWP\Api();
120 $this->fastcgi = new FlyWP\Fastcgi_Cache();
121 $this->opcache = new FlyWP\Opcache();
122 $this->flyapi = new FlyWP\FlyApi();
123 $this->email = new FlyWP\Email();
124 $this->optimize = new FlyWP\Optimizations();
125 $this->litespeed = new FlyWP\Litespeed();
126 $this->updates_data = new FlyWP\Api\UpdatesData();
127 }
128
129 /**
130 * Show admin notice if API key is not set.
131 *
132 * @return void
133 */
134 public function admin_notice() {
135 $message = __( 'Missing FlyWP API key, plugin requires an API key.', 'flywp' );
136
137 echo '<div class="notice notice-error"><p>' . esc_html( $message ) . '</p></div>';
138 }
139
140 /**
141 * Check if API key is set.
142 *
143 * @return bool
144 */
145 public function has_key() {
146 return FLYWP_API_KEY !== '';
147 }
148
149 /**
150 * Get API key.
151 *
152 * @return string
153 */
154 public function get_key() {
155 return FLYWP_API_KEY;
156 }
157 }
158
159 /**
160 * Returns the main instance of FlyWP to prevent the need to use globals.
161 *
162 * @return FlyWP_Plugin
163 */
164 function flywp() {
165 return FlyWP_Plugin::instance();
166 }
167
168 // take off
169 flywp();
170