<?php
if ( ! class_exists( 'Automattic\Jetpack\Device_Detection' ) ) {
// Manually load Device_Detection before autoload is initialized.
if ( defined( 'WPCACHEHOME' ) ) {
if ( file_exists( WPCACHEHOME . '/vendor/automattic/jetpack-device-detection/src/class-device-detection.php' ) ) {
require_once WPCACHEHOME . '/vendor/automattic/jetpack-device-detection/src/class-device-detection.php';
}
}
}
function wp_super_cache_jetpack_admin() {
global $cache_jetpack, $wp_cache_config_file, $valid_nonce;
$cache_jetpack = '' === $cache_jetpack ? '0' : $cache_jetpack;
if ( isset( $_POST['cache_jetpack'] ) && $valid_nonce ) {
if ( $cache_jetpack === (int) $_POST['cache_jetpack'] ) {
$changed = false;
} else {
$changed = true;
}
$cache_jetpack = (int) $_POST['cache_jetpack'];
wp_cache_replace_line( '^ *\$cache_jetpack', "\$cache_jetpack = '$cache_jetpack';", $wp_cache_config_file );
if ( $changed && $cache_jetpack ) {
wp_cache_replace_line( '^ *\$wp_cache_mobile_enabled', '$wp_cache_mobile_enabled = 1;', $wp_cache_config_file );
wp_cache_replace_line( '^ *\$wp_cache_mod_rewrite', '$wp_cache_mod_rewrite = 0;', $wp_cache_config_file );
wp_cache_replace_line( '^ *\$super_cache_enabled', '$super_cache_enabled = 1;', $wp_cache_config_file );
}
}
$id = 'jetpack-section';
?>
<fieldset id="<?php echo $id; ?>" class="options">
<h4><?php _e( 'Jetpack Mobile Theme', 'wp-super-cache' ); ?></h4>
<?php
if ( false === file_exists( dirname( WPCACHEHOME ) . '/jetpack/class.jetpack-user-agent.php' ) ) {
echo '<strong>' . sprintf( __( 'Jetpack not found in %s. Install it and enable the mobile theme and this helper plugin to cache visits by mobile visitors.', 'wp-super-cache' ), dirname( WPCACHEHOME ) ) . '</strong>';
} else {
?>
<form name="wp_manager" action="" method="post">
<label><input type="radio" name="cache_jetpack" value="1" <?php if ( $cache_jetpack ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
<label><input type="radio" name="cache_jetpack" value="0" <?php if ( ! $cache_jetpack ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Disabled', 'wp-super-cache' ); ?></label>
<?php
echo '<p>' . __( 'Provides support for the <a href="https://wordpress.org/plugins/jetpack/">Jetpack</a> mobile theme and plugin. PHP caching mode and mobile support will be enabled too.', 'wp-super-cache' ) . '</p>';
if ( isset( $changed ) && $changed ) {
if ( $cache_jetpack ) {
$status = __( 'enabled', 'wp-super-cache' );
} else {
$status = __( 'disabled', 'wp-super-cache' );
}
echo '<p><strong>' . sprintf( __( 'Jetpack Mobile Theme support is now %s', 'wp-super-cache' ), $status ) . '</strong></p>';
}
echo '<div class="submit"><input class="button-primary" ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
wp_nonce_field( 'wp-cache' );
?>
</form>
<?php } ?>
</fieldset>
<?php
}
add_cacheaction( 'cache_admin_page', 'wp_super_cache_jetpack_admin' );
function wp_super_cache_jetpack_cookie_check( $cache_key ) {
if ( isset ( $_COOKIE['akm_mobile'] ) ) {
if ( $_COOKIE['akm_mobile'] == 'true' ) {
return 'mobile';
} elseif ( $_COOKIE['akm_mobile'] == 'false' ) {
return 'normal';
}
}
if ( ! class_exists( 'Automattic\Jetpack\Device_Detection' ) ) {
return 'normal';
}
if ( \Automattic\Jetpack\Device_Detection::is_phone() ) {
return 'mobile';
} else {
return 'normal';
}
}
if ( isset( $cache_jetpack ) && '1' === $cache_jetpack ) {
add_cacheaction( 'wp_cache_check_mobile', 'wp_super_cache_jetpack_cookie_check' );
}
function wpsc_cache_jetpack_list( $list ) {
$list['jetpack'] = array(
'key' => 'jetpack',
'url' => 'https://wordpress.org/plugins/jetpack/',
'title' => __( 'Jetpack Mobile Theme', 'wp-super-cache' ),
'desc' => __( 'Provides support for the Jetpack mobile theme and plugin. PHP caching mode and mobile support will be enabled too.', 'wp-super-cache' ),
);
return $list;
}
add_cacheaction( 'wpsc_filter_list', 'wpsc_cache_jetpack_list' );