/home/arranoyd/magicraft/wp-content/plugins/wp-rocket/wp-rocket.php
<?php
/*
Plugin Name: WP Rocket
Plugin URI: http://www.wp-rocket.me
Description: The best WordPress performance plugin.
Version: 2.8.5
Code Name: Ilum
Author: WP Rocket
Contributors: Jonathan Buttigieg, Julio Potier, Remy Perona
Author URI: http://www.wp-rocket.me
Licence: GPLv2
Text Domain: rocket
Domain Path: languages
Copyright 2013-2016 WP Rocket
*/
defined( 'ABSPATH' ) or die( 'Cheatin’ uh?' );
// Rocket defines
define( 'WP_ROCKET_VERSION' , '2.8.5' );
define( 'WP_ROCKET_PRIVATE_KEY' , '4f28b6adeb38d3b9dd6978616e6a1b7c');
define( 'WP_ROCKET_SLUG' , 'wp_rocket_settings' );
define( 'WP_ROCKET_WEB_MAIN' , 'http://support.wp-rocket.me/' );
define( 'WP_ROCKET_WEB_API' , WP_ROCKET_WEB_MAIN . 'api/wp-rocket/' );
define( 'WP_ROCKET_WEB_CHECK' , WP_ROCKET_WEB_MAIN . 'check_update.php' );
define( 'WP_ROCKET_WEB_VALID' , WP_ROCKET_WEB_MAIN . 'valid_key.php' );
define( 'WP_ROCKET_WEB_INFO' , WP_ROCKET_WEB_MAIN . 'plugin_information.php' );
define( 'WP_ROCKET_WEB_SUPPORT' , WP_ROCKET_WEB_MAIN . 'forums/' );
define( 'WP_ROCKET_BOT_URL' , 'http://bot.wp-rocket.me/launch.php' );
define( 'WP_ROCKET_FILE' , __FILE__ );
define( 'WP_ROCKET_PATH' , realpath( plugin_dir_path( WP_ROCKET_FILE ) ) . '/' );
define( 'WP_ROCKET_INC_PATH' , realpath( WP_ROCKET_PATH . 'inc/' ) . '/' );
define( 'WP_ROCKET_FRONT_PATH' , realpath( WP_ROCKET_INC_PATH . 'front/' ) . '/' );
define( 'WP_ROCKET_ADMIN_PATH' , realpath( WP_ROCKET_INC_PATH . 'admin' ) . '/' );
define( 'WP_ROCKET_ADMIN_UI_PATH' , realpath( WP_ROCKET_ADMIN_PATH . 'ui' ) . '/' );
define( 'WP_ROCKET_ADMIN_UI_MODULES_PATH', realpath( WP_ROCKET_ADMIN_UI_PATH . 'modules' ) . '/' );
define( 'WP_ROCKET_COMMON_PATH' , realpath( WP_ROCKET_INC_PATH . 'common' ) . '/' );
define( 'WP_ROCKET_CLASSES_PATH' , realpath( WP_ROCKET_INC_PATH . 'classes' ) . '/' );
define( 'WP_ROCKET_FUNCTIONS_PATH' , realpath( WP_ROCKET_INC_PATH . 'functions' ) . '/' );
define( 'WP_ROCKET_API_PATH' , realpath( WP_ROCKET_INC_PATH . 'api' ) . '/' );
define( 'WP_ROCKET_VENDORS_PATH' , realpath( WP_ROCKET_INC_PATH . 'vendors' ) . '/' );
define( 'WP_ROCKET_3RD_PARTY_PATH' , realpath( WP_ROCKET_INC_PATH . '3rd-party' ) . '/' );
define( 'WP_ROCKET_CONFIG_PATH' , WP_CONTENT_DIR . '/wp-rocket-config/' );
define( 'WP_ROCKET_CACHE_PATH' , WP_CONTENT_DIR . '/cache/wp-rocket/' );
define( 'WP_ROCKET_MINIFY_CACHE_PATH' , WP_CONTENT_DIR . '/cache/min/' );
define( 'WP_ROCKET_URL' , plugin_dir_url( WP_ROCKET_FILE ) );
define( 'WP_ROCKET_INC_URL' , WP_ROCKET_URL . 'inc/' );
define( 'WP_ROCKET_FRONT_URL' , WP_ROCKET_INC_URL . 'front/' );
define( 'WP_ROCKET_FRONT_JS_URL' , WP_ROCKET_FRONT_URL . 'js/' );
define( 'WP_ROCKET_LAB_JS_VERSION' , '2.0.3' );
define( 'WP_ROCKET_LAZYLOAD_JS_VERSION' , '1.0.5' );
define( 'WP_ROCKET_ADMIN_URL' , WP_ROCKET_INC_URL . 'admin/' );
define( 'WP_ROCKET_ADMIN_UI_URL' , WP_ROCKET_ADMIN_URL . 'ui/' );
define( 'WP_ROCKET_ADMIN_UI_JS_URL' , WP_ROCKET_ADMIN_UI_URL . 'js/' );
define( 'WP_ROCKET_ADMIN_UI_CSS_URL' , WP_ROCKET_ADMIN_UI_URL . 'css/' );
define( 'WP_ROCKET_ADMIN_UI_IMG_URL' , WP_ROCKET_ADMIN_UI_URL . 'img/' );
define( 'WP_ROCKET_CACHE_URL' , WP_CONTENT_URL . '/cache/wp-rocket/' );
define( 'WP_ROCKET_MINIFY_CACHE_URL' , WP_CONTENT_URL . '/cache/min/' );
if ( ! defined( 'CHMOD_WP_ROCKET_CACHE_DIRS' ) ) {
define( 'CHMOD_WP_ROCKET_CACHE_DIRS', 0755 );
}
if ( ! defined( 'WP_ROCKET_LASTVERSION' ) ) {
define( 'WP_ROCKET_LASTVERSION', '2.7.4' );
}
require( WP_ROCKET_INC_PATH . 'compat.php' );
/*
* Tell WP what to do when plugin is loaded
*
* @since 1.0
*/
add_action( 'plugins_loaded', 'rocket_init' );
function rocket_init()
{
// Load translations from the languages directory.
$locale = get_locale();
// This filter is documented in /wp-includes/l10n.php.
$locale = apply_filters( 'plugin_locale', $locale, 'rocket' );
load_textdomain( 'rocket', WP_LANG_DIR . '/plugins/wp-rocket-' . $locale . '.mo' );
load_plugin_textdomain( 'rocket', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
// Nothing to do if autosave
if ( defined( 'DOING_AUTOSAVE' ) ) {
return;
}
// Necessary to call correctly WP Rocket Bot for cache json
global $do_rocket_bot_cache_json;
$do_rocket_bot_cache_json = false;
// Call defines, classes and functions
require( WP_ROCKET_API_PATH . 'cloudflare.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'options.php' );
// Last constants
define( 'WP_ROCKET_PLUGIN_NAME', get_rocket_option( 'wl_plugin_name', 'WP Rocket' ) );
define( 'WP_ROCKET_PLUGIN_SLUG', sanitize_key( WP_ROCKET_PLUGIN_NAME ) );
// Call defines, classes and functions
require( WP_ROCKET_CLASSES_PATH . 'background-processing.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'files.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'posts.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'admin.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'formatting.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'cdn.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'minify.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'plugins.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'i18n.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'bots.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'cloudflare.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'htaccess.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'varnish.php' );
require( WP_ROCKET_INC_PATH . 'deprecated.php' );
require( WP_ROCKET_FRONT_PATH . 'plugin-compatibility.php' );
require( WP_ROCKET_FRONT_PATH . 'theme-compatibility.php' );
require( WP_ROCKET_3RD_PARTY_PATH . '3rd-party.php' );
require( WP_ROCKET_COMMON_PATH . 'admin-bar.php' );
require( WP_ROCKET_COMMON_PATH . 'updater.php' );
require( WP_ROCKET_COMMON_PATH . 'emoji.php' );
require( dirname( __FILE__ ) . '/licence-data.php' );
if( rocket_valid_key() ) {
require( WP_ROCKET_COMMON_PATH . 'purge.php' );
require( WP_ROCKET_COMMON_PATH . 'cron.php' );
if ( 0 < (int) get_rocket_option( 'cdn' ) ) {
require( WP_ROCKET_FRONT_PATH . 'cdn.php' );
}
if ( 0 < (int) get_rocket_option( 'do_cloudflare' ) ) {
require( WP_ROCKET_VENDORS_PATH . 'ip_in_range.php' );
require( WP_ROCKET_COMMON_PATH . 'cloudflare.php' );
}
if ( is_multisite() && defined( 'SUNRISE' ) && SUNRISE == 'on' && function_exists( 'domain_mapping_siteurl' ) ) {
require( WP_ROCKET_INC_PATH . '/domain-mapping.php' );
}
}
if ( is_admin() ) {
require( WP_ROCKET_ADMIN_PATH . 'ajax.php' );
require( WP_ROCKET_ADMIN_PATH . 'upgrader.php' );
require( WP_ROCKET_ADMIN_PATH . 'updater.php' );
require( WP_ROCKET_ADMIN_PATH . 'class-repeater-field.php' );
require( WP_ROCKET_ADMIN_PATH . 'options.php' );
require( WP_ROCKET_ADMIN_PATH . 'admin.php' );
require( WP_ROCKET_ADMIN_PATH . 'plugin-compatibility.php' );
require( WP_ROCKET_ADMIN_UI_PATH . 'enqueue.php' );
require( WP_ROCKET_ADMIN_UI_PATH . 'notices.php' );
require( WP_ROCKET_ADMIN_UI_PATH . 'meta-boxes.php' );
} else if ( rocket_valid_key() ) {
require( WP_ROCKET_FRONT_PATH . 'minify.php' );
require( WP_ROCKET_FRONT_PATH . 'cookie.php' );
require( WP_ROCKET_FRONT_PATH . 'images.php' );
require( WP_ROCKET_FRONT_PATH . 'enqueue.php' );
require( WP_ROCKET_FRONT_PATH . 'dns-prefetch.php' );
if ( get_rocket_option( 'deferred_js_files' ) ) {
require( WP_ROCKET_FRONT_PATH . 'deferred-js.php' );
}
// Don't insert the LazyLoad file if Rocket LazyLoad is activated
if ( ! rocket_is_plugin_active( 'rocket-lazy-load/rocket-lazy-load.php' ) ) {
require( WP_ROCKET_FRONT_PATH . 'lazyload.php' );
}
require( WP_ROCKET_FRONT_PATH . 'protocol.php' );
}
// You can hook this to trigger any action when WP Rocket is correctly loaded, so, not in AUTOSAVE mode
if ( rocket_valid_key() ) {
/**
* Fires when WP Rocket is correctly loaded
*
* @since 1.0
*/
do_action( 'wp_rocket_loaded' );
}
}
/*
* Tell WP what to do when plugin is deactivated
*
* @since 1.0
*/
register_deactivation_hook( __FILE__, 'rocket_deactivation' );
function rocket_deactivation()
{
if ( ! isset( $_GET['rocket_nonce'] ) || ! wp_verify_nonce( $_GET['rocket_nonce'], 'force_deactivation' ) ) {
global $is_apache;
$causes = array();
// .htaccess problem
if ( $is_apache && ! is_writable( get_home_path() . '.htaccess' ) ) {
$causes[] = 'htaccess';
}
// wp-config problem
if ( ! is_writable( rocket_find_wpconfig_path() ) ) {
$causes[] = 'wpconfig';
}
if ( count( $causes ) ) {
set_transient( $GLOBALS['current_user']->ID . '_donotdeactivaterocket', $causes );
wp_safe_redirect( wp_get_referer() );
die();
}
}
// Delete config files
rocket_delete_config_file();
if ( ! count( glob( WP_ROCKET_CONFIG_PATH . '*.php' ) ) ) {
// Delete All WP Rocket rules of the .htaccess file
flush_rocket_htaccess( true );
// Remove WP_CACHE constant in wp-config.php
set_rocket_wp_cache_define( false );
// Delete content of advanced-cache.php
rocket_put_content( WP_CONTENT_DIR . '/advanced-cache.php', '' );
}
// Update customer key & licence.
wp_remote_get( WP_ROCKET_WEB_API . 'pause-licence.php', array( 'blocking' => false ) );
delete_transient( 'rocket_check_licence_30' );
delete_transient( 'rocket_check_licence_1' );
delete_site_transient( 'update_wprocket_response' );
}
/*
* Tell WP what to do when plugin is activated
*
* @since 1.1.0
*/
register_activation_hook( __FILE__, 'rocket_activation' );
function rocket_activation()
{
// Last constants
define( 'WP_ROCKET_PLUGIN_NAME', 'WP Rocket' );
define( 'WP_ROCKET_PLUGIN_SLUG', sanitize_key( WP_ROCKET_PLUGIN_NAME ) );
if ( defined( 'SUNRISE' ) && SUNRISE == 'on' && function_exists( 'domain_mapping_siteurl' ) ) {
require( WP_ROCKET_INC_PATH . 'domain-mapping.php' );
}
require( WP_ROCKET_FUNCTIONS_PATH . 'options.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'files.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'formatting.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'plugins.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'i18n.php' );
require( WP_ROCKET_FUNCTIONS_PATH . 'htaccess.php' );
if ( rocket_valid_key() ) {
// Add All WP Rocket rules of the .htaccess file
flush_rocket_htaccess();
// Add WP_CACHE constant in wp-config.php
set_rocket_wp_cache_define( true );
}
// Create the cache folders (wp-rocket & min)
rocket_init_cache_dir();
// Create the config folder (wp-rocket-config)
rocket_init_config_dir();
// Create advanced-cache.php file
rocket_generate_advanced_cache_file();
// Update customer key & licence.
wp_remote_get( WP_ROCKET_WEB_API . 'activate-licence.php', array( 'blocking' => false ) );
}