oont-contents/plugins/mailpoet/lib/Automation/Engine/Control/ActionScheduler.php
2025-02-08 15:10:23 +01:00

35 lines
1.1 KiB
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Automation\Engine\Control;
if (!defined('ABSPATH')) exit;
use ActionScheduler_Action;
class ActionScheduler {
private const GROUP_ID = 'mailpoet-automation';
public function enqueue(string $hook, array $args = []): int {
$result = as_enqueue_async_action($hook, $args, self::GROUP_ID);
return is_int($result) ? $result : 0;
}
public function schedule(int $timestamp, string $hook, array $args = []): int {
$result = as_schedule_single_action($timestamp, $hook, $args, self::GROUP_ID);
return is_int($result) ? $result : 0;
}
public function hasScheduledAction(string $hook, array $args = []): bool {
return as_has_scheduled_action($hook, $args, self::GROUP_ID);
}
/** @return ActionScheduler_Action[] */
public function getScheduledActions(array $args = []): array {
return as_get_scheduled_actions(array_merge($args, ['group' => self::GROUP_ID]));
}
public function unscheduleAction(string $hook, array $args = []): ?int {
return as_unschedule_action($hook, $args, self::GROUP_ID);
}
}