PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.5.4
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.5.4
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
nitropack-sdk 5 years ago view 5 years ago advanced-cache.php 5 years ago cf-helper.php 5 years ago constants.php 5 years ago diagnostics.php 5 years ago functions.php 5 years ago integrations.php 5 years ago main.php 5 years ago readme.txt 5 years ago uninstall.php 6 years ago wp-cli.php 5 years ago
main.php
146 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.4
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_is_ezoic_active() ) {
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_ezoic_home_url' );
27 nitropack_handle_request("plugin-ezoic");
28 remove_filter( 'home_url', 'nitropack_ezoic_home_url' );
29 }, 1 );
30 } else {
31 add_action( 'plugins_loaded', 'nitropack_disable_ezoic', 1);
32 }
33 } else {
34 nitropack_handle_request("plugin");
35 }
36
37 add_action( 'pre_post_update', 'nitropack_log_post_pre_update', 10, 3);
38 add_action( 'transition_post_status', 'nitropack_handle_post_transition', 10, 3);
39 add_action( 'transition_comment_status', 'nitropack_handle_comment_transition', 10, 3);
40 add_action( 'comment_post', 'nitropack_handle_comment_post', 10, 2);
41 add_action( 'switch_theme', 'nitropack_switch_theme' );
42 add_action( 'shutdown', 'nitropack_execute_purges', -1000 );
43 add_action( 'shutdown', 'nitropack_execute_invalidations', -1000 );
44 add_action( 'shutdown', 'nitropack_execute_warmups', -1000 );
45
46 add_action( 'woocommerce_updated_product_stock', 'nitropack_handle_product_stock_updates', 0, 1);
47 add_action( 'woocommerce_updated_product_price', 'nitropack_handle_product_price_updates', 0, 1);
48 add_action( 'woocommerce_rest_insert_product', function($post, $request, $creating) {
49 if (!$creating) {
50 nitropack_clean_post_cache($post);
51 }
52 }, 10, 3);
53 add_action( 'woocommerce_rest_insert_product_object', function($product, $request, $creating) {
54 if (!$creating) {
55 $post = get_post($product->id);
56 nitropack_clean_post_cache($post);
57 }
58 }, 10, 3);
59
60 add_action('wcml_set_client_currency', function($currency) {
61 setcookie('np_wc_currency', $currency, time() + (86400 * 7), "/");
62 });
63
64 if (nitropack_has_advanced_cache()) {
65 // Handle automated updates
66 if (!defined("NITROPACK_ADVANCED_CACHE_VERSION") || NITROPACK_VERSION != NITROPACK_ADVANCED_CACHE_VERSION) {
67 add_action( 'plugins_loaded', 'nitropack_install_advanced_cache' );
68 }
69 }
70
71 add_action('wp_footer', 'nitropack_print_heartbeat_script');
72 add_action('admin_footer', 'nitropack_print_heartbeat_script');
73 add_action('get_footer', 'nitropack_print_heartbeat_script');
74
75 if ( is_admin() ) {
76 add_action( 'admin_menu', 'nitropack_menu' );
77 add_action( 'admin_init', 'register_nitropack_settings' );
78 add_action( 'admin_notices', 'nitropack_admin_notices' );
79 add_action( 'network_admin_notices', 'nitropack_admin_notices' );
80 add_action( 'wp_ajax_nitropack_purge_cache', 'nitropack_purge_cache' );
81 add_action( 'wp_ajax_nitropack_invalidate_cache', 'nitropack_invalidate_cache' );
82 add_action( 'wp_ajax_nitropack_verify_connect', 'nitropack_verify_connect_ajax' );
83 add_action( 'wp_ajax_nitropack_disconnect', 'nitropack_disconnect' );
84 add_action( 'wp_ajax_nitropack_test_compression_ajax', 'nitropack_test_compression_ajax' );
85 add_action( 'wp_ajax_nitropack_set_compression_ajax', 'nitropack_set_compression_ajax' );
86 add_action( 'wp_ajax_nitropack_set_auto_cache_purge_ajax', 'nitropack_set_auto_cache_purge_ajax' );
87 add_action( 'wp_ajax_nitropack_set_cacheable_post_types', 'nitropack_set_cacheable_post_types' );
88 add_action( 'wp_ajax_nitropack_enable_warmup', 'nitropack_enable_warmup' );
89 add_action( 'wp_ajax_nitropack_disable_warmup', 'nitropack_disable_warmup' );
90 add_action( 'wp_ajax_nitropack_warmup_stats', 'nitropack_warmup_stats' );
91 add_action( 'wp_ajax_nitropack_estimate_warmup', 'nitropack_estimate_warmup' );
92 add_action( 'wp_ajax_nitropack_run_warmup', 'nitropack_run_warmup' );
93 add_action( 'wp_ajax_nitropack_purge_single_cache', 'nitropack_purge_single_cache' );
94 add_action( 'wp_ajax_nitropack_invalidate_single_cache', 'nitropack_invalidate_single_cache' );
95 add_action( 'wp_ajax_nitropack_dismiss_hosting_notice', 'nitropack_dismiss_hosting_notice' );
96 add_action( 'wp_ajax_nitropack_reconfigure_webhooks', 'nitropack_reconfigure_webhooks' );
97 add_action( 'wp_ajax_nitropack_generate_report', 'nitropack_generate_report' );//diag_ajax_hook
98 add_action( 'wp_ajax_nitropack_enable_safemode', 'nitropack_enable_safemode' );
99 add_action( 'wp_ajax_nitropack_disable_safemode', 'nitropack_disable_safemode' );
100 add_action( 'wp_ajax_nitropack_safemode_status', 'nitropack_safemode_status' );
101 add_action( 'update_option_nitropack-enableCompression', 'nitropack_handle_compression_toggle', 10, 2 );
102 add_action( 'add_meta_boxes', 'nitropack_add_meta_box' );
103
104 register_activation_hook( __FILE__, 'nitropack_activate' );
105 register_deactivation_hook( __FILE__, 'nitropack_deactivate' );
106 } else {
107 if (null !== $nitro = get_nitropack_sdk()) {
108 $GLOBALS["NitroPack.instance"] = $nitro;
109 if (get_option('nitropack-enableCompression') == 1) {
110 $nitro->enableCompression();
111 }
112 add_action( 'wp', 'nitropack_init' );
113 }
114 }
115
116 function nitropack_menu() {
117 add_options_page( 'NitroPack Options', 'NitroPack', 'manage_options', 'nitropack', 'nitropack_options' );
118 add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), 'nitropack_action_links' );
119 }
120
121 function nitropack_action_links ( $links ) {
122 $nitroLinks = array(
123 '<a href="' . admin_url( 'options-general.php?page=nitropack' ) . '">Settings</a>',
124 );
125 return array_merge( $nitroLinks, $links );
126 }
127
128 add_action( 'init', function() {
129 if (current_user_can( 'manage_options' )) {
130 // Enqueue font awesome
131 add_action( 'wp_enqueue_scripts', 'nitropack_enqueue_load_fa');
132 add_action( 'admin_enqueue_scripts', 'nitropack_enqueue_load_fa');
133
134 // Enqueue admin bar menu custom stylesheet
135 add_action( 'wp_enqueue_scripts', 'enqueue_nitropack_admin_bar_menu_stylesheet');
136 add_action( 'admin_enqueue_scripts', 'enqueue_nitropack_admin_bar_menu_stylesheet');
137
138 // Enqueue admin menu custom javascript
139 add_action( 'wp_enqueue_scripts', 'nitropack_admin_bar_script' );
140
141 // Add our admin menu bar entry
142 add_action('admin_bar_menu', 'nitropack_admin_bar_menu', 50);
143 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.
144 }
145 });
146