PluginProbe
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance / 4.5.4
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance v4.5.4
4.7.0 4.6.1 4.6.0 4.5.5 4.5.4 4.5.3 4.5.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.5 3.2.6 3.2.7 3.2.9 3.3.0 3.3.1 3.3.2 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.7.0 3.7.1 All 111 releases
wp-optimize / includes / class-wpo-activation.php

class-wpo-activation.php in WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance 4.5.4, at includes/class-wpo-activation.php

140 lines 3.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if (!defined('ABSPATH')) die('Access denied.');
3
4 if (!class_exists('WPO_Activation')) :
5
6 class WPO_Activation {
7
8 /**
9 * Actions to be performed upon plugin activation
10 *
11 * @return void
12 */
13 public static function actions(): void {
14 self::check_minimum_requirements();
15 self::check_user_capability();
16 self::handle_activation_type();
17
18 WP_Optimize()->get_options()->set_default_options();
19 WP_Optimize()->get_minify()->plugin_activate();
20 WP_Optimize()->get_gzip_compression()->restore();
21 WP_Optimize()->get_browser_cache()->restore();
22 WP_Optimize()->get_table_management()->create_plugin_tables();
23 WP_Optimize()->get_webp_instance()->plugin_activate();
24
25 self::init_batch_processing();
26 self::maybe_init_premium();
27 }
28
29 /**
30 * Check if minimum requirements are met, deactivate and die if not
31 *
32 * @return void
33 */
34 private static function check_minimum_requirements(): void {
35 if (!WP_Optimize()->is_minimum_requirement_met()) {
36 WP_Optimize()->add_notice_minimum_requirements_not_met();
37 WP_Optimize()->deactivate_plugin();
38 WP_Optimize()->die_minimum_requirement_not_met();
39 }
40 }
41
42 /**
43 * Check if the current user has permission to activate the plugin on multisite
44 *
45 * @return void
46 */
47 private static function check_user_capability(): void {
48 if (is_multisite() && !current_user_can('manage_network_options')) {
49 self::deactivate_and_die();
50 }
51 }
52
53 /**
54 * Check if this is a reactivation or a new activation and set up accordingly
55 *
56 * @return void
57 */
58 private static function handle_activation_type(): void {
59 if (!self::is_reactivated()) {
60 self::set_as_newly_activated();
61 WP_Optimize()->get_onboarding()->activate_onboarding_wizard();
62 }
63 }
64
65 /**
66 * When non network admin tries to activate plugin, deactivate it and die with a message
67 *
68 * @return void
69 */
70 private static function deactivate_and_die(): void {
71 deactivate_plugins(plugin_basename(WPO_PLUGIN_MAIN_PATH . 'wp-optimize.php'));
72 wp_die(esc_html__('Only Network Administrator can activate the WP-Optimize plugin.', 'wp-optimize') .
73 ' <a href="' . esc_url(admin_url('plugins.php')) . '">' . esc_html__('go back', 'wp-optimize') . '</a>');
74 }
75
76 /**
77 * Decides whether the plugin is newly installed and activated or already installed and reactivated
78 *
79 * @return bool
80 */
81 private static function is_reactivated(): bool {
82 return (bool) WP_Optimize()->get_options()->get_option('last-optimized');
83 }
84
85 /**
86 * Set plugin option `newly-activated` as `true`
87 *
88 * @return void
89 */
90 private static function set_as_newly_activated(): void {
91 WP_Optimize()->get_options()->update_option('newly-activated', true);
92 }
93
94 /**
95 * Make use of Task Manager library
96 *
97 * @return void
98 */
99 private static function init_batch_processing(): void {
100 if (!class_exists('Updraft_Tasks_Activation')) {
101 require_once(WPO_PLUGIN_MAIN_PATH . 'vendor/team-updraft/common-libs/src/updraft-tasks/class-updraft-tasks-activation.php');
102 }
103 Updraft_Tasks_Activation::init(WPO_PLUGIN_SLUG);
104 Updraft_Tasks_Activation::reinstall_if_needed();
105 }
106
107 /**
108 * Initialize premium plugin if the premium version is installed
109 *
110 * @return void
111 */
112 private static function maybe_init_premium(): void {
113 if (self::is_premium()) {
114 self::init_premium();
115 }
116 }
117
118 /**
119 * Decides whether activate plugin is premium version or not
120 *
121 * @return bool
122 */
123 private static function is_premium(): bool {
124 return file_exists(WPO_PLUGIN_MAIN_PATH . 'premium.php');
125 }
126
127 /**
128 * Run premium plugin activation actions
129 *
130 * @return void
131 */
132 private static function init_premium(): void {
133 if (!class_exists('WP_Optimize_Premium')) {
134 include_once(WPO_PLUGIN_MAIN_PATH . 'premium.php');
135 }
136 WP_Optimize_Premium()->plugin_activation_actions();
137 }
138 }
139 endif;
140