api
2 days ago
background
2 days ago
backups
2 days ago
bulk
2 days ago
cache
2 days ago
cli
2 days ago
external
2 days ago
frontend
2 days ago
integrations
2 days ago
lazy-load
2 days ago
media
2 days ago
media-library
2 days ago
membership
2 days ago
modules
2 days ago
parser
2 days ago
photon
2 days ago
png2jpg
2 days ago
product-analytics
2 days ago
rating-notification
2 days ago
resize
2 days ago
security
2 days ago
smush
2 days ago
srcset
2 days ago
stats
2 days ago
threads
2 days ago
transform
2 days ago
class-abstract-settings-dto.php
2 days ago
class-activity-log-controller.php
2 days ago
class-animated-status-controller.php
2 days ago
class-array-utils.php
2 days ago
class-attachment-id-list.php
2 days ago
class-backup-size.php
2 days ago
class-configs.php
2 days ago
class-controller.php
2 days ago
class-core.php
2 days ago
class-cron-controller.php
2 days ago
class-deprecated-hooks.php
2 days ago
class-error-handler.php
2 days ago
class-file-system.php
2 days ago
class-file-utils.php
2 days ago
class-format-utils.php
2 days ago
class-helper.php
2 days ago
class-hub-connector.php
2 days ago
class-installer.php
2 days ago
class-keyword-exclusions.php
2 days ago
class-modules.php
2 days ago
class-multisite-utils.php
2 days ago
class-optimization-controller.php
2 days ago
class-optimizer.php
2 days ago
class-plugin-settings-watcher.php
2 days ago
class-rest.php
2 days ago
class-server-utils.php
2 days ago
class-settings-controller.php
2 days ago
class-settings-dto.php
2 days ago
class-settings-sanitizer.php
2 days ago
class-settings.php
2 days ago
class-shim.php
2 days ago
class-smush-file.php
2 days ago
class-stats.php
2 days ago
class-string-utils.php
2 days ago
class-time-utils.php
2 days ago
class-timer.php
2 days ago
class-upload-dir.php
2 days ago
class-url-utils.php
2 days ago
class-urls-exclusions.php
2 days ago
class-wp-query-utils.php
2 days ago
wp-compat.php
2 days ago
class-cron-controller.php
56 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Smush\Core; |
| 4 | |
| 5 | class Cron_Controller extends Controller { |
| 6 | private static $cron_hook = 'wp_smush_daily_cron'; |
| 7 | |
| 8 | /** |
| 9 | * Static instance |
| 10 | * |
| 11 | * @var self |
| 12 | */ |
| 13 | private static $instance; |
| 14 | |
| 15 | /** |
| 16 | * Static instance getter |
| 17 | */ |
| 18 | public static function get_instance() { |
| 19 | if ( empty( self::$instance ) ) { |
| 20 | self::$instance = new self(); |
| 21 | } |
| 22 | |
| 23 | return self::$instance; |
| 24 | } |
| 25 | |
| 26 | public function __construct() { |
| 27 | $this->register_action( 'admin_init', array( $this, 'schedule_cron' ) ); |
| 28 | } |
| 29 | |
| 30 | /** |
| 31 | * Schedule cron |
| 32 | */ |
| 33 | public function schedule_cron() { |
| 34 | if ( ! wp_next_scheduled( self::$cron_hook ) ) { |
| 35 | wp_schedule_event( time(), 'daily', self::$cron_hook ); |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | /** |
| 40 | * Unschedule cron |
| 41 | */ |
| 42 | public function unschedule_cron() { |
| 43 | wp_clear_scheduled_hook( self::$cron_hook ); |
| 44 | } |
| 45 | |
| 46 | /** |
| 47 | * Get cron_hook. |
| 48 | * |
| 49 | * @return string |
| 50 | */ |
| 51 | public static function get_cron_hook() { |
| 52 | return self::$cron_hook; |
| 53 | } |
| 54 | |
| 55 | } |
| 56 |