| Server IP : 80.74.154.100 / Your IP : 216.73.217.0 Web Server : Apache System : Linux marissa.metanet.ch 4.18.0-553.141.2.lve.el7h.x86_64 #1 SMP Wed Jul 8 17:20:31 UTC 2026 x86_64 User : onlineadmin ( 10487) PHP Version : 8.5.7 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/httpd/vhosts/comeonline.ch/httpdocs/wp-content/plugins/wptouch/core/ |
Upload File : |
<?php
class WPtouchCacheSmash {
var $cache_plugin_detected;
var $cache_plugin_configured;
public function __construct() {
$this->cache_plugin_detected = false;
$this->cache_plugin_configured = false;
if ( $this->is_cache_plugin_detected() ) {
// caching plugin detected
$this->cache_plugin_detected = true;
if ( $this->is_cache_configured() ) {
$this->cache_plugin_configured = true;
}
}
}
private function is_w3_plugin_detected() {
return (
defined( 'W3TC' ) &&
defined( 'W3TC_DIR' )
);
}
private function is_wp_super_cache_detected() {
return function_exists( 'wp_cache_set_home' );
}
private function is_wordfence_detected() {
return defined( 'WORDFENCE_VERSION' );
}
public function is_wp_super_cache_broken() {
/* This state should fire when:
1) WP_CACHE is defined, which means WP Super Cache is loading via wp-config.php
2) WP Super Cache plugin isn't loaded directly anymore
3) WP Super Cache is active in settings AND WP Super Cache UAs aren't configured properly
*/
return (
defined( 'WP_CACHE') &&
WP_CACHE &&
!function_exists( 'get_wpcachehome' ) &&
$this->is_wp_super_cache_active() &&
!$this->does_wp_super_cache_have_configured_uas()
);
}
public function is_cache_plugin_detected() {
return $this->is_w3_plugin_detected() || $this->is_wp_super_cache_detected() || $this->is_wordfence_detected();
}
private function find_in_array_no_case( $needle, $haystack_array ) {
$found = false;
if ( ! empty( $haystack_array ) ) {
foreach( $haystack_array as $key => $value ) {
$new_value = strtolower( $value );
if ( $new_value == strtolower( $needle ) ) {
$found = true;
}
}
}
return $found;
}
private function is_wp_super_cache_active() {
global $cache_enabled;
$super_cache_enabled = isset( $_POST[ 'wp_cache_easy_on' ] ) ? $_POST[ 'wp_cache_easy_on' ] : $cache_enabled;
return $super_cache_enabled;
}
private function does_wp_super_cache_have_configured_uas() {
$configured = true;
global $cache_rejected_user_agent;
$super_cache_rejected_ua = isset( $_POST[ 'wp_rejected_user_agent' ] ) ? explode( "\r\n", $_POST[ 'wp_rejected_user_agent' ] ) : $cache_rejected_user_agent;
if ( !$this->find_in_array_no_case( 'iphone', $super_cache_rejected_ua ) ) {
$configured = false;
}
return $configured;
}
public function is_cache_configured() {
$cache_configured = true;
if ( $this->is_wp_super_cache_detected() ) {
return ( $this->is_wp_super_cache_active() && $this->does_wp_super_cache_have_configured_uas() ) || ( !$this->is_wp_super_cache_active() );
}
// Check W3
if ( $this->is_w3_plugin_detected() ) {
if( version_compare( W3TC_VERSION, '0.9.5', ">=" ) ) {
if ( !function_exists( 'w3_instance' ) ) {
require_once W3TC_DIR . '/inc/define.php';
}
$w3_config = w3_instance( 'W3_Config' );
}
else {
$w3_config = new W3_Config( true );
}
if ( $w3_config ) {
// Check to see if the Page Cache is enabled
if ( $w3_config->get( 'pgcache.enabled' ) ) {
// If it's enabled, we need to make sure the user agents have been updated
$rejected_user_agents = $w3_config->get( 'pgcache.reject.ua' );
if ( !$this->find_in_array_no_case( 'iphone', $rejected_user_agents ) ) {
$cache_configured = false;
}
if ( !$cache_configured && ( $user_groups = $w3_config->get_array( 'mobile.rgroups' ) ) && is_array( $user_groups ) && count( (array) $user_groups ) > 0 ) {
foreach ( $user_groups as $group ) {
if ( $group[ 'enabled' ] && $this->find_in_array_no_case( 'iphone', $group[ 'agents' ] ) && $group[ 'theme' ] == '' && $group[ 'redirect' ] == '' ) {
$cache_configured = true;
$rejected_cookies = $w3_config->get( 'pgcache.reject.cookie' );
if ( !$this->find_in_array_no_case( 'wptouch-pro-view', $rejected_cookies ) ) {
add_filter( 'wptouch_show_mobile_switch_link', '__return_false' );
}
}
}
}
}
}
return $cache_configured;
}
if ( $this->is_wordfence_detected() ) {
$cache_type = wfConfig::get( 'cacheType', false );
if ( !$cache_type || $cache_type == "disabled" ) {
$cache_configured = true;
} else {
$cookie_set = false;
$user_agents_set = false;
$exclusions = wfConfig::get( 'cacheExclusions', false );
if( $exclusions ) {
$exclusions = unserialize( $exclusions );
if ( $exclusions ) {
foreach( $exclusions as $exclusion ) {
if ( $exclusion[ 'pt' ] == 'cc' && $exclusion[ 'p' ] = 'wptouch_switch_toggle' ) {
$cookie_set = true;
} else if ( $exclusion[ 'pt'] == 'uac' && strtolower( $exclusion[ 'p' ] ) == 'iphone' ) {
$user_agents_set = true;
}
if ( $cookie_set && $user_agents_set ) {
break;
}
}
}
}
$cache_configured = ( $cookie_set && $user_agents_set );
}
return $cache_configured;
}
return $cache_configured;
}
public function cache_plugin_name() {
if ( $this->is_w3_plugin_detected() ) {
return "W3 Total Cache";
} else if ( $this->is_wp_super_cache_detected() ) {
return "WP Super Cache";
} else if ( $this->is_wordfence_detected() ) {
return "WordFence";
}
}
public function get_cache_support_url() {
if ( $this->is_w3_plugin_detected() || $this->is_wp_super_cache_detected() ) {
return "https://support.wptouch.com/article/583-configuring-cache-plugins-for-wptouch";
} else if ( $this->is_wordfence_detected() ) {
return "https://support.wptouch.com/support/solutions/articles/5000637442-configuring-wordfence-for-wptouch";
}
}
public function should_disable_mobile_theme() {
return $this->cache_plugin_detected && !$this->cache_plugin_configured;
}
}