=' ) ) $is_plugin_active = true; break; // autoptimize case 'autoptimize': if ( $module === 'caching' && function_exists( 'autoptimize' ) && defined( 'AUTOPTIMIZE_PLUGIN_VERSION' ) && version_compare( AUTOPTIMIZE_PLUGIN_VERSION, '2.4', '>=' ) ) $is_plugin_active = true; break; // breeze case 'breeze': if ( $module === 'caching' && class_exists( 'Breeze_PurgeCache' ) && class_exists( 'Breeze_Options_Reader' ) && function_exists( 'breeze_get_option' ) && function_exists( 'breeze_update_option' ) && defined( 'BREEZE_VERSION' ) && version_compare( BREEZE_VERSION, '1.1.0', '>=' ) ) $is_plugin_active = true; break; // contact form 7 case 'contactform7': if ( $module === 'captcha' && class_exists( 'WPCF7' ) && class_exists( 'WPCF7_RECAPTCHA' ) && defined( 'WPCF7_VERSION' ) && version_compare( WPCF7_VERSION, '5.1', '>=' ) ) $is_plugin_active = true; elseif ( $module === 'privacy-consent' && class_exists( 'WPCF7' ) && defined( 'WPCF7_VERSION' ) && version_compare( WPCF7_VERSION, '5.3', '>=' ) ) $is_plugin_active = true; break; // divi case 'divi': if ( $module === 'theme' && function_exists( 'is_et_pb_preview' ) && defined( 'ET_CORE_VERSION' ) ) $is_plugin_active = true; break; // easy digital downloads case 'easydigitaldownloads': if ( $module === 'privacy-consent' && class_exists( 'Easy_Digital_Downloads' ) && function_exists( 'EDD' ) && defined( 'EDD_VERSION' ) && version_compare( EDD_VERSION, '3.0.0', '>=' ) ) $is_plugin_active = true; break; // elementor case 'elementor': if ( $module === 'caching' && did_action( 'elementor/loaded' ) && defined( 'ELEMENTOR_VERSION' ) && version_compare( ELEMENTOR_VERSION, '1.3', '>=' ) ) $is_plugin_active = true; break; // formidable forms case 'formidableforms': if ( $module === 'privacy-consent' && class_exists( 'FrmAppHelper' ) && method_exists( 'FrmAppHelper', 'plugin_version' ) && version_compare( FrmAppHelper::plugin_version(), '2.0', '>=' ) ) $is_plugin_active = true; break; // hummingbird case 'hummingbird': if ( $module === 'caching' && class_exists( 'Hummingbird\\WP_Hummingbird' ) && defined( 'WPHB_VERSION' ) && version_compare( WPHB_VERSION, '2.1.0', '>=' ) ) $is_plugin_active = true; break; // litespeed case 'litespeed': if ( $module === 'caching' && class_exists( 'LiteSpeed\Core' ) && defined( 'LSCWP_CUR_V' ) && version_compare( LSCWP_CUR_V, '3.0', '>=' ) ) $is_plugin_active = true; break; // mailchimp case 'mailchimp': if ( $module === 'privacy-consent' && class_exists( 'MC4WP_Form_Manager' ) && defined( 'MC4WP_VERSION' ) && version_compare( MC4WP_VERSION, '4.0', '>=' ) ) $is_plugin_active = true; break; // speed optimizer case 'speedoptimizer': global $siteground_optimizer_loader; if ( $module === 'caching' && ! empty( $siteground_optimizer_loader ) && is_object( $siteground_optimizer_loader ) && is_a( $siteground_optimizer_loader, 'SiteGround_Optimizer\Loader\Loader' ) && defined( '\SiteGround_Optimizer\VERSION' ) && version_compare( \SiteGround_Optimizer\VERSION, '5.5', '>=' ) ) $is_plugin_active = true; break; // speedycache case 'speedycache': if ( $module === 'caching' && class_exists( 'SpeedyCache' ) && defined( 'SPEEDYCACHE_VERSION' ) && function_exists( 'speedycache_delete_cache' ) && version_compare( SPEEDYCACHE_VERSION, '1.0.0', '>=' ) ) $is_plugin_active = true; break; // woocommerce case 'woocommerce': if ( $module === 'privacy-consent' && class_exists( 'WooCommerce' ) && defined( 'WOOCOMMERCE_VERSION' ) && version_compare( WOOCOMMERCE_VERSION, '4.0.4', '>=' ) ) $is_plugin_active = true; break; // wp fastest cache case 'wpfastestcache': if ( $module === 'caching' && function_exists( 'wpfc_clear_all_cache' ) ) $is_plugin_active = true; break; // wpforms case 'wpforms': if ( $module === 'privacy-consent' && function_exists( 'wpforms' ) && defined( 'WPFORMS_VERSION' ) && version_compare( WPFORMS_VERSION, '1.6.0', '>=' ) ) $is_plugin_active = true; break; // wp-optimize case 'wpoptimize': if ( $module === 'caching' && function_exists( 'WP_Optimize' ) && defined( 'WPO_VERSION' ) && version_compare( WPO_VERSION, '3.0.12', '>=' ) ) $is_plugin_active = true; break; // wp rocket case 'wprocket': if ( $module === 'caching' && function_exists( 'rocket_init' ) && defined( 'WP_ROCKET_VERSION' ) && version_compare( WP_ROCKET_VERSION, '3.8', '>=' ) ) $is_plugin_active = true; break; // wp super cache case 'wpsupercache': if ( $module === 'caching' ) { $plugin_name = 'wp-super-cache/wp-cache.php'; $plugin_path = WP_PLUGIN_DIR . '/' . $plugin_name; if ( file_exists( $plugin_path ) && is_plugin_active( $plugin_name ) ) { $plugin = get_plugin_data( $plugin_path, false, false ); if ( version_compare( $plugin['Version'], '1.6.3', '>=' ) && function_exists( 'wp_cache_is_enabled' ) && function_exists( 'wp_cache_clean_cache' ) && function_exists( 'wpsc_add_cookie' ) && function_exists( 'wpsc_delete_cookie' ) ) $is_plugin_active = true; } } break; } return $is_plugin_active; } /** * Detect active analytics/tracking plugins for consent mode suggestions. * * @return array List of detected plugin categories: 'google', 'facebook', 'microsoft'. */ function cn_detect_active_plugins() { $checks = [ 'google' => [ 'google-analytics-for-wordpress/googleanalytics.php', 'google-site-kit/google-site-kit.php', 'wp-google-analytics/wp-google-analytics.php', 'gtm4wp/gtm4wp.php', ], 'facebook' => [ 'official-facebook-pixel/facebook-for-wordpress.php', 'pixel-caffeine/pixel-caffeine.php', ], 'microsoft' => [ 'clarity-analytics/clarity-analytics.php', ], ]; $detected = []; foreach ( $checks as $mode => $plugins ) { foreach ( $plugins as $plugin ) { if ( is_plugin_active( $plugin ) ) { $detected[] = $mode; break; } } } return array_values( array_unique( $detected ) ); }