PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.19.3
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.19.3
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 4 months ago AdvancedMathCaptcha.php 1 year ago AeliaCurrencySwitcher.php 11 months ago BeaverBuilder.php 1 year ago CF_Helper.php 5 months ago CURCY_MultiCurrency.php 1 year ago Cloudflare.php 5 months ago CommonHelpers.php 1 year ago CookieNotice.php 1 year ago DownloadManager.php 1 year ago Elementor.php 5 months ago Ezoic.php 1 year ago FusionBuilder.php 1 year ago GeoTargetingWP.php 1 year ago GravityForms.php 4 months ago JetPackNP.php 1 year ago MPG.php 11 months ago NginxHelper.php 1 year ago RC.php 11 months ago RankMathNP.php 1 year ago ShortPixel.php 1 year ago SquirrlySEO.php 1 year ago TheEventsCalendar.php 1 year ago ThriveTheme.php 1 year ago WCML.php 1 year ago WPBakeryNP.php 1 year ago WPCacheHelper.php 1 year ago WPForms.php 1 year ago WPML.php 1 year ago WPRocket.php 1 year ago WooCommerce.php 11 months ago WoocommerceCacheHandler.php 1 year ago YoastSEO.php 1 year 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('\Cloudflare\APO\WordPress\Hooks');
77 }
78 }
79