=')) { return true; } return false; } /** * caching used * * @return bool true if active */ public static function cache(){ if ( ( defined( 'WP_CACHE' ) && WP_CACHE ) // general cache constant || defined('W3TC') // W3 Total Cache || function_exists( 'wp_super_cache_text_domain' ) // WP SUper Cache || defined( 'WP_ROCKET_SLUG' ) //WP Rocket || defined( 'WPFC_WP_CONTENT_DIR' ) //WP Fastest Cache || class_exists( 'HyperCache', false ) // Hyper Cache || defined( 'CE_CACHE_DIR' ) // Cache Enabler ){ return true; } return false; } /** * WordPress update available * * @return bool true if WordPress update available */ public static function wp_update_available(){ $update_data = wp_get_update_data(); $count = absint( $update_data['counts']['wordpress'] ); if( $count ){ return true; } return false; } /** * check if license keys are missing or invalid or expired * * @since 1.6.6 * @update 1.6.9 moved from Advanced_Ads_Plugin * @update 1.8.21 also check for expired licenses * @return true if there are missing licenses */ public static function licenses_invalid(){ $add_ons = apply_filters( 'advanced-ads-add-ons', array() ); if( $add_ons === array() ) { Advanced_Ads_Ad_Health_Notices::get_instance()->remove( 'license_invalid' ); return false; } foreach( $add_ons as $_add_on_key => $_add_on ){ $status = Advanced_Ads_Admin_Licenses::get_instance()->get_license_status( $_add_on['options_slug'] ); // check expiry date $expiry_date = Advanced_Ads_Admin_Licenses::get_instance()->get_license_expires( $_add_on['options_slug'] ); if( $expiry_date && 'lifetime' !== $expiry_date && strtotime( $expiry_date ) < time() ){ return true; } // don’t check if license is valid if( $status === 'valid' ) { continue; } // retrieve our license key from the DB $licenses = Advanced_Ads_Admin_Licenses::get_instance()->get_licenses(); $license_key = isset($licenses[$_add_on_key]) ? $licenses[$_add_on_key] : false; if( ! $license_key || $status !== 'valid' ){ return true; } } // remove notice, if one is given Advanced_Ads_Ad_Health_Notices::get_instance()->remove( 'license_invalid' ); return false; } /** * Autoptimize plugin installed * can change ad tags, especially inline css and scripts * * @link https://wordpress.org/plugins/autoptimize/ * @return bool true if Autoptimize is installed */ public static function active_autoptimize(){ if( defined( 'AUTOPTIMIZE_PLUGIN_VERSION' ) ){ return true; } return false; } /** * WP rocket plugin installed * * @return bool true if WP rocket is installed */ public static function active_wp_rocket(){ if( defined( 'WP_ROCKET_SLUG' ) ){ return true; } return false; } /** * checks the settings of wp rocket to find out if combining of javascript files is enabled * @return boolean true, when "Combine JavaScript files" is enabled */ public static function is_wp_rocket_combine_js_enabled(){ if (self::active_wp_rocket()){ $settings = get_option("wp_rocket_settings"); if ($settings){ if (isset($settings['minify_concatenate_js']) && $settings['minify_concatenate_js']) return true; } } return false; } /** * Any AMP plugin enabled * * @return bool true if AMP plugin is installed */ public static function active_amp_plugin(){ // Accelerated Mobile Pages if( function_exists( 'ampforwp_is_amp_endpoint' ) ){ return true; } // AMP plugin if( function_exists( 'is_amp_endpoint' ) ){ return true; } // other plugins if ( function_exists( 'is_wp_amp' ) ){ return true; } return false; } /** * checks if the preconditions are met to wrap an ad with comments * @return boolean */ public static function requires_noptimize_wrapping(){ return Advanced_Ads_Checks::active_autoptimize() || Advanced_Ads_Checks::is_wp_rocket_combine_js_enabled(); } /** * check for additional conflicting plugins * * @return arr $plugins names of conflicting plugins */ public static function conflicting_plugins(){ $conflicting_plugins = array(); if( defined( 'Publicize_Base' ) ){ // JetPack Publicize module $conflicting_plugins[] = 'Jetpack – Publicize'; } if( defined( 'PF__PLUGIN_DIR' ) ){ // Facebook Instant Articles & Google AMP Pages by PageFrog $conflicting_plugins[] = 'Facebook Instant Articles & Google AMP Pages by PageFrog'; } if( defined( 'GT_VERSION' ) ){ // GT ShortCodes $conflicting_plugins[] = 'GT ShortCodes'; } if( class_exists( 'ITSEC_Core', false ) && defined ( 'AAP_VERSION' ) ){ // iThemes Security, but only if Pro is enabled $conflicting_plugins[] = 'iThemes Security'; } if( class_exists( 'SimilarPosts', false ) ){ // Similar Posts, https://de.wordpress.org/plugins/similar-posts/ $conflicting_plugins[] = 'Similar Posts'; } return $conflicting_plugins; } /** * check if any of the global hide ads options is set * ignore RSS feed setting, because it is standard * * @since 1.7.10 * @return bool */ public static function ads_disabled(){ $options = Advanced_Ads::get_instance()->options(); if( isset( $options['disabled-ads'] ) && is_array( $options['disabled-ads'] ) ){ foreach( $options['disabled-ads'] as $_key => $_value ){ // don’t warn if "RSS Feed" and "404" option are enabled, because they are normally not critical if( !empty( $_value ) && !in_array($_key, array( 'feed', '404') ) ){ return true; } } } return false; } /** * check for required php extensions * * @since 1.8.21 * @return bool */ public static function php_extensions(){ $missing_extensions = array(); if( !extension_loaded('dom') ){ $missing_extensions[] = 'dom'; } if( !extension_loaded('xml') ){ $missing_extensions[] = 'xml'; } return $missing_extensions; } /** * Get the list of Advanced Ads constant defined by the user. * * @return array */ public static function get_defined_constants() { $constants = apply_filters( 'advanced-ads-constants', array( 'ADVADS_ADS_DISABLED', 'ADVADS_ALLOW_ADSENSE_ON_404', 'ADVADS_DISABLE_RESPONSIVE_IMAGES', 'ADVANCED_ADS_AD_DEBUG_FOR_ADMIN_ONLY', 'ADVANCED_ADS_DISABLE_ANALYTICS_ANONYMIZE_IP', 'ADVANCED_ADS_DISABLE_CHANGE', 'ADVANCED_ADS_DISABLE_CODE_HIGHLIGHTING', 'ADVANCED_ADS_DISABLE_FRONTEND_AD_WEIGHT_UPDATE', 'ADVANCED_ADS_DISABLE_SHORTCODE_BUTTON', 'ADVANCED_ADS_DISALLOW_PHP', 'ADVANCED_ADS_ENABLE_REVISIONS', 'ADVANCED_ADS_GEO_TEST_IP', 'ADVANCED_ADS_PRO_CUSTOM_POSITION_MOVE_INTO_HIDDEN', 'ADVANCED_ADS_PRO_PAGE_IMPR_EXDAYS', 'ADVANCED_ADS_PRO_REFERRER_EXDAYS', 'ADVANCED_ADS_RESPONSIVE_DISABLE_BROWSER_WIDTH', 'ADVANCED_ADS_SHOW_LICENSE_RESPONSE', 'ADVANCED_ADS_SUPPRESS_PLUGIN_ERROR_NOTICES', 'ADVANCED_ADS_TRACKING_DEBUG', 'ADVANCED_ADS_TRACKING_NO_HOURLY_LIMIT', ) ); $result = array(); foreach ( $constants as $constant ) { if ( defined( $constant ) ) { $result[] = $constant; } } return $result; } /** * WP Engine hosting detected * * @return bool true if site is hosted by WP Engine */ public static function wp_engine_hosting(){ if( defined( 'WPE_APIKEY' ) ){ return true; } return false; } /** * Notice for Adblocker module if assets have expired */ public static function assets_expired() { $plugin_options = Advanced_Ads_Plugin::get_instance()->options(); $adblocker_options = Advanced_Ads_Ad_Blocker::get_instance()->options(); return ( ! empty ( $plugin_options['use-adblocker'] ) && empty ( $adblocker_options['module_can_work'] ) ); } /** * check for potential jQuery errors * only script, so no return, but direct output * */ public static function jquery_ui_conflict(){ ?>