97 lines
4.0 KiB
PHP
97 lines
4.0 KiB
PHP
<?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' );
|