AbstractBatchedJob.php
10 months ago
AbstractJob.php
10 months ago
ActionScheduler.php
11 months ago
JobInitializer.php
10 months ago
JobInterface.php
10 months ago
LlmsTxtInjectContentJob.php
10 months ago
NotifyMcpJob.php
11 months ago
ActionScheduler.php
41 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Hostinger\Admin\Jobs; |
| 4 | |
| 5 | defined( 'ABSPATH' ) || exit; |
| 6 | |
| 7 | class ActionScheduler { |
| 8 | |
| 9 | public const STATUS_PENDING = 'pending'; |
| 10 | public const STATUS_COMPLETE = 'complete'; |
| 11 | public const STATUS_FAILED = 'failed'; |
| 12 | |
| 13 | public function get_group(): string { |
| 14 | return defined( 'HOSTINGER_PLUGIN_SETTINGS_OPTION' ) ? HOSTINGER_PLUGIN_SETTINGS_OPTION : 'hostinger_tools'; |
| 15 | } |
| 16 | |
| 17 | public function schedule_single( int $timestamp, string $hook, $args = array() ): int { |
| 18 | if ( ! function_exists( 'as_schedule_single_action' ) ) { |
| 19 | return 0; |
| 20 | } |
| 21 | |
| 22 | return as_schedule_single_action( $timestamp, $hook, $args, $this->get_group() ); |
| 23 | } |
| 24 | |
| 25 | public function schedule_immediate( string $hook, $args = array() ): int { |
| 26 | if ( ! function_exists( 'as_schedule_single_action' ) ) { |
| 27 | return 0; |
| 28 | } |
| 29 | |
| 30 | return as_schedule_single_action( gmdate( 'U' ) - 1, $hook, $args, $this->get_group() ); |
| 31 | } |
| 32 | |
| 33 | public function has_scheduled_action( string $hook, $args = array() ): bool { |
| 34 | if ( ! function_exists( 'as_next_scheduled_action' ) ) { |
| 35 | return false; |
| 36 | } |
| 37 | |
| 38 | return as_next_scheduled_action( $hook, $args, $this->get_group() ) !== false; |
| 39 | } |
| 40 | } |
| 41 |