60, 'display' => did_action( 'init' ) ? __( 'Every minute (Send4)', 'send4' ) : 'Every minute (Send4)', ); return $schedules; } /** * Schedule the event if it is not already scheduled. * * @return void */ public static function ensure_scheduled() { if ( ! wp_next_scheduled( self::HOOK ) ) { wp_schedule_event( time() + 60, self::SCHEDULE, self::HOOK ); } } /** * Schedule the event only when there is something for it to deliver. * * The safety net for the every-minute event, which is otherwise scheduled * only by an enqueue or a requeue and drops itself once the queue is empty. * * @return void */ public static function ensure_scheduled_if_pending() { if ( Send4_Queue::table_exists() && Send4_Queue::has_pending() ) { self::ensure_scheduled(); } } /** * Remove the event. * * @return void */ public static function unschedule() { $timestamp = wp_next_scheduled( self::HOOK ); while ( false !== $timestamp ) { wp_unschedule_event( $timestamp, self::HOOK ); $timestamp = wp_next_scheduled( self::HOOK ); } } /** * Cron callback. * * @return void */ public static function run() { Send4_Delivery::process_queue(); } }