PluginProbe
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF / 2.1
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF v2.1
2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.9 2.2.8 trunk 1.10 1.3.3 1.3.4 1.3.5 1.3.5.1 1.3.5.2 1.3.6 1.3.6.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.5 All 103 releases
imagify / classes / Plugin.php

Plugin.php in Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF 2.1, at classes/Plugin.php

173 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 declare(strict_types=1);
3
4 namespace Imagify;
5
6 use Imagify\Bulk\Bulk;
7 use Imagify\CLI\BulkOptimizeCommand;
8 use Imagify\CLI\GenerateMissingWebpCommand;
9 use Imagify\Notices\Notices;
10
11 /**
12 * Main plugin class.
13 */
14 class Plugin {
15 /**
16 * Absolute path to the plugin (with trailing slash).
17 *
18 * @var string
19 */
20 private $plugin_path;
21
22 /**
23 * Instantiate the class.
24 *
25 * @since 1.9
26 *
27 * @param array $plugin_args {
28 * An array of arguments.
29 *
30 * @type string $plugin_path Absolute path to the plugin (with trailing slash).
31 * }
32 */
33 public function __construct( $plugin_args ) {
34 $this->plugin_path = $plugin_args['plugin_path'];
35 }
36
37 /**
38 * Plugin init.
39 *
40 * @since 1.9
41 */
42 public function init() {
43 $this->include_files();
44
45 class_alias( '\\Imagify\\Traits\\InstanceGetterTrait', '\\Imagify\\Traits\\FakeSingletonTrait' );
46
47 \Imagify_Auto_Optimization::get_instance()->init();
48 \Imagify_Options::get_instance()->init();
49 \Imagify_Data::get_instance()->init();
50 \Imagify_Folders_DB::get_instance()->init();
51 \Imagify_Files_DB::get_instance()->init();
52 \Imagify_Cron_Library_Size::get_instance()->init();
53 \Imagify_Cron_Rating::get_instance()->init();
54 \Imagify_Cron_Sync_Files::get_instance()->init();
55 \Imagify\Auth\Basic::get_instance()->init();
56 \Imagify\Job\MediaOptimization::get_instance()->init();
57 \Imagify\Stats\OptimizedMediaWithoutWebp::get_instance()->init();
58 Bulk::get_instance()->init();
59
60 if ( is_admin() ) {
61 Notices::get_instance()->init();
62 \Imagify_Admin_Ajax_Post::get_instance()->init();
63 \Imagify_Settings::get_instance()->init();
64 \Imagify_Views::get_instance()->init();
65 \Imagify\Imagifybeat\Core::get_instance()->init();
66 \Imagify\Imagifybeat\Actions::get_instance()->init();
67 }
68
69 if ( ! wp_doing_ajax() ) {
70 \Imagify_Assets::get_instance()->init();
71 }
72
73 \Imagify\Webp\Display::get_instance()->init();
74
75 add_action( 'init', [ $this, 'maybe_activate' ] );
76
77 // Load plugin translations.
78 imagify_load_translations();
79
80 imagify_add_command( new BulkOptimizeCommand() );
81 imagify_add_command( new GenerateMissingWebpCommand() );
82
83 /**
84 * Fires when Imagify is fully loaded.
85 *
86 * @since 1.0
87 * @since 1.9 Added the class instance as parameter.
88 *
89 * @param \Imagify_Plugin $plugin Instance of this class.
90 */
91 do_action( 'imagify_loaded', $this );
92 }
93
94 /**
95 * Include plugin files.
96 *
97 * @since 1.9
98 */
99 public function include_files() {
100 $instance_getter_path = $this->plugin_path . 'classes/Traits/InstanceGetterTrait.php';
101
102 if ( file_exists( $instance_getter_path . '.suspected' ) && ! file_exists( $instance_getter_path ) ) {
103 // Trolling greedy antiviruses.
104 require_once $instance_getter_path . '.suspected';
105 }
106
107 $inc_path = $this->plugin_path . 'inc/';
108
109 require_once $inc_path . '/Dependencies/ActionScheduler/action-scheduler.php';
110 require_once $inc_path . 'deprecated/deprecated.php';
111 require_once $inc_path . 'deprecated/3rd-party.php';
112 require_once $inc_path . 'functions/common.php';
113 require_once $inc_path . 'functions/options.php';
114 require_once $inc_path . 'functions/formatting.php';
115 require_once $inc_path . 'functions/admin.php';
116 require_once $inc_path . 'functions/api.php';
117 require_once $inc_path . 'functions/media.php';
118 require_once $inc_path . 'functions/attachments.php';
119 require_once $inc_path . 'functions/process.php';
120 require_once $inc_path . 'functions/admin-ui.php';
121 require_once $inc_path . 'functions/admin-stats.php';
122 require_once $inc_path . 'functions/i18n.php';
123 require_once $inc_path . 'functions/partners.php';
124 require_once $inc_path . 'common/attachments.php';
125 require_once $inc_path . 'common/admin-bar.php';
126 require_once $inc_path . 'common/partners.php';
127 require_once $inc_path . '3rd-party/3rd-party.php';
128
129 if ( ! is_admin() ) {
130 return;
131 }
132
133 require_once $inc_path . 'admin/upgrader.php';
134 require_once $inc_path . 'admin/upload.php';
135 require_once $inc_path . 'admin/media.php';
136 require_once $inc_path . 'admin/meta-boxes.php';
137 require_once $inc_path . 'admin/custom-folders.php';
138 }
139
140 /**
141 * Trigger a hook on plugin activation after the plugin is loaded.
142 *
143 * @since 1.9
144 * @see imagify_set_activation()
145 */
146 public function maybe_activate() {
147 if ( imagify_is_active_for_network() ) {
148 $user_id = get_site_transient( 'imagify_activation' );
149 } else {
150 $user_id = get_transient( 'imagify_activation' );
151 }
152
153 if ( ! is_numeric( $user_id ) ) {
154 return;
155 }
156
157 if ( imagify_is_active_for_network() ) {
158 delete_site_transient( 'imagify_activation' );
159 } else {
160 delete_transient( 'imagify_activation' );
161 }
162
163 /**
164 * Imagify activation.
165 *
166 * @since 1.9
167 *
168 * @param int $user_id ID of the user activating the plugin.
169 */
170 do_action( 'imagify_activation', (int) $user_id );
171 }
172 }
173