ns = $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 ( class_exists( 'WPaaS\Plugin' ) ) {
require WP_ROCKET_3RD_PARTY_PATH . 'hosting/godaddy.php';
}
if ( defined( 'O2SWITCH_VARNISH_PURGE_KEY' ) ) {
require WP_ROCKET_3RD_PARTY_PATH . 'hosting/o2switch.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;
}
'radius' => true,
'color' => true,
'width' => true,
'style' => true,
'__experimentalDefaultControls' => array(
'radius' => true,
'color' => true,
'width' => true,
'style' => true
)
)
)
),
'text-columns' => array(
'$schema' => 'https://schemas.wp.org/trunk/block.json',
'apiVersion' => 3,
'name' => 'core/text-columns',
'title' => 'Text Columns (deprecated)',
'icon' => 'columns',
'category' => 'design',
'description' => 'This block is deprecated. Please use the Columns block instead.',
'textdomain' => 'default',
'attributes' => array(
'content' => array(
'type' => 'array',
'source' => 'query',
'selector' => 'p',
'query' => array(
'children' => array(
'type' => 'string',
'source' => 'html'
)
),
'default' => array(
array(
),
array(
)
)
),
'columns' => array(
'type' => 'number',
'default' => 2
),
'width' => array(
'type' => 'string'
)
),
'supports' => array(
'inserter' => false,
'interactivity' => array(
'clientNavigation' => true
)
),
'editorStyle' => 'wp-block-text-columns-editor',
'style' => 'wp-block-text-columns'
),
'verse' => array(
'$schema' => 'https://schemas.wp.org/trunk/block.json',
'apiVersion' => 3,
'name' => 'core/verse',
'title' => 'Verse',
'category' => 'text',
'description' => 'Insert poetry. Use special spacing formats. Or quote song lyrics.',
'keywords' => array(
'poetry',
'poem'
),
'textdomain' => 'default',
'attributes' => array(
'content' => array(
'type' => 'rich-text',
'source' => 'rich-text',
'selector' => 'pre',
'__unstablePreserveWhiteSpace' => true,
'role' => 'content'
),
'textAlign' => array(
'type' => 'string'
)
),
'supports' => array(
'anchor' => true,
'background' => array(
'backgroundImage' => true,
'backgroundSize' => true,
'__experimentalDefaultControls' => array(
'backgroundImage' => true
)
),
'color' => array(
'gradients' => true,
'link' => true,
'__experimentalDefaultControls' => array(
'background' => true,
'text' => true
)
),
'dimensions' => array(
'minHeight' => true,
'__experimentalDefaultControls' => array(
'minHeight' => false
)
),
'typography' => array(
'fontSize' => true,
'__experimentalFontFamily' => true,
'lineHeight' => true,
'__experimentalFontStyle' => true,
'__experimentalFontWeight' => true,
'__experimentalLetterSpacing' => true,
'__experimentalTextTransform' => true,
'__experimentalTextDecoration' => true,
'__experimentalWritingMode' => true,
'__experimentalDefaultControls' => array(
'fontSize' => true
)
),
'spacing' => array(
'margin' => true,
'padding' => true,
'__experimentalDefaultControls' => array(
'margin' => false,
'padding' => false
)
),
'__experimentalBorder' => array(
'radius' => true,
'width' => true,
'color' => true,
'style' => true
),
'interactivity' => array(
'clientNavigation' => true
)
),
'style' => 'wp-block-verse',
'editorStyle' => 'wp-block-verse-editor'
),
'video' => array(
'$schema' => 'https://schemas.wp.org/trunk/block.json',
'apiVersion' => 3,
'name' => 'core/video',
'title' => 'Video',
'category' => 'media',
'description' => 'Embed a video from your media library or upload a new one.',
'keywords' => array(
'movie'
),
'textdomain' => 'default',
'attributes' => array(
'autoplay' => array(
'type' => 'boolean',
'source' => 'attribute',
'selector' => 'video',
'attribute' => 'autoplay'
),
'caption' => array(
'type' => 'rich-text',
'source' => 'rich-text',
'selector' => 'figcaption',
'role' => 'content'
),
'controls' => array(
'type' => 'boolean',
'source' => 'attribute',
'selector' => 'video',
'attribute' => 'controls',
'default' => true
),
'id' => array(
'type' => 'number',
'role' => 'content'
),
'loop' => array(
'type' => 'boolean',
'source' => 'attribute',
'selector' => 'video',
'attribute' => 'loop'
),
'muted' => array(
'type' => 'boolean',
'source' => 'attribute',
'selector' => 'video',
'attribute' => 'muted'
),
'poster' => array(
'type' => 'string',
'source' => 'attribute',
'selector' => 'video',
'attribute' => 'poster'
),
'preload' => array(
'type' => 'string',
'source' => 'attribute',
'selector' => 'video',
'attribute' => 'preload',
'default' => 'metadata'
),
'blob' => array(
'type' => 'string',
'role' => 'local'
),
'src' => array(
'type' => 'string',
'source' => 'attribute',
'selector' => 'video',
'attribute' => 'src',
'role' => 'content'
),
'playsInline' => array(
'type' => 'boolean',
'source' => 'attribute',
'selector' => 'video',
'attribute' => 'playsinline'
),
'tracks' => array(
'role' => 'content',
'type' => 'array',
'items' => array(
'type' => 'object'
),
'default' => array(
)
)
),
'supports' => array(
'anchor' => true,
'align' => true,
'spacing' => array(
'margin' => true,
'padding' => true,
'__experimentalDefaultControls' => array(
'margin' => false,
'padding' => false
)
),
'interactivity' => array(
'clientNavigation' => true
)
),
'editorStyle' => 'wp-block-video-editor',
'style' => 'wp-block-video'
),
'widget-group' => array(
'$schema' => 'https://schemas.wp.org/trunk/block.json',
'apiVersion' => 3,
'name' => 'core/widget-group',
'title' => 'Widget Group',
'category' => 'widgets',
'attributes' => array(
'title' => array(
'type' => 'string'
)
),
'supports' => array(
'html' => false,
'inserter' => true,
'customClassName' => true,
'reusable' => false
),
'editorStyle' => 'wp-block-widget-group-editor',
'style' => 'wp-block-widget-group'
)
);
XML SitemapXML Sitemap Index