.gz$">
# Serve correct content types
# (1)
RemoveType gz
# Serve correct content types
AddType text/css css.gz
AddType text/javascript js.gz
# Serve correct content charset
AddCharset utf-8 .css.gz \
.js.gz
# Force proxies to cache gzipped and non-gzipped files separately
Header append Vary Accept-Encoding
# Serve correct encoding type
AddEncoding gzip .gz
HTACCESS;
return apply_filters( 'rocket_htaccess_compressed_assets', $rules );
}
/**
* Get list of CSS files to be excluded from async CSS.
*
* @since 3.6.2 deprecated
* @since 2.10
* @author Remy Perona
*
* @return array An array of URLs for the CSS files to be excluded.
*/
function get_rocket_exclude_async_css() { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals
_deprecated_function( __FUNCTION__ . '()', '3.6.2', '\WP_Rocket\Engine\CriticalPath\CriticalCSS::get_exclude_async_css()' );
/**
* Filter list of async CSS files
*
* @since 2.10
* @author Remy Perona
*
* @param array $exclude_async_css An array of URLs for the CSS files to be excluded.
*/
$exclude_async_css = (array) apply_filters( 'rocket_exclude_async_css', [] );
$exclude_async_css = array_filter( $exclude_async_css );
$exclude_async_css = array_flip( array_flip( $exclude_async_css ) );
return $exclude_async_css;
}
/**
* Changes the text on the Varnish one-click block.
*
* @deprecated 3.6.1
* @since 3.0
*
* @param array $settings Field settings data.
*
* @return array modified field settings data.
*/
function rocket_wpengine_varnish_field( $settings ) {
_deprecated_function( __FUNCTION__ . '()', '3.6.1', '\WP_Rocket\ThirdParty\Hostings\WPEngine::varnish_addon_title' );
$settings['varnish_auto_purge']['title'] = sprintf(
// Translators: %s = Hosting name.
__( 'Your site is hosted on %s, we have enabled Varnish auto-purge for compatibility.', 'rocket' ),
'WP Engine'
);
return $settings;
}
/**
* Conflict with WP Engine caching system.
*
* @deprecated 3.6.1
* @since 2.6.4
*
*/
function rocket_stop_generate_caching_files_on_wpengine() {
_deprecated_function( __FUNCTION__ . '()', '3.6.1' );
add_filter( 'do_rocket_generate_caching_files', '__return_false' );
}
/**
* Run WP Rocket preload bot after purged the Varnish cache via WP Engine Hosting.
*
* @deprecated 3.6.1
* @since 2.6.4
*/
function rocket_run_rocket_bot_after_wpengine() {
_deprecated_function( __FUNCTION__ . '()', '3.6.1', '\WP_Rocket\ThirdParty\Hostings\WPEngine::run_rocket_bot_after_wpengine' );
if ( wpe_param( 'purge-all' ) && defined( 'PWP_NAME' ) && check_admin_referer( PWP_NAME . '-config' ) ) {
// Preload cache.
run_rocket_bot();
run_rocket_sitemap_preload();
}
}
/**
* Call the cache server to purge the cache with WP Engine hosting.
*
* @deprecated 3.6.1
* @since 2.6.4
*/
function rocket_clean_wpengine() {
_deprecated_function( __FUNCTION__ . '()', '3.6.1', '\WP_Rocket\ThirdParty\Hostings\WPEngine::clean_wpengine' );
if ( method_exists( 'WpeCommon', 'purge_memcached' ) ) {
WpeCommon::purge_memcached();
}
if ( method_exists( 'WpeCommon', 'purge_varnish_cache' ) ) {
WpeCommon::purge_varnish_cache();
}
}
/**
* Gets WP Engine CDN Domain.
*
* @deprecated 3.6.1
* @since 2.8.6
*
* return string $cdn_domain the WP Engine CDN Domain.
*/
function rocket_get_wp_engine_cdn_domain() {
_deprecated_function( __FUNCTION__ . '()', '3.6.1' );
global $wpe_netdna_domains, $wpe_netdna_domains_secure;
$cdn_domain = '';
$is_ssl = '';
if ( isset( $_SERVER['HTTPS'] ) ) {
$is_ssl = sanitize_text_field( wp_unslash( $_SERVER['HTTPS'] ) );
}
if ( preg_match( '/^[oO][fF]{2}$/', $is_ssl ) ) {
$is_ssl = false; // have seen this!
}
$native_schema = $is_ssl ? 'https' : 'http';
$domains = $wpe_netdna_domains;
// Determine the CDN, if any.
if ( $is_ssl ) {
$domains = $wpe_netdna_domains_secure;
}
$wpengine = WpeCommon::instance();
$cdn_domain = $wpengine->get_cdn_domain( $domains, home_url(), $is_ssl );
if ( ! empty( $cdn_domain ) ) {
$cdn_domain = $native_schema . '://' . $cdn_domain;
}
return $cdn_domain;
}
/**
* Add WP Rocket footprint on Buffer.
*
* @deprecated 3.6.1
* @since 3.3.2
*
* @param string $buffer HTML content.
*
* @return string HTML with WP Rocket footprint.
*/
function rocket_wpengine_add_footprint( $buffer ) {
_deprecated_function( __FUNCTION__ . '()', '3.6.1', '\WP_Rocket\ThirdParty\Hostings\WPEngine::add_footprint' );
if ( ! preg_match( '/<\/html>/i', $buffer ) ) {
return $buffer;
}
$footprint = defined( 'WP_ROCKET_WHITE_LABEL_FOOTPRINT' )
? "\n" . '';
return $buffer . $footprint;
}
/**
* Tell WP what to do when plugin is deactivated.
*
* @since 3.6.3 deprecated
* @since 1.0
*/
function rocket_deactivation() {
_deprecated_function( __FUNCTION__ . '()', '3.6.3', '\WP_Rocket\Engine\Deactivation\Deactivation::deactivate_plugin' );
global $is_apache;
$filesystem = rocket_direct_filesystem();
$wp_cache = new WPCache( $filesystem );
if ( ! isset( $_GET['rocket_nonce'] ) || ! wp_verify_nonce( sanitize_key( $_GET['rocket_nonce'] ), 'force_deactivation' ) ) {
$causes = [];
// .htaccess problem.
if ( $is_apache && ! $filesystem->is_writable( get_home_path() . '.htaccess' ) ) {
$causes[] = 'htaccess';
}
// wp-config problem.
if (
! $wp_cache->find_wpconfig_path()
&&
// This filter is documented in inc/Engine/Cache/WPCache.php.
(bool) apply_filters( 'rocket_set_wp_cache_constant', true )
) {
$causes[] = 'wpconfig';
}
if ( count( $causes ) ) {
set_transient( get_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.
$wp_cache->set_wp_cache_constant( 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',
[
'blocking' => false,
]
);
// Delete transients.
delete_transient( 'rocket_check_licence_30' );
delete_transient( 'rocket_check_licence_1' );
delete_site_transient( 'update_wprocket_response' );
// Unschedule WP Cron events.
wp_clear_scheduled_hook( 'rocket_facebook_tracking_cache_update' );
wp_clear_scheduled_hook( 'rocket_google_tracking_cache_update' );
wp_clear_scheduled_hook( 'rocket_cache_dir_size_check' );
/**
* WP Rocket deactivation.
*
* @since 3.1.5
* @author Grégory Viguier
*/
do_action( 'rocket_deactivation' );
( new Capabilities_Subscriber() )->remove_rocket_capabilities();
}
/**
* Tell WP what to do when plugin is activated.
*
* @since 3.6.3
* @since 1.1.0
*/
function rocket_activation() {
_deprecated_function( __FUNCTION__ . '()', '3.6.3', '\WP_Rocket\Engine\Activation\Activation::deactivate_plugin' );
( new Capabilities_Subscriber() )->add_rocket_capabilities();
$filesystem = rocket_direct_filesystem();
$wp_cache = new WPCache( $filesystem );
// 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 . 'formatting.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.
$wp_cache->set_wp_cache_constant( 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( new AdvancedCache( WP_ROCKET_PATH . 'views/cache/', $filesystem ) );
/**
* WP Rocket activation.
*
* @since 3.1.5
* @author Grégory Viguier
*/
do_action( 'rocket_activation' );
// Update customer key & licence.
wp_remote_get(
WP_ROCKET_WEB_API . 'activate-licence.php',
[
'blocking' => false,
]
);
wp_remote_get(
home_url(),
[
'timeout' => 0.01,
'blocking' => false,
'user-agent' => 'WP Rocket/Homepage Preload',
'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
]
);
}
/**
* Excludes Divi's Salvatorre script from JS minification
*
* Exclude it to prevent an error after minification/concatenation
*
* @since 3.6.3 deprecated
* @since 2.9
* @author Remy Perona
*
* @param Array $excluded_js An array of JS paths to be excluded.
* @return Array the updated array of paths
*/
function rocket_exclude_js_divi( $excluded_js ) {
_deprecated_function( __FUNCTION__ . '()', '3.6.3', '\WP_Rocket\ThirdParty\Themes\Divi::exclude_js' );
if ( defined( 'ET_BUILDER_URI' ) ) {
$excluded_js[] = str_replace( home_url(), '', ET_BUILDER_URI ) . '/scripts/salvattore.min.js';
}
return $excluded_js;
}
/**
* Changes the text on the Varnish one-click block.
*
* @since 3.1
*
* @param array $settings Field settings data.
*
* @return array modified field settings data.
*/
function rocket_o2switch_varnish_field( $settings ) {
_deprecated_function( __FUNCTION__ . '()', '3.6.3', '\WP_Rocket\ThirdParty\Hostings\O2Switch::varnish_addon_title' );
// Translators: %s = Hosting name.
$settings['varnish_auto_purge']['title'] = sprintf( __( 'Your site is hosted on %s, we have enabled Varnish auto-purge for compatibility.', 'rocket' ), 'o2switch' );
return $settings;
}
/**
* Purge all the domain.
*
* @since 3.1
*
* @param string $root The path of home cache file.
* @param string $lang The current lang to purge.
* @param string $url The home url.
*/
function rocket_o2switch_varnish_clean_domain( $root, $lang, $url ) {
_deprecated_function( __FUNCTION__ . '()', '3.6.3', '\WP_Rocket\ThirdParty\Hostings\O2Switch::varnish_clean_domain' );
rocket_o2switch_varnish_http_purge( trailingslashit( $url ) . '?vregex' );
}
/**
* Purge a specific page.
*
* @since 3.1
*
* @param string $url The url to purge.
*/
function rocket_o2switch_varnish_clean_file( $url ) {
_deprecated_function( __FUNCTION__ . '()', '3.6.3', '\WP_Rocket\ThirdParty\Hostings\O2Switch::varnish_clean_file' );
rocket_o2switch_varnish_http_purge( trailingslashit( $url ) . '?vregex' );
}
/**
* Purge the homepage and its pagination.
*
* @since 3.1
*
* @param string $root The path of home cache file.
* @param string $lang The current lang to purge.
*/
function rocket_o2switch_varnish_clean_home( $root, $lang ) {
_deprecated_function( __FUNCTION__ . '()', '3.6.3', '\WP_Rocket\ThirdParty\Hostings\O2Switch::varnish_clean_home' );
$home_url = trailingslashit( get_rocket_i18n_home_url( $lang ) );
$home_pagination_url = $home_url . trailingslashit( $GLOBALS['wp_rewrite']->pagination_base ) . '?vregex';
rocket_o2switch_varnish_http_purge( $home_url );
rocket_o2switch_varnish_http_purge( $home_pagination_url );
}
/**
* Send data to Varnish.
*
* @since 3.1
*
* @param string $url The URL to purge.
*/
function rocket_o2switch_varnish_http_purge( $url ) {
_deprecated_function( __FUNCTION__ . '()', '3.6.3', '\WP_Rocket\ThirdParty\Hostings\O2Switch::varnish_http_purge' );
$parse_url = get_rocket_parse_url( $url );
// This filter is documented in inc/functions/varnish.php.
$headers = apply_filters(
'rocket_varnish_purge_headers',
[
/**
* Filters the host value passed in the request headers
*
* @since 2.8.15
* @param string The host
*/
'host' => apply_filters( 'rocket_varnish_purge_request_host', $parse_url['host'] ),
'X-VC-Purge-Key' => O2SWITCH_VARNISH_PURGE_KEY,
]
);
if ( 'vregex' === $parse_url['query'] ) {
$headers['X-Purge-Regex'] = '.*';
}
/**
* Filter the Varnish IP to call
*
* @since 2.6.8
*
* @param string The Varnish IP
*/
$varnish_ip = apply_filters( 'rocket_varnish_ip', [] );
if ( defined( 'WP_ROCKET_VARNISH_IP' ) && ! $varnish_ip ) {
$varnish_ip = WP_ROCKET_VARNISH_IP;
}
/**
* Filter the HTTP protocol (scheme)
*
* @since 2.7.3
*
* @param string The HTTP protocol
*/
$scheme = apply_filters( 'rocket_varnish_http_purge_scheme', $parse_url['scheme'] );
$parse_url['host'] = ( $varnish_ip ) ? $varnish_ip : $parse_url['host'];
$purgeme = $scheme . '://' . $parse_url['host'] . $parse_url['path'];
wp_remote_request(
$purgeme,
[
'method' => 'PURGE',
'blocking' => false,
'redirection' => 0,
'headers' => $headers,
]
);
}
/**
* Remove expiration on HTML to prevent issue with Varnish cache.
*
* @since 3.1
*
* @param string $rules htaccess rules.
*
* @return string Updated htaccess rules.
*/
function rocket_o2switch_remove_html_expire( $rules ) {
_deprecated_function( __FUNCTION__ . '()', '3.6.3', '\WP_Rocket\ThirdParty\Hostings\O2Switch::remove_html_expire' );
$rules = preg_replace( '@\s*#\s*Your document html@', '', $rules );
$rules = preg_replace( '@\s*ExpiresByType text/html\s*"access plus \d+ (seconds|minutes|hour|week|month|year)"@', '', $rules );
return $rules;
}
بایگانیهای تیشرت طرح 7 - تجهیزات ملی پوش.
بایگانیهای تیشرت طرح 7 - تجهیزات ملی پوش.