PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.5.17
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.5.17
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 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 4 years ago functions.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 5 years ago
main.php
175 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.17
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 */
12
13 defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
14 $np_basePath = dirname(__FILE__) . '/';
15 require_once $np_basePath . 'functions.php';
16 require_once $np_basePath . 'diagnostics.php';
17
18 if (nitropack_is_wp_cli()) {
19 require_once $np_basePath . 'wp-cli.php';
20 }
21
22 if ( \NitroPack\Integration\Plugin\Ezoic::isActive() ) {
23 if (!nitropack_is_optimizer_request()) {
24 // We need to serve the cached content after Ezoic's output buffering has started at plugins_loaded,0
25 add_action( 'plugins_loaded', function() {
26 add_filter( 'home_url', ['\NitroPack\Integration\Plugin\Ezoic', 'getHomeUrl'] );
27 nitropack_handle_request("plugin-ezoic");
28 remove_filter( 'home_url', ['\NitroPack\Integration\Plugin\Ezoic', 'getHomeUrl'] );
29 }, 1 );
30 } else {
31 add_action( 'plugins_loaded', ['\NitroPack\Integration\Plugin\Ezoic', 'disable'], 1);
32 }
33 } else {
34 nitropack_handle_request("plugin");
35 }
36
37 add_filter( 'nitro_script_output', function($script) {
38 // Make sure we don't accidentally print a non-amp compatible script to an amp page
39 if (nitropack_is_amp_page()) {
40 return "";
41 } else {
42 return $script;
43 }
44 });
45 add_action( 'pre_post_update', 'nitropack_log_post_pre_update', 10, 3);
46 add_action( 'transition_post_status', 'nitropack_handle_post_transition', 10, 3);
47 add_action( 'transition_comment_status', 'nitropack_handle_comment_transition', 10, 3);
48 add_action( 'comment_post', 'nitropack_handle_comment_post', 10, 2);
49 add_action( 'switch_theme', 'nitropack_theme_handler' );
50 register_shutdown_function('nitropack_execute_purges');
51 register_shutdown_function('nitropack_execute_invalidations');
52 register_shutdown_function('nitropack_execute_warmups');
53
54 add_action( 'woocommerce_product_object_updated_props', 'nitropack_handle_product_updates', 0, 2);
55 add_action( 'woocommerce_rest_insert_product', function($post, $request, $creating) {
56 if (!$creating) {
57 nitropack_clean_post_cache($post);
58 }
59 }, 10, 3);
60 add_action( 'woocommerce_rest_insert_product_object', function($product, $request, $creating) {
61 if (!$creating) {
62 $post = get_post($product->id);
63 nitropack_clean_post_cache($post);
64 }
65 }, 10, 3);
66
67 add_action('wcml_set_client_currency', function($currency) {
68 setcookie('np_wc_currency', $currency, time() + (86400 * 7), "/");
69 });
70
71 if (nitropack_has_advanced_cache()) {
72 // Handle automated updates
73 if (!defined("NITROPACK_ADVANCED_CACHE_VERSION") || NITROPACK_VERSION != NITROPACK_ADVANCED_CACHE_VERSION) {
74 add_action( 'plugins_loaded', 'nitropack_install_advanced_cache' );
75 }
76 }
77
78 add_action('wp_footer', 'nitropack_print_heartbeat_script');
79 add_action('admin_footer', 'nitropack_print_heartbeat_script');
80 add_action('get_footer', 'nitropack_print_heartbeat_script');
81
82 add_action('wp_footer', 'nitropack_print_cookie_handler_script');
83 add_action('admin_footer', 'nitropack_print_cookie_handler_script');
84 add_action('admin_footer', function() {
85 nitropack_setcookie("nitroCachedPage", 0, time() - 86400);
86 }); // Clear the nitroCachePage cookie
87 add_action('get_footer', 'nitropack_print_cookie_handler_script');
88
89 if ( is_admin() ) {
90 add_action( 'admin_menu', 'nitropack_menu' );
91 add_action( 'admin_init', 'register_nitropack_settings' );
92 add_action( 'admin_notices', 'nitropack_admin_notices' );
93 add_action( 'network_admin_notices', 'nitropack_admin_notices' );
94 add_action( 'wp_ajax_nitropack_purge_cache', 'nitropack_purge_cache' );
95 add_action( 'wp_ajax_nitropack_invalidate_cache', 'nitropack_invalidate_cache' );
96 add_action( 'wp_ajax_nitropack_clear_residual_cache', 'nitropack_clear_residual_cache' );
97 add_action( 'wp_ajax_nitropack_verify_connect', 'nitropack_verify_connect_ajax' );
98 add_action( 'wp_ajax_nitropack_disconnect', 'nitropack_disconnect' );
99 add_action( 'wp_ajax_nitropack_test_compression_ajax', 'nitropack_test_compression_ajax' );
100 add_action( 'wp_ajax_nitropack_set_compression_ajax', 'nitropack_set_compression_ajax' );
101 add_action( 'wp_ajax_nitropack_set_auto_cache_purge_ajax', 'nitropack_set_auto_cache_purge_ajax' );
102 add_action( 'wp_ajax_nitropack_set_cart_cache_ajax', 'nitropack_set_cart_cache_ajax' );
103 add_action( 'wp_ajax_nitropack_set_bb_cache_purge_sync_ajax', 'nitropack_set_bb_cache_purge_sync_ajax' );
104 add_action( 'wp_ajax_nitropack_set_cacheable_post_types', 'nitropack_set_cacheable_post_types' );
105 add_action( 'wp_ajax_nitropack_enable_warmup', 'nitropack_enable_warmup' );
106 add_action( 'wp_ajax_nitropack_disable_warmup', 'nitropack_disable_warmup' );
107 add_action( 'wp_ajax_nitropack_warmup_stats', 'nitropack_warmup_stats' );
108 add_action( 'wp_ajax_nitropack_estimate_warmup', 'nitropack_estimate_warmup' );
109 add_action( 'wp_ajax_nitropack_run_warmup', 'nitropack_run_warmup' );
110 add_action( 'wp_ajax_nitropack_purge_single_cache', 'nitropack_purge_single_cache' );
111 add_action( 'wp_ajax_nitropack_invalidate_single_cache', 'nitropack_invalidate_single_cache' );
112 add_action( 'wp_ajax_nitropack_dismiss_hosting_notice', 'nitropack_dismiss_hosting_notice' );
113 add_action( 'wp_ajax_nitropack_dismiss_woocommerce_notice', 'nitropack_dismiss_woocommerce_notice' );
114 add_action( 'wp_ajax_nitropack_reconfigure_webhooks', 'nitropack_reconfigure_webhooks' );
115 add_action( 'wp_ajax_nitropack_generate_report', 'nitropack_generate_report' );//diag_ajax_hook
116 add_action( 'wp_ajax_nitropack_enable_safemode', 'nitropack_enable_safemode' );
117 add_action( 'wp_ajax_nitropack_disable_safemode', 'nitropack_disable_safemode' );
118 add_action( 'wp_ajax_nitropack_safemode_status', 'nitropack_safemode_status' );
119 add_action( 'activated_plugin', 'nitropack_upgrade_handler' );
120 add_action( 'deactivated_plugin', 'nitropack_upgrade_handler' );
121 add_action( 'upgrader_process_complete', 'nitropack_upgrade_handler');
122 add_action( 'update_option_nitropack-enableCompression', 'nitropack_handle_compression_toggle', 10, 2 );
123 add_action( 'add_meta_boxes', 'nitropack_add_meta_box' );
124 add_action( 'plugins_loaded', 'nitropack_offer_safemode');
125
126 register_activation_hook( __FILE__, 'nitropack_activate' );
127 register_deactivation_hook( __FILE__, 'nitropack_deactivate' );
128 } else {
129 if (null !== $nitro = get_nitropack_sdk()) {
130 $GLOBALS["NitroPack.instance"] = $nitro;
131 if (get_option('nitropack-enableCompression') == 1) {
132 $nitro->enableCompression();
133 }
134 add_action( 'wp', 'nitropack_init' );
135 }
136 }
137
138 function nitropack_menu() {
139 add_options_page( 'NitroPack Options', 'NitroPack', 'manage_options', 'nitropack', 'nitropack_options' );
140 add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), 'nitropack_action_links' );
141 }
142
143 function nitropack_action_links ( $links ) {
144 $nitroLinks = array(
145 '<a href="' . admin_url( 'options-general.php?page=nitropack' ) . '">Settings</a>',
146 );
147 return array_merge( $nitroLinks, $links );
148 }
149
150 add_action( 'init', function() {
151 if (current_user_can( 'manage_options' )) {
152 // Enqueue font awesome
153 add_action( 'wp_enqueue_scripts', 'nitropack_enqueue_load_fa');
154 add_action( 'admin_enqueue_scripts', 'nitropack_enqueue_load_fa');
155
156 // Enqueue admin bar menu custom stylesheet
157 add_action( 'wp_enqueue_scripts', 'enqueue_nitropack_admin_bar_menu_stylesheet');
158 add_action( 'admin_enqueue_scripts', 'enqueue_nitropack_admin_bar_menu_stylesheet');
159
160 // Enqueue admin menu custom javascript
161 add_action( 'wp_enqueue_scripts', 'nitropack_admin_bar_script' );
162
163 // Add our admin menu bar entry
164 add_action('admin_bar_menu', 'nitropack_admin_bar_menu', 50);
165 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.
166 add_action('updated_option', 'nitropack_updated_option', PHP_INT_MIN, 3);
167
168 \NitroPack\PluginStateHandler::init();
169
170 add_action( 'admin_enqueue_scripts', function() {
171 wp_enqueue_script('nitropack_notices_js', plugin_dir_url(__FILE__) . 'view/javascript/np_notices.js?np_v=' . NITROPACK_VERSION);
172 });
173 }
174 });
175