oont-contents/plugins/wp-rocket/inc/deprecated/3.2.php
2025-02-08 15:10:23 +01:00

402 lines
12 KiB
PHP

<?php
defined( 'ABSPATH' ) || exit;
/**
* Add a message about Imagify on the "Upload New Media" screen and WP Rocket options page.
*
* @since 2.7
* @deprecated 3.2
*/
function rocket_imagify_notice() {
_deprecated_function( __FUNCTION__, '3.2' );
$current_screen = get_current_screen();
// Add the notice only on the "WP Rocket" settings, "Media Library" & "Upload New Media" screens.
if ( 'admin_notices' === current_filter() && ( isset( $current_screen ) && 'settings_page_wprocket' !== $current_screen->base ) ) {
return;
}
$boxes = get_user_meta( $GLOBALS['current_user']->ID, 'rocket_boxes', true );
if ( defined( 'IMAGIFY_VERSION' ) || in_array( __FUNCTION__, (array) $boxes, true ) || 1 === get_option( 'wp_rocket_dismiss_imagify_notice' ) || ! current_user_can( 'manage_options' ) ) {
return;
}
$imagify_plugin = 'imagify/imagify.php';
$is_imagify_installed = rocket_is_plugin_installed( $imagify_plugin );
$action_url = $is_imagify_installed ?
rocket_get_plugin_activation_link( $imagify_plugin )
:
wp_nonce_url( add_query_arg(
array(
'action' => 'install-plugin',
'plugin' => 'imagify',
),
admin_url( 'update.php' )
), 'install-plugin_imagify' );
$details_url = add_query_arg(
array(
'tab' => 'plugin-information',
'plugin' => 'imagify',
'TB_iframe' => true,
'width' => 722,
'height' => 949,
),
admin_url( 'plugin-install.php' )
);
$classes = $is_imagify_installed ? '' : ' install-now';
$cta_txt = $is_imagify_installed ? esc_html__( 'Activate Imagify', 'rocket' ) : esc_html__( 'Install Imagify for Free', 'rocket' );
$dismiss_url = wp_nonce_url(
admin_url( 'admin-post.php?action=rocket_ignore&box=' . __FUNCTION__ ),
'rocket_ignore_' . __FUNCTION__
);
?>
<div id="plugin-filter" class="updated plugin-card plugin-card-imagify rkt-imagify-notice">
<a href="<?php echo $dismiss_url; ?>" class="rkt-cross"><span class="dashicons dashicons-no"></span></a>
<p class="rkt-imagify-logo">
<img src="<?php echo WP_ROCKET_ASSETS_IMG_URL; ?>logo-imagify.png" srcset="<?php echo WP_ROCKET_ASSETS_IMG_URL; ?>logo-imagify.svg 2x" alt="Imagify" width="150" height="18">
</p>
<p class="rkt-imagify-msg">
<?php _e( 'Speed up your website and boost your SEO by reducing image file sizes without losing quality with Imagify.', 'rocket' ); ?>
</p>
<p class="rkt-imagify-cta">
<a data-slug="imagify" href="<?php echo $action_url; ?>" class="button button-primary<?php echo $classes; ?>"><?php echo $cta_txt; ?></a>
<?php if ( ! $is_imagify_installed ) : ?>
<br><a data-slug="imagify" data-name="Imagify Image Optimizer" class="thickbox open-plugin-details-modal" href="<?php echo $details_url; ?>"><?php _e( 'More details', 'rocket' ); ?></a>
<?php endif; ?>
</p>
</div>
<?php
}
if ( ! function_exists( 'run_rocket_preload_cache' ) ) :
/**
* Launches the preload
*
* @since 2.8
* @author Remy Perona
* @deprecated 3.2
*
* @param string $spider The spider name.
* @param bool $do_sitemap_preload Do the sitemap preload.
*
* @return void
*/
function run_rocket_preload_cache( $spider, $do_sitemap_preload = true ) {
_deprecated_function( __FUNCTION__, '3.2' );
// Preload cache.
run_rocket_bot( $spider );
if ( $do_sitemap_preload & get_rocket_option( 'sitemap_preload', false ) ) {
$rocket_background_process = $GLOBALS['rocket_sitemap_background_process'];
if ( method_exists( $rocket_background_process, 'cancel_process' ) ) {
$rocket_background_process->cancel_process();
}
delete_transient( 'rocket_sitemap_preload_running' );
delete_transient( 'rocket_sitemap_preload_complete' );
run_rocket_sitemap_preload();
}
}
endif;
if ( ! function_exists( 'do_rocket_bot_cache_json' ) ) :
/**
* Run WP Rocket Bot when a post is added, updated or deleted
*
* @since 1.3.2
* @deprecated 3.2
*/
function do_rocket_bot_cache_json() {
_deprecated_function( __FUNCTION__, '3.2' );
return false;
}
endif;
if ( ! function_exists( 'rocket_process_sitemap' ) ) {
/**
* Processes the sitemaps recursively
*
* @since 2.8
* @author Remy Perona
*
* @param string $sitemap_url URL of the sitemap.
* @param array $urls An array of URLs.
* @return array Empty array or array containing URLs
*/
function rocket_process_sitemap( $sitemap_url, $urls = array() ) {
_deprecated_function( __FUNCTION__, '3.2' );
$tmp_urls = array();
/**
* Filters the arguments for the sitemap preload request
*
* @since 2.10.8
* @author Remy Perona
*
* @param array $args Arguments for the request.
*/
$args = apply_filters( 'rocket_preload_sitemap_request_args', array(
'user-agent' => 'WP Rocket/Sitemaps',
'sslverify' => apply_filters( 'https_local_ssl_verify', true ),
) );
$sitemap = wp_remote_get( esc_url( $sitemap_url ), $args );
if ( is_wp_error( $sitemap ) ) {
return array();
}
$xml_data = wp_remote_retrieve_body( $sitemap );
if ( empty( $xml_data ) ) {
return array();
}
libxml_use_internal_errors( true );
$xml = simplexml_load_string( $xml_data );
if ( false === $xml ) {
libxml_clear_errors();
return array();
}
$url_count = count( $xml->url );
if ( $url_count > 0 ) {
for ( $i = 0; $i < $url_count; $i++ ) {
$page_url = (string) $xml->url[ $i ]->loc;
$tmp_urls[] = $page_url;
}
} else {
// Sub sitemap?
$sitemap_children = count( $xml->sitemap );
if ( $sitemap_children > 0 ) {
for ( $i = 0; $i < $sitemap_children; $i++ ) {
$sub_sitemap_url = (string) $xml->sitemap[ $i ]->loc;
$urls = rocket_process_sitemap( $sub_sitemap_url, $urls );
}
}
}
$urls = array_merge( $urls, $tmp_urls );
return $urls;
}
}
if ( ! function_exists( 'rocket_sitemap_preload_complete' ) ) {
/**
* This notice is displayed after the sitemap preload is complete
*
* @since 2.11
* @deprecated 3.2
* @author Remy Perona
*/
function rocket_sitemap_preload_complete() {
_deprecated_function( __FUNCTION__, '3.2' );
$screen = get_current_screen();
/** This filter is documented in inc/admin-bar.php */
if ( ! current_user_can( apply_filters( 'rocket_capacity', 'manage_options' ) ) ) {
return;
}
if ( 'settings_page_wprocket' !== $screen->id ) {
return;
}
$result = get_transient( 'rocket_sitemap_preload_complete' );
if ( false === $result ) {
return;
}
delete_transient( 'rocket_sitemap_preload_complete' );
rocket_notice_html( array(
// translators: %d is the number of pages preloaded.
'message' => sprintf( __( 'Sitemap preload: %d pages have been cached.', 'rocket' ), $result ),
) );
}
}
if ( ! function_exists( 'rocket_sitemap_preload_running' ) ) {
/**
* This notice is displayed when the sitemap preload is running
*
* @since 2.11
* @deprecated 3.2
* @author Remy Perona
*/
function rocket_sitemap_preload_running() {
_deprecated_function( __FUNCTION__, '3.2' );
$screen = get_current_screen();
// This filter is documented in inc/admin-bar.php.
if ( ! current_user_can( apply_filters( 'rocket_capacity', 'manage_options' ) ) ) {
return;
}
if ( 'settings_page_wprocket' !== $screen->id ) {
return;
}
$running = get_transient( 'rocket_sitemap_preload_running' );
if ( false === $running ) {
return;
}
rocket_notice_html( array(
// translators: %d = Number of pages preloaded.
'message' => sprintf( __( 'Sitemap preload: %d uncached pages have now been preloaded. (refresh to see progress)', 'rocket' ), $running ),
) );
}
}
if ( ! function_exists( 'run_rocket_bot_after_clean_post' ) ) {
/**
* Actions to be done after the purge cache files of a post
* By Default, this hook call the WP Rocket Bot (cache json)
*
* @deprecated 3.2
* @since 1.3.0
*
* @param object $post The post object.
* @param array $purge_urls An array of URLs to clean.
* @param string $lang The language to clean.
*/
function run_rocket_bot_after_clean_post( $post, $purge_urls, $lang ) {
_deprecated_function( __FUNCTION__, '3.2' );
// Run robot only if post is published.
if ( 'publish' !== $post->post_status ) {
return false;
}
// Add Homepage URL to $purge_urls for bot crawl.
array_push( $purge_urls, get_rocket_i18n_home_url( $lang ) );
// Add default WordPress feeds (posts & comments).
array_push( $purge_urls, get_feed_link() );
array_push( $purge_urls, get_feed_link( 'comments_' ) );
// Get the author page.
$purge_author = array( get_author_posts_url( $post->post_author ) );
// Get all dates archive page.
$purge_dates = get_rocket_post_dates_urls( $post->ID );
// Remove dates archives page and author page to preload cache.
$purge_urls = array_diff( $purge_urls, $purge_dates, $purge_author );
// Create json file and run WP Rocket Bot.
$json_encode_urls = '["' . implode( '","', array_filter( $purge_urls ) ) . '"]';
if ( rocket_put_content( WP_ROCKET_PATH . 'cache.json', $json_encode_urls ) ) {
global $do_rocket_bot_cache_json;
$do_rocket_bot_cache_json = true;
}
}
}
if ( ! function_exists( 'run_rocket_bot_after_clean_term' ) ) {
/**
* Actions to be done after the purge cache files of a term
* By Default, this hook call the WP Rocket Bot (cache json)
*
* @deprecated 3.2
* @since 2.6.8
*
* @param object $post The post object.
* @param array $purge_urls An array of URLs to clean.
* @param string $lang The language to clean.
*/
function run_rocket_bot_after_clean_term( $post, $purge_urls, $lang ) {
_deprecated_function( __FUNCTION__, '3.2' );
// Add Homepage URL to $purge_urls for bot crawl.
array_push( $purge_urls, get_rocket_i18n_home_url( $lang ) );
// Create json file and run WP Rocket Bot.
$json_encode_urls = '["' . implode( '","', array_filter( $purge_urls ) ) . '"]';
if ( rocket_put_content( WP_ROCKET_PATH . 'cache.json', $json_encode_urls ) ) {
global $do_rocket_bot_cache_json;
$do_rocket_bot_cache_json = true;
}
}
}
if ( ! function_exists( 'rocket_clean_directory_for_default_language_on_wpml' ) ) {
/**
* Conflict with WPML: Clear the homepage when the "Use directory for default language" option is activated.
*
* @since 2.6.8
* @deprecated 3.2.4
*/
function rocket_clean_directory_for_default_language_on_wpml() {
_deprecated_function( __FUNCTION__, '3.2.4' );
$option = get_option( 'icl_sitepress_settings' );
if ( 1 === $option['language_negotiation_type'] && $option['urls']['directory_for_default_language'] ) {
rocket_clean_files( home_url() );
}
}
}
if ( ! function_exists( 'rocket_fetch_and_cache_busting' ) ) {
/**
* Fetch and save the cache busting file content
*
* @since 2.10
* @deprecated 3.2.5
* @author Remy Perona
*
* @param string $src Original URL of the asset.
* @param array $cache_busting_paths Paths used to generated the cache busting file.
* @param string $abspath_src Absolute path to the asset.
* @param string $current_filter Current filter value.
* @return bool true if successful, false otherwise
*/
function rocket_fetch_and_cache_busting( $src, $cache_busting_paths, $abspath_src, $current_filter ) {
_deprecated_function( __FUNCTION__, '3.2.5' );
if ( wp_is_stream( $src ) ) {
$response = wp_remote_get( $src );
$content = wp_remote_retrieve_body( $response );
} else {
$content = rocket_direct_filesystem()->get_contents( $src );
}
if ( ! $content ) {
return false;
}
if ( 'style_loader_src' === $current_filter ) {
/**
* Filters the Document Root path to use during CSS minification to rewrite paths
*
* @since 2.7
*
* @param string The Document Root path.
*/
$document_root = apply_filters( 'rocket_min_documentRoot', wp_normalize_path( dirname( $_SERVER['SCRIPT_FILENAME'] ) ) );
// Rewrite import/url in CSS content to add the absolute path to the file.
$content = Minify_CSS_UriRewriter::rewrite( $content, dirname( $abspath_src ), $document_root );
}
if ( ! rocket_direct_filesystem()->is_dir( $cache_busting_paths['bustingpath'] ) ) {
rocket_mkdir_p( $cache_busting_paths['bustingpath'] );
}
rocket_mkdir_p( dirname( $cache_busting_paths['filepath'] ) );
return rocket_put_content( $cache_busting_paths['filepath'], $content );
}
}