File "class-cache-preload-async.php"
Full Path: /home/theinspectionboy/public_html/suffolk/includes/class-cache-preload-async.php
File size: 1.47 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Begin Cache Preload via Async processing.
*
* @link https://ewww.io/swis/
* @package SWIS_Performance
*/
namespace SWIS;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* The (grand)parent \SWIS\Async_Request class file.
*/
require_once( SWIS_PLUGIN_PATH . 'vendor/wp-async-request.php' );
/**
* Handles an async request to begin preloading.
*
* Dual-purpose handler that tackles preloading for the entire site, and also for a given URL.
*
* @see \SWIS\Async_Request
*/
class Cache_Preload_Async extends Async_Request {
/**
* The action name used to trigger this class extension.
*
* @access protected
* @var string $action
*/
protected $action = 'swis_cache_preload_async';
/**
* Handles the preload async request.
*
* Called via a POST request to start the preloader.
*/
protected function handle() {
session_write_close();
swis()->settings->debug_message( '<b>' . __METHOD__ . '()</b>' );
check_ajax_referer( $this->identifier, 'nonce' );
swis()->settings->debug_message( 'next up, getting URLs' );
if ( ! empty( $_POST['swis_preload_url'] ) ) {
swis()->cache_preload_background->push_to_queue( sanitize_text_field( wp_unslash( $_POST['swis_preload_url'] ) ) );
set_transient( 'swis_cache_preload_total', (int) swis()->cache_preload_background->count_queue(), DAY_IN_SECONDS );
swis()->cache_preload_background->dispatch();
} else {
swis()->cache_preload->get_urls();
swis()->cache_preload_background->dispatch();
}
}
}