unction get_plugin_dir() { if ( ! isset( self::$plugin_dir ) ) { self::$plugin_dir = wp_normalize_path( WP_PLUGIN_DIR ); } return self::$plugin_dir; } } atus, $comment) { if (!isset($comment->comment_post_ID) || empty($comment->comment_post_ID)) { return; // nothing to do } // in case the comment status changed, and either old or new status is "approved", we need to purge cache for the corresponding post if (($old_status != $new_status) && (($old_status === 'approved') || ($new_status === 'approved'))) { $this->purgeCacheByRelevantURLs($comment->comment_post_ID); return; } } public function purgeCacheOnNewComment($comment_id, $comment_status, $comment_data) { if ($comment_status != 1) { return; // if comment is not approved, stop } if (!is_array($comment_data)) { return; // nothing to do } if (!array_key_exists('comment_post_ID', $comment_data)) { return; // nothing to do } // all clear, we ne need to purge cache related to this post id $this->purgeCacheByRelevantURLs($comment_data['comment_post_ID']); } /** * Accepts a page rule key and value to check if it exists in the page rules * provided. * * @param mixed $pagerules * @param mixed $key * @param mixed $value * @return bool */ private function pageRuleContains($pagerules, $key, $value) { if (!is_array($pagerules)) { return false; } foreach ($pagerules as $pagerule) { foreach ($pagerule["actions"] as $action) { // always_use_https can only be toggled on for a URL but doesn't // have a value so we merely check the presence of the key // instead. if ($action["id"] == "always_use_https" && $key == "always_use_https") { return true; } if (!array_key_exists("value", $action)) { continue; } if ($action["id"] == $key && $action["value"] == $value) { return true; } } } return false; } private function zoneSettingAlwaysUseHTTPSEnabled($zoneTag) { $settings = $this->api->getZoneSetting($zoneTag, "always_use_https"); return !empty($settings["value"]) && $settings["value"] == "on"; } /** * pathHasCachableFileExtension takes a string of a URL and evaluates if it * has a file extension that Cloudflare caches by default. * * @param mixed $value * @return bool */ private function pathHasCachableFileExtension($value) { $parsed_url = parse_url($value, PHP_URL_PATH); foreach (self::CLOUDFLARE_CACHABLE_EXTENSIONS as $ext) { if (Utils::strEndsWith($parsed_url, "." . $ext)) { return true; } } return false; } /** * pathIsNotForFeeds accepts a string URL and checks if the path doesn't matches any * known feed paths such as "/feed", "/feed/", "/feed/rdf/", "/feed/rss/", * "/feed/atom/", "/author/foo/feed", "/comments/feed", "/shop/feed", * "/tag/.../feed/", etc. * * @param mixed $value * @return bool */ private function pathIsNotForFeeds($value) { $parsed_url = parse_url($value, PHP_URL_PATH); return (bool) !preg_match('/\/feed(?:\/(?:atom\/?|r(?:df|ss)\/?)?)?$/', $parsed_url); } /** * urlIsHTTPS determines if a scheme used for a URL is HTTPS. * * @param mixed $value * @return bool */ private function urlIsHTTPS($value) { $parsed_scheme = parse_url($value, PHP_URL_SCHEME); if ($parsed_scheme == "https") { return true; } return false; } }
Fatal error: Uncaught Error: Class 'CF\WordPress\Hooks' not found in /home/ocb/public_html/wp-content/plugins/cloudflare/cloudflare.loader.php:36 Stack trace: #0 /home/ocb/public_html/wp-content/plugins/cloudflare/cloudflare.php(49): require_once() #1 /home/ocb/public_html/wp-settings.php(526): include_once('/home/ocb/publi...') #2 /home/ocb/public_html/wp-config.php(77): require_once('/home/ocb/publi...') #3 /home/ocb/public_html/wp-load.php(50): require_once('/home/ocb/publi...') #4 /home/ocb/public_html/wp-blog-header.php(13): require_once('/home/ocb/publi...') #5 /home/ocb/public_html/index.php(17): require('/home/ocb/publi...') #6 {main} thrown in /home/ocb/public_html/wp-content/plugins/cloudflare/cloudflare.loader.php on line 36