<?php if (!defined('ABSPATH')) { exit; } class WC_Action_Queue implements WC_Queue_Interface { public function add($hook, $args = array(), $group = '') { return $this->schedule_single(time(), $hook, $args, $group); } public function schedule_single($timestamp, $hook, $args = array(), $group = '') { return as_schedule_single_action($timestamp, $hook, $args, $group); } public function schedule_recurring($timestamp, $interval_in_seconds, $hook, $args = array(), $group = '') { return as_schedule_recurring_action($timestamp, $interval_in_seconds, $hook, $args, $group); } public function schedule_cron($timestamp, $cron_schedule, $hook, $args = array(), $group = '') { return as_schedule_cron_action($timestamp, $cron_schedule, $hook, $args, $group); } public function cancel($hook, $args = array(), $group = '') { as_unschedule_action($hook, $args, $group); } public function cancel_all($hook, $args = array(), $group = '') { as_unschedule_all_actions($hook, $args, $group); } public function get_next($hook, $args = null, $group = '') { $next_timestamp = as_next_scheduled_action($hook, $args, $group); if (is_numeric($next_timestamp)) { return new WC_DateTime("@{$next_timestamp}", new DateTimeZone('UTC')); } return null; } public function search($args = array(), $return_format = OBJECT) { return as_get_scheduled_actions($args, $return_format); } }