Sindbad~EG File Manager
<?php
namespace WebpConverter\Conversion\Cron;
use WebpConverter\Conversion\Format\FormatFactory;
use WebpConverter\HookableInterface;
use WebpConverter\PluginData;
use WebpConverter\Repository\TokenRepository;
use WebpConverter\Settings\Option\ExtraFeaturesOption;
/**
* Adds cron event that converts images.
*/
class CronEventGenerator implements HookableInterface {
const CRON_PATHS_ACTION = 'webpc_cron_paths';
/**
* @var PluginData
*/
private $plugin_data;
/**
* @var CronInitiator
*/
private $cron_initiator;
public function __construct(
PluginData $plugin_data,
TokenRepository $token_repository,
FormatFactory $format_factory,
?CronInitiator $cron_initiator = null
) {
$this->plugin_data = $plugin_data;
$this->cron_initiator = $cron_initiator ?: new CronInitiator( $plugin_data, $token_repository, $format_factory );
}
/**
* {@inheritdoc}
*/
public function init_hooks() {
add_action( 'init', [ $this, 'add_cron_event' ] );
add_action( self::CRON_PATHS_ACTION, [ $this, 'get_paths_to_conversion' ] );
}
/**
* Initializes cron event to convert all images.
*
* @return void
* @internal
*/
public function add_cron_event() {
if ( wp_next_scheduled( self::CRON_PATHS_ACTION )
|| ! ( $settings = $this->plugin_data->get_plugin_settings() )
|| ! in_array( ExtraFeaturesOption::OPTION_VALUE_CRON_ENABLED, $settings[ ExtraFeaturesOption::OPTION_NAME ] ) ) {
return;
}
wp_schedule_event( time(), CronSchedulesGenerator::CRON_PATHS_SCHEDULE, self::CRON_PATHS_ACTION );
}
/**
* @return void
* @internal
*/
public function get_paths_to_conversion() {
$this->cron_initiator->refresh_paths_to_conversion();
$this->cron_initiator->init_conversion();
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists