PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.5.19
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.5.19
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / main.php
nitropack Last commit date
classes 3 years ago languages 3 years ago nitropack-sdk 3 years ago view 3 years ago advanced-cache.php 3 years ago batcache-compat.php 4 years ago cf-helper.php 5 years ago constants.php 3 years ago diagnostics.php 3 years ago functions.php 3 years ago helpers.php 3 years ago integrations.php 4 years ago main.php 3 years ago readme.txt 3 years ago uninstall.php 4 years ago wp-cli.php 3 years ago
main.php
208 lines
1 <?php
2 /*
3 Plugin Name: NitroPack
4 Plugin URI: https://nitropack.io/platform/wordpress
5 Description: Everything you need for a fast website. Simple set up, easy to use, awesome support. Caching, Lazy Loading, Minification, Defer CSS/JS, CDN and more!
6 Version: 1.5.19
7 Author: NitroPack LLC
8 Author URI: https://nitropack.io/
9 License: GPL2
10 License URI: https://www.gnu.org/licenses/gpl-2.0.html
11 Text Domain: nitropack
12 Domain Path: /languages
13 */
14
15 defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
16
17 $np_basePath = dirname(__FILE__) . '/';
18 require_once $np_basePath . 'functions.php';
19 require_once $np_basePath . 'helpers.php';
20 require_once $np_basePath . 'diagnostics.php';
21
22 if (nitropack_is_wp_cli()) {
23 require_once $np_basePath . 'wp-cli.php';
24 }
25
26 if ( \NitroPack\Integration\Plugin\Ezoic::isActive() ) {
27 if (!nitropack_is_optimizer_request()) {
28 // We need to serve the cached content after Ezoic's output buffering has started at plugins_loaded,0
29 add_action( 'plugins_loaded', function() {
30 add_filter( 'home_url', ['\NitroPack\Integration\Plugin\Ezoic', 'getHomeUrl'] );
31 nitropack_handle_request("plugin-ezoic");
32 remove_filter( 'home_url', ['\NitroPack\Integration\Plugin\Ezoic', 'getHomeUrl'] );
33 }, 1 );
34 } else {
35 add_action( 'plugins_loaded', ['\NitroPack\Integration\Plugin\Ezoic', 'disable'], 1);
36 }
37 } else {
38 nitropack_handle_request("plugin");
39 }
40
41 add_filter( 'nitro_script_output', function($script) {
42 // Make sure we don't accidentally print a non-amp compatible script to an amp page
43 if (nitropack_is_amp_page()) {
44 return "";
45 } else {
46 return $script;
47 }
48 });
49 add_action( 'pre_post_update', 'nitropack_log_post_pre_update', 10, 3);
50 add_action( 'transition_post_status', 'nitropack_handle_post_transition', 10, 3);
51 add_action( 'transition_comment_status', 'nitropack_handle_comment_transition', 10, 3);
52 add_action( 'comment_post', 'nitropack_handle_comment_post', 10, 2);
53 add_action( 'switch_theme', 'nitropack_theme_handler' );
54 register_shutdown_function('nitropack_execute_purges');
55 register_shutdown_function('nitropack_execute_invalidations');
56 register_shutdown_function('nitropack_execute_warmups');
57
58 add_action( 'woocommerce_product_object_updated_props', 'nitropack_handle_product_updates', 0, 2);
59 add_action( 'woocommerce_rest_insert_product', function($post, $request, $creating) {
60 if (!$creating) {
61 nitropack_clean_post_cache($post);
62 }
63 }, 10, 3);
64 add_action( 'woocommerce_rest_insert_product_object', function($product, $request, $creating) {
65 if (!$creating) {
66 $post = get_post($product->id);
67 nitropack_clean_post_cache($post);
68 }
69 }, 10, 3);
70
71 add_action('wcml_set_client_currency', function($currency) {
72 setcookie('np_wc_currency', $currency, time() + (86400 * 7), "/");
73 });
74
75 if (nitropack_has_advanced_cache()) {
76 // Handle automated updates
77 if (!defined("NITROPACK_ADVANCED_CACHE_VERSION") || NITROPACK_VERSION != NITROPACK_ADVANCED_CACHE_VERSION) {
78 add_action( 'plugins_loaded', 'nitropack_install_advanced_cache' );
79 }
80 }
81
82 add_action('wp_footer', 'nitropack_print_heartbeat_script');
83 add_action('admin_footer', 'nitropack_print_heartbeat_script');
84 add_action('get_footer', 'nitropack_print_heartbeat_script');
85
86 add_action('wp_footer', 'nitropack_print_cookie_handler_script');
87 add_action('admin_footer', 'nitropack_print_cookie_handler_script');
88 add_action('admin_footer', function() {
89 nitropack_setcookie("nitroCachedPage", 0, time() - 86400);
90 }); // Clear the nitroCachePage cookie
91 add_action('get_footer', 'nitropack_print_cookie_handler_script');
92
93 if ( is_admin() ) {
94 add_action( 'admin_menu', 'nitropack_menu' );
95 add_action( 'admin_init', 'register_nitropack_settings' );
96 add_action( 'admin_notices', 'nitropack_admin_notices' );
97 add_action( 'network_admin_notices', 'nitropack_admin_notices' );
98 add_action( 'wp_ajax_nitropack_purge_cache', 'nitropack_purge_cache' );
99 add_action( 'wp_ajax_nitropack_invalidate_cache', 'nitropack_invalidate_cache' );
100 add_action( 'wp_ajax_nitropack_clear_residual_cache', 'nitropack_clear_residual_cache' );
101 add_action( 'wp_ajax_nitropack_verify_connect', 'nitropack_verify_connect_ajax' );
102 add_action( 'wp_ajax_nitropack_disconnect', 'nitropack_disconnect' );
103 add_action( 'wp_ajax_nitropack_test_compression_ajax', 'nitropack_test_compression_ajax' );
104 add_action( 'wp_ajax_nitropack_set_compression_ajax', 'nitropack_set_compression_ajax' );
105 add_action( 'wp_ajax_nitropack_set_auto_cache_purge_ajax', 'nitropack_set_auto_cache_purge_ajax' );
106 add_action( 'wp_ajax_nitropack_set_cart_cache_ajax', 'nitropack_set_cart_cache_ajax' );
107 add_action( 'wp_ajax_nitropack_set_bb_cache_purge_sync_ajax', 'nitropack_set_bb_cache_purge_sync_ajax' );
108 add_action( 'wp_ajax_nitropack_set_cacheable_post_types', 'nitropack_set_cacheable_post_types' );
109 add_action( 'wp_ajax_nitropack_enable_warmup', 'nitropack_enable_warmup' );
110 add_action( 'wp_ajax_nitropack_disable_warmup', 'nitropack_disable_warmup' );
111 add_action( 'wp_ajax_nitropack_warmup_stats', 'nitropack_warmup_stats' );
112 add_action( 'wp_ajax_nitropack_estimate_warmup', 'nitropack_estimate_warmup' );
113 add_action( 'wp_ajax_nitropack_run_warmup', 'nitropack_run_warmup' );
114 add_action( 'wp_ajax_nitropack_purge_single_cache', 'nitropack_purge_single_cache' );
115 add_action( 'wp_ajax_nitropack_invalidate_single_cache', 'nitropack_invalidate_single_cache' );
116 add_action( 'wp_ajax_nitropack_dismiss_hosting_notice', 'nitropack_dismiss_hosting_notice' );
117 add_action( 'wp_ajax_nitropack_dismiss_woocommerce_notice', 'nitropack_dismiss_woocommerce_notice' );
118 add_action( 'wp_ajax_nitropack_reconfigure_webhooks', 'nitropack_reconfigure_webhooks' );
119 add_action( 'wp_ajax_nitropack_generate_report', 'nitropack_generate_report' );//diag_ajax_hook
120 add_action( 'wp_ajax_nitropack_enable_safemode', 'nitropack_enable_safemode' );
121 add_action( 'wp_ajax_nitropack_disable_safemode', 'nitropack_disable_safemode' );
122 add_action( 'wp_ajax_nitropack_safemode_status', 'nitropack_safemode_status' );
123 add_action( 'activated_plugin', 'nitropack_upgrade_handler' );
124 add_action( 'deactivated_plugin', 'nitropack_upgrade_handler' );
125 add_action( 'upgrader_process_complete', 'nitropack_upgrade_handler');
126 add_action( 'update_option_nitropack-enableCompression', 'nitropack_handle_compression_toggle', 10, 2 );
127 add_action( 'add_meta_boxes', 'nitropack_add_meta_box' );
128 add_action( 'plugins_loaded', 'nitropack_offer_safemode');
129
130 register_activation_hook( __FILE__, 'nitropack_activate' );
131 register_deactivation_hook( __FILE__, 'nitropack_deactivate' );
132 } else {
133 if (null !== $nitro = get_nitropack_sdk()) {
134 $GLOBALS["NitroPack.instance"] = $nitro;
135 if (get_option('nitropack-enableCompression') == 1) {
136 $nitro->enableCompression();
137 }
138 add_action( 'wp', 'nitropack_init' );
139 }
140 }
141
142 function nitropack_menu() {
143 add_options_page( 'NitroPack Options', 'NitroPack', 'manage_options', 'nitropack', 'nitropack_options' );
144 add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), 'nitropack_action_links' );
145 }
146
147 function nitropack_action_links ( $links ) {
148 $nitroLinks = array(
149 '<a href="' . admin_url( 'options-general.php?page=nitropack' ) . '">Settings</a>',
150 );
151 return array_merge( $nitroLinks, $links );
152 }
153
154 add_action( 'init', function() {
155 if (current_user_can( 'manage_options' )) {
156
157 // Enqueue font awesome
158 add_action( 'wp_enqueue_scripts', 'nitropack_enqueue_load_fa');
159 add_action( 'admin_enqueue_scripts', 'nitropack_enqueue_load_fa');
160
161 // Enqueue admin bar menu custom stylesheet
162 add_action( 'wp_enqueue_scripts', 'enqueue_nitropack_admin_bar_menu_stylesheet');
163 add_action( 'admin_enqueue_scripts', 'enqueue_nitropack_admin_bar_menu_stylesheet');
164
165 // Enqueue admin menu custom javascript
166 add_action( 'wp_enqueue_scripts', 'nitropack_admin_bar_script' );
167
168 // Add our admin menu bar entry
169 add_action('admin_bar_menu', 'nitropack_admin_bar_menu', 50);
170 add_action('plugins_loaded', 'nitropack_plugin_notices'); // Run the checks early, because we need to set some headers. The results from the checks will be cached, so future calls will work as expected.
171
172 add_action( 'updated_option', 'nitropack_updated_option', ~PHP_INT_MAX, 3 );
173
174 \NitroPack\PluginStateHandler::init();
175
176 add_action( 'admin_enqueue_scripts', function() {
177 wp_enqueue_script('nitropack_notices_js', plugin_dir_url(__FILE__) . 'view/javascript/np_notices.js?np_v=' . NITROPACK_VERSION);
178 });
179
180 add_action('in_admin_header', function() {
181 $screen = get_current_screen();
182 if ($screen->id === 'settings_page_nitropack') {
183 remove_all_actions( 'user_admin_notices' );
184 remove_all_actions( 'admin_notices' );
185 remove_all_actions( 'all_admin_notices' );
186 }
187 }, 99);
188 }
189 });
190
191 /**
192 * Load text domain for translations
193 *
194 * @return void
195 */
196 function nitropack_load_textdomain() {
197 global $l10n;
198
199 $domain = 'nitropack';
200
201 if ( isset( $l10n[ $domain ] ) ) {
202 return;
203 }
204
205 load_plugin_textdomain( $domain, false, basename( dirname( __FILE__ ) ) . '/languages/' );
206 }
207
208 add_action( 'plugins_loaded','nitropack_load_textdomain' );