Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/advanced.../classes
File: checks.php
<?php
[0] Fix | Delete
[1] Fix | Delete
/**
[2] Fix | Delete
* Checks for various things
[3] Fix | Delete
*
[4] Fix | Delete
* @since 1.6.9
[5] Fix | Delete
*/
[6] Fix | Delete
class Advanced_Ads_Checks {
[7] Fix | Delete
[8] Fix | Delete
/**
[9] Fix | Delete
* Minimum required PHP version of Advanced Ads
[10] Fix | Delete
*/
[11] Fix | Delete
const MINIMUM_PHP_VERSION = '5.6.20';
[12] Fix | Delete
[13] Fix | Delete
[14] Fix | Delete
/**
[15] Fix | Delete
* Show the list of potential issues
[16] Fix | Delete
*/
[17] Fix | Delete
public static function show_issues() {
[18] Fix | Delete
include_once ADVADS_ABSPATH . '/admin/views/checks.php';
[19] Fix | Delete
}
[20] Fix | Delete
[21] Fix | Delete
/**
[22] Fix | Delete
* PHP version minimum
[23] Fix | Delete
*
[24] Fix | Delete
* @return bool true if uses the minimum PHP version or higher
[25] Fix | Delete
*/
[26] Fix | Delete
public static function php_version_minimum() {
[27] Fix | Delete
[28] Fix | Delete
if ( version_compare( phpversion(), self::MINIMUM_PHP_VERSION, '>=' ) ) {
[29] Fix | Delete
return true;
[30] Fix | Delete
}
[31] Fix | Delete
[32] Fix | Delete
return false;
[33] Fix | Delete
}
[34] Fix | Delete
[35] Fix | Delete
/**
[36] Fix | Delete
* Caching used
[37] Fix | Delete
*
[38] Fix | Delete
* @return bool true if active
[39] Fix | Delete
*/
[40] Fix | Delete
public static function cache() {
[41] Fix | Delete
if ( ( defined( 'WP_CACHE' ) && WP_CACHE ) // general cache constant.
[42] Fix | Delete
|| defined( 'W3TC' ) // W3 Total Cache.
[43] Fix | Delete
|| function_exists( 'wp_super_cache_text_domain' ) // WP SUper Cache.
[44] Fix | Delete
|| defined( 'WP_ROCKET_SLUG' ) // WP Rocket.
[45] Fix | Delete
|| defined( 'WPFC_WP_CONTENT_DIR' ) // WP Fastest Cache.
[46] Fix | Delete
|| class_exists( 'HyperCache', false ) // Hyper Cache.
[47] Fix | Delete
|| defined( 'CE_CACHE_DIR' ) // Cache Enabler.
[48] Fix | Delete
) {
[49] Fix | Delete
return true;
[50] Fix | Delete
}
[51] Fix | Delete
[52] Fix | Delete
return false;
[53] Fix | Delete
}
[54] Fix | Delete
[55] Fix | Delete
/**
[56] Fix | Delete
* WordPress update available
[57] Fix | Delete
*
[58] Fix | Delete
* @return bool true if WordPress update available
[59] Fix | Delete
*/
[60] Fix | Delete
public static function wp_update_available() {
[61] Fix | Delete
[62] Fix | Delete
$update_data = wp_get_update_data();
[63] Fix | Delete
$count = absint( $update_data['counts']['wordpress'] );
[64] Fix | Delete
[65] Fix | Delete
if ( $count ) {
[66] Fix | Delete
return true;
[67] Fix | Delete
}
[68] Fix | Delete
[69] Fix | Delete
return false;
[70] Fix | Delete
}
[71] Fix | Delete
[72] Fix | Delete
/**
[73] Fix | Delete
* Check if license keys are missing or invalid or expired
[74] Fix | Delete
*
[75] Fix | Delete
* @since 1.6.6
[76] Fix | Delete
* @update 1.6.9 moved from Advanced_Ads_Plugin
[77] Fix | Delete
* @update 1.8.21 also check for expired licenses
[78] Fix | Delete
* @return true if there are missing licenses
[79] Fix | Delete
*/
[80] Fix | Delete
public static function licenses_invalid() {
[81] Fix | Delete
[82] Fix | Delete
$add_ons = apply_filters( 'advanced-ads-add-ons', [] );
[83] Fix | Delete
[84] Fix | Delete
if ( [] === $add_ons ) {
[85] Fix | Delete
Advanced_Ads_Ad_Health_Notices::get_instance()->remove( 'license_invalid' );
[86] Fix | Delete
return false;
[87] Fix | Delete
}
[88] Fix | Delete
[89] Fix | Delete
foreach ( $add_ons as $_add_on_key => $_add_on ) {
[90] Fix | Delete
$status = Advanced_Ads_Admin_Licenses::get_instance()->get_license_status( $_add_on['options_slug'] );
[91] Fix | Delete
[92] Fix | Delete
// check expiry date.
[93] Fix | Delete
$expiry_date = Advanced_Ads_Admin_Licenses::get_instance()->get_license_expires( $_add_on['options_slug'] );
[94] Fix | Delete
[95] Fix | Delete
if ( $expiry_date && 'lifetime' !== $expiry_date && strtotime( $expiry_date ) < time() ) {
[96] Fix | Delete
return true;
[97] Fix | Delete
}
[98] Fix | Delete
[99] Fix | Delete
// don’t check if license is valid.
[100] Fix | Delete
if ( 'valid' === $status ) {
[101] Fix | Delete
continue;
[102] Fix | Delete
}
[103] Fix | Delete
[104] Fix | Delete
// retrieve our license key from the DB.
[105] Fix | Delete
$licenses = Advanced_Ads_Admin_Licenses::get_instance()->get_licenses();
[106] Fix | Delete
[107] Fix | Delete
$license_key = isset( $licenses[ $_add_on_key ] ) ? $licenses[ $_add_on_key ] : false;
[108] Fix | Delete
[109] Fix | Delete
if ( ! $license_key || 'valid' !== $status ) {
[110] Fix | Delete
return true;
[111] Fix | Delete
}
[112] Fix | Delete
}
[113] Fix | Delete
[114] Fix | Delete
// remove notice, if one is given.
[115] Fix | Delete
Advanced_Ads_Ad_Health_Notices::get_instance()->remove( 'license_invalid' );
[116] Fix | Delete
return false;
[117] Fix | Delete
}
[118] Fix | Delete
[119] Fix | Delete
/**
[120] Fix | Delete
* Autoptimize plugin installed
[121] Fix | Delete
* can change ad tags, especially inline css and scripts
[122] Fix | Delete
*
[123] Fix | Delete
* @link https://wordpress.org/plugins/autoptimize/
[124] Fix | Delete
* @return bool true if Autoptimize is installed
[125] Fix | Delete
*/
[126] Fix | Delete
public static function active_autoptimize() {
[127] Fix | Delete
[128] Fix | Delete
if ( defined( 'AUTOPTIMIZE_PLUGIN_VERSION' ) ) {
[129] Fix | Delete
return true;
[130] Fix | Delete
}
[131] Fix | Delete
[132] Fix | Delete
return false;
[133] Fix | Delete
}
[134] Fix | Delete
[135] Fix | Delete
/**
[136] Fix | Delete
* WP rocket plugin installed
[137] Fix | Delete
*
[138] Fix | Delete
* @return bool true if WP rocket is installed
[139] Fix | Delete
*/
[140] Fix | Delete
public static function active_wp_rocket() {
[141] Fix | Delete
if ( defined( 'WP_ROCKET_SLUG' ) ) {
[142] Fix | Delete
return true;
[143] Fix | Delete
}
[144] Fix | Delete
[145] Fix | Delete
return false;
[146] Fix | Delete
}
[147] Fix | Delete
[148] Fix | Delete
/**
[149] Fix | Delete
* Checks the settings of wp rocket to find out if combining of javascript files is enabled
[150] Fix | Delete
*
[151] Fix | Delete
* @return boolean true, when "Combine JavaScript files" is enabled
[152] Fix | Delete
*/
[153] Fix | Delete
public static function is_wp_rocket_combine_js_enabled() {
[154] Fix | Delete
if ( self::active_wp_rocket() ) {
[155] Fix | Delete
$settings = get_option( 'wp_rocket_settings' );
[156] Fix | Delete
if ( $settings ) {
[157] Fix | Delete
if ( isset( $settings['minify_concatenate_js'] ) && $settings['minify_concatenate_js'] ) {
[158] Fix | Delete
return true;
[159] Fix | Delete
}
[160] Fix | Delete
}
[161] Fix | Delete
}
[162] Fix | Delete
return false;
[163] Fix | Delete
}
[164] Fix | Delete
[165] Fix | Delete
/**
[166] Fix | Delete
* Any AMP plugin enabled
[167] Fix | Delete
*
[168] Fix | Delete
* @return bool true if AMP plugin is installed
[169] Fix | Delete
*/
[170] Fix | Delete
public static function active_amp_plugin() {
[171] Fix | Delete
// Accelerated Mobile Pages.
[172] Fix | Delete
if ( function_exists( 'ampforwp_is_amp_endpoint' ) ) {
[173] Fix | Delete
return true;
[174] Fix | Delete
}
[175] Fix | Delete
[176] Fix | Delete
// AMP plugin.
[177] Fix | Delete
if ( function_exists( 'is_amp_endpoint' ) ) {
[178] Fix | Delete
return true;
[179] Fix | Delete
}
[180] Fix | Delete
[181] Fix | Delete
// other plugins.
[182] Fix | Delete
if ( function_exists( 'is_wp_amp' ) ) {
[183] Fix | Delete
return true;
[184] Fix | Delete
}
[185] Fix | Delete
[186] Fix | Delete
return false;
[187] Fix | Delete
}
[188] Fix | Delete
[189] Fix | Delete
/**
[190] Fix | Delete
* Checks if the preconditions are met to wrap an ad with <!--noptimize--> comments
[191] Fix | Delete
*
[192] Fix | Delete
* @return boolean
[193] Fix | Delete
*/
[194] Fix | Delete
public static function requires_noptimize_wrapping() {
[195] Fix | Delete
return self::active_autoptimize() || self::is_wp_rocket_combine_js_enabled();
[196] Fix | Delete
}
[197] Fix | Delete
[198] Fix | Delete
/**
[199] Fix | Delete
* Check for additional conflicting plugins
[200] Fix | Delete
*
[201] Fix | Delete
* @return array $plugins names of conflicting plugins
[202] Fix | Delete
*/
[203] Fix | Delete
public static function conflicting_plugins() {
[204] Fix | Delete
$conflicting_plugins = [];
[205] Fix | Delete
[206] Fix | Delete
if ( defined( 'Publicize_Base' ) ) { // JetPack Publicize module.
[207] Fix | Delete
$conflicting_plugins[] = 'Jetpack – Publicize';
[208] Fix | Delete
}
[209] Fix | Delete
if ( defined( 'PF__PLUGIN_DIR' ) ) { // Facebook Instant Articles & Google AMP Pages by PageFrog.
[210] Fix | Delete
$conflicting_plugins[] = 'Facebook Instant Articles & Google AMP Pages by PageFrog';
[211] Fix | Delete
}
[212] Fix | Delete
if ( defined( 'GT_VERSION' ) ) { // GT ShortCodes.
[213] Fix | Delete
$conflicting_plugins[] = 'GT ShortCodes';
[214] Fix | Delete
}
[215] Fix | Delete
if ( class_exists( 'SimilarPosts', false ) ) { // Similar Posts, https://de.wordpress.org/plugins/similar-posts/.
[216] Fix | Delete
$conflicting_plugins[] = 'Similar Posts';
[217] Fix | Delete
}
[218] Fix | Delete
[219] Fix | Delete
return $conflicting_plugins;
[220] Fix | Delete
}
[221] Fix | Delete
[222] Fix | Delete
/**
[223] Fix | Delete
* Check if any of the global hide ads options is set
[224] Fix | Delete
* ignore RSS feed setting, because it is standard
[225] Fix | Delete
*
[226] Fix | Delete
* @since 1.7.10
[227] Fix | Delete
* @return bool
[228] Fix | Delete
*/
[229] Fix | Delete
public static function ads_disabled() {
[230] Fix | Delete
$options = Advanced_Ads::get_instance()->options();
[231] Fix | Delete
if ( isset( $options['disabled-ads'] ) && is_array( $options['disabled-ads'] ) ) {
[232] Fix | Delete
foreach ( $options['disabled-ads'] as $_key => $_value ) {
[233] Fix | Delete
// don’t warn if "RSS Feed", "404", or "REST API" option are enabled, because they are normally not critical.
[234] Fix | Delete
if ( ! empty( $_value ) && ! in_array( (string) $_key, [ 'feed', '404', 'rest-api' ], true ) ) {
[235] Fix | Delete
return true;
[236] Fix | Delete
}
[237] Fix | Delete
}
[238] Fix | Delete
}
[239] Fix | Delete
return false;
[240] Fix | Delete
}
[241] Fix | Delete
[242] Fix | Delete
/**
[243] Fix | Delete
* Check for required php extensions
[244] Fix | Delete
*
[245] Fix | Delete
* @return array
[246] Fix | Delete
*/
[247] Fix | Delete
public static function php_extensions() {
[248] Fix | Delete
[249] Fix | Delete
$missing_extensions = [];
[250] Fix | Delete
[251] Fix | Delete
if ( ! extension_loaded( 'dom' ) ) {
[252] Fix | Delete
$missing_extensions[] = 'dom';
[253] Fix | Delete
}
[254] Fix | Delete
[255] Fix | Delete
if ( ! extension_loaded( 'mbstring' ) ) {
[256] Fix | Delete
$missing_extensions[] = 'mbstring';
[257] Fix | Delete
}
[258] Fix | Delete
[259] Fix | Delete
return $missing_extensions;
[260] Fix | Delete
}
[261] Fix | Delete
[262] Fix | Delete
/**
[263] Fix | Delete
* Get the list of Advanced Ads constant defined by the user.
[264] Fix | Delete
*
[265] Fix | Delete
* @return array
[266] Fix | Delete
*/
[267] Fix | Delete
public static function get_defined_constants() {
[268] Fix | Delete
$constants = apply_filters(
[269] Fix | Delete
'advanced-ads-constants',
[270] Fix | Delete
[
[271] Fix | Delete
'ADVADS_ADS_DISABLED',
[272] Fix | Delete
'ADVADS_ALLOW_ADSENSE_ON_404',
[273] Fix | Delete
'ADVADS_DISABLE_RESPONSIVE_IMAGES',
[274] Fix | Delete
'ADVANCED_ADS_AD_DEBUG_FOR_ADMIN_ONLY',
[275] Fix | Delete
'ADVANCED_ADS_DISABLE_ANALYTICS_ANONYMIZE_IP',
[276] Fix | Delete
'ADVANCED_ADS_DISABLE_CHANGE',
[277] Fix | Delete
'ADVANCED_ADS_DISABLE_CODE_HIGHLIGHTING',
[278] Fix | Delete
'ADVANCED_ADS_DISABLE_SHORTCODE_BUTTON',
[279] Fix | Delete
'ADVANCED_ADS_DISALLOW_PHP',
[280] Fix | Delete
'ADVANCED_ADS_ENABLE_REVISIONS',
[281] Fix | Delete
'ADVANCED_ADS_GEO_TEST_IP',
[282] Fix | Delete
'ADVANCED_ADS_PRO_CUSTOM_POSITION_MOVE_INTO_HIDDEN',
[283] Fix | Delete
'ADVANCED_ADS_PRO_PAGE_IMPR_EXDAYS',
[284] Fix | Delete
'ADVANCED_ADS_PRO_REFERRER_EXDAYS',
[285] Fix | Delete
'ADVANCED_ADS_RESPONSIVE_DISABLE_BROWSER_WIDTH',
[286] Fix | Delete
'ADVANCED_ADS_SHOW_LICENSE_RESPONSE',
[287] Fix | Delete
'ADVANCED_ADS_SUPPRESS_PLUGIN_ERROR_NOTICES',
[288] Fix | Delete
'ADVANCED_ADS_TRACKING_DEBUG',
[289] Fix | Delete
'ADVANCED_ADS_TRACKING_NO_HOURLY_LIMIT',
[290] Fix | Delete
]
[291] Fix | Delete
);
[292] Fix | Delete
[293] Fix | Delete
$result = [];
[294] Fix | Delete
foreach ( $constants as $constant ) {
[295] Fix | Delete
if ( defined( $constant ) ) {
[296] Fix | Delete
$result[] = $constant;
[297] Fix | Delete
}
[298] Fix | Delete
}
[299] Fix | Delete
return $result;
[300] Fix | Delete
}
[301] Fix | Delete
[302] Fix | Delete
[303] Fix | Delete
/**
[304] Fix | Delete
* WP Engine hosting detected
[305] Fix | Delete
*
[306] Fix | Delete
* @return bool true if site is hosted by WP Engine
[307] Fix | Delete
*/
[308] Fix | Delete
public static function wp_engine_hosting() {
[309] Fix | Delete
if ( defined( 'WPE_APIKEY' ) ) {
[310] Fix | Delete
return true;
[311] Fix | Delete
}
[312] Fix | Delete
[313] Fix | Delete
return false;
[314] Fix | Delete
}
[315] Fix | Delete
[316] Fix | Delete
/**
[317] Fix | Delete
* Notice for Adblocker module if assets have expired
[318] Fix | Delete
*/
[319] Fix | Delete
public static function assets_expired() {
[320] Fix | Delete
$plugin_options = Advanced_Ads_Plugin::get_instance()->options();
[321] Fix | Delete
$adblocker_options = Advanced_Ads_Ad_Blocker::get_instance()->options();
[322] Fix | Delete
[323] Fix | Delete
return ( ! empty( $plugin_options['use-adblocker'] ) && empty( $adblocker_options['module_can_work'] ) );
[324] Fix | Delete
}
[325] Fix | Delete
[326] Fix | Delete
/**
[327] Fix | Delete
* Check for other ads.txt plugins
[328] Fix | Delete
*
[329] Fix | Delete
* @return array
[330] Fix | Delete
*/
[331] Fix | Delete
public static function ads_txt_plugins() {
[332] Fix | Delete
[333] Fix | Delete
$ads_txt_plugins = [];
[334] Fix | Delete
[335] Fix | Delete
// Ads.txt Manager.
[336] Fix | Delete
if ( function_exists( 'tenup_display_ads_txt' ) ) {
[337] Fix | Delete
$ads_txt_plugins[] = 'Ads.txt Manager';
[338] Fix | Delete
}
[339] Fix | Delete
[340] Fix | Delete
// todo:
[341] Fix | Delete
// ads-txt-admin/unveil-media-ads-txt.php
[342] Fix | Delete
// simple-ads-txt/bs_ads_txt.php
[343] Fix | Delete
// ads-txt-manager/adstxtmanager.php
[344] Fix | Delete
// monetizemore-ads-txt/wp-ads-txt.php
[345] Fix | Delete
// authorized-sellers-manager/ads-txt-publisher.php.
[346] Fix | Delete
[347] Fix | Delete
return $ads_txt_plugins;
[348] Fix | Delete
}
[349] Fix | Delete
[350] Fix | Delete
/**
[351] Fix | Delete
* Check for activated plugins that manage header or footer code
[352] Fix | Delete
*
[353] Fix | Delete
* @return array
[354] Fix | Delete
*/
[355] Fix | Delete
public static function header_footer_plugins() {
[356] Fix | Delete
[357] Fix | Delete
$plugins = [];
[358] Fix | Delete
[359] Fix | Delete
// Header Footer Code Manager.
[360] Fix | Delete
if ( function_exists( 'hfcm_options_install' ) ) {
[361] Fix | Delete
$plugins[] = 'Header Footer Code Manager';
[362] Fix | Delete
}
[363] Fix | Delete
// Head, Footer and Post Injections.
[364] Fix | Delete
if ( function_exists( 'hefo_template_redirect' ) ) {
[365] Fix | Delete
$plugins[] = 'Head, Footer and Post Injections';
[366] Fix | Delete
}
[367] Fix | Delete
// Insert Headers and Footers /insert-headers-and-footers/.
[368] Fix | Delete
if ( class_exists( 'InsertHeadersAndFooters', false ) ) {
[369] Fix | Delete
$plugins[] = 'Insert Headers and Footers';
[370] Fix | Delete
}
[371] Fix | Delete
// Header and Footer Scripts /header-and-footer-scripts/.
[372] Fix | Delete
if ( class_exists( 'HeaderAndFooterScripts', false ) ) {
[373] Fix | Delete
$plugins[] = 'Header and Footer Scripts';
[374] Fix | Delete
}
[375] Fix | Delete
[376] Fix | Delete
return $plugins;
[377] Fix | Delete
}
[378] Fix | Delete
}
[379] Fix | Delete
[380] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function