PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.17.9
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.17.9
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 / classes / Integration / Plugin / Cloudflare.php
nitropack / classes / Integration / Plugin Last commit date
ACF.php 1 year ago AdvancedMathCaptcha.php 3 years ago AeliaCurrencySwitcher.php 3 years ago BeaverBuilder.php 4 years ago CF_Helper.php 3 years ago CURCY_MultiCurrency.php 1 year ago Cloudflare.php 2 years ago CommonHelpers.php 3 years ago CookieNotice.php 4 years ago DownloadManager.php 4 years ago Elementor.php 3 years ago Ezoic.php 4 years ago FusionBuilder.php 4 years ago GeoTargetingWP.php 1 year ago GravityForms.php 2 years ago JetPackNP.php 3 years ago NginxHelper.php 2 years ago RC.php 3 years ago RankMathNP.php 3 years ago ShortPixel.php 4 years ago SquirrlySEO.php 3 years ago TheEventsCalendar.php 3 years ago ThriveTheme.php 4 years ago WCML.php 1 year ago WPBakeryNP.php 3 years ago WPCacheHelper.php 3 years ago WPForms.php 3 years ago WPML.php 1 year ago WPRocket.php 4 years ago WooCommerce.php 1 year ago WoocommerceCacheHandler.php 4 years ago YoastSEO.php 3 years ago
Cloudflare.php
79 lines
1 <?php
2
3 namespace NitroPack\Integration\Plugin;
4
5 class Cloudflare {
6 const STAGE = "very_early";
7 private $siteConfig = NULL;
8
9 public static function isApoActive() {
10 if (self::canUseCloudflareHelper()) {
11 $cfHelper = new CF_Helper();
12 return $cfHelper->isApoEnabled();
13 } else {
14 return false;
15 }
16 }
17
18 public static function isApoCacheByDeviceTypeEnabled() {
19 if (self::canUseCloudflareHelper()) {
20 $cfHelper = new CF_Helper();
21 return $cfHelper->isApoCacheByDeviceTypeEnabled();
22 } else {
23 return false;
24 }
25 }
26
27 public function init($stage) {
28 switch ($stage) {
29 case "very_early":
30 $this->siteConfig = get_nitropack()->getSiteConfig();
31 if ($this->siteConfig && !empty($this->siteConfig["isApoActive"])) {
32 add_filter( 'cloudflare_use_cache', function ($useCache){
33 return false;
34 });
35 add_action('nitropack_early_cache_headers', [$this, 'preventApoCache'], PHP_INT_MAX);
36 add_action( 'nitropack_cacheable_cache_headers', [$this, 'allowApoCache'], PHP_INT_MAX );
37 add_action( 'nitropack_cachehit_cache_headers', [$this, 'allowApoCache'], PHP_INT_MAX );
38 \NitroPack\ModuleHandler::initSemAcquire();
39 }
40 return true;
41 case "late":
42 if ($this->siteConfig && !empty($this->siteConfig["isApoActive"])) {
43 \NitroPack\ModuleHandler::initSemRelease();
44 add_action('nitropack_execute_purge_url', [$this, 'purgeUrl']);
45 add_action('nitropack_execute_purge_all', [$this, 'purgeAll']);
46 }
47 default:
48 return false;
49 }
50 }
51
52 public function purgeUrl($url) {
53 if (self::canUseCloudflareHelper()) {
54 $cfHelper = new CF_Helper();
55 $cfHelper->purgeUrl($url);
56 }
57 }
58
59 public function purgeAll() {
60 if (self::canUseCloudflareHelper()) {
61 $cfHelper = new CF_Helper();
62 $cfHelper->purgeCacheEverything();
63 }
64 }
65
66 public function allowApoCache() {
67 nitropack_header("cf-edge-cache: cache,platform=wordpress");
68 }
69
70 public function preventApoCache() {
71 nitropack_header("cf-edge-cache: no-cache");
72 }
73
74 private static function canUseCloudflareHelper()
75 {
76 return defined('CLOUDFLARE_PLUGIN_DIR') && class_exists('\CF\WordPress\Hooks');
77 }
78 }
79