Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
perpending
/
wp-content
/
plugins
/
seo-by-rank-math
/
includes
/
helpers
:
class-schedule.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Schedule helpers. * * @since 1.0.9 * @package RankMath * @subpackage RankMath\Helpers * @author Rank Math <support@rankmath.com> */ namespace RankMath\Helpers; use RankMath\Helper; defined( 'ABSPATH' ) || exit; /** * Schedule class. */ class Schedule { /** * Schedule a recurring action * * @param int $timestamp When the first instance of the job will run. * @param int $interval_in_seconds How long to wait between runs. * @param string $hook The hook to trigger. * @param array $args Arguments to pass when the hook triggers. * @param string $group The group to assign this job to. * @param bool $unique Whether the action should be unique. It will not be scheduled if another pending or running action has the same hook and group parameters. * @param int $priority Lower values take precedence over higher values. Defaults to 10, with acceptable values falling in the range 0-255. * * @return int The action ID. Zero if there was an error scheduling the action. */ public static function recurring_action( $timestamp, $interval_in_seconds, $hook, $args = [], $group = '', $unique = false, $priority = 10 ) { $id = as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook, $args, $group, $unique, $priority ); if ( ! $id ) { self::notify( esc_html__( 'There was an issue scheduling the async action required for Analytics; if the problem persists, please contact our support team.', 'rank-math' ), 'recurring' ); } return $id; } /** * Schedule an action to run one time * * @param int $timestamp When the job will run. * @param string $hook The hook to trigger. * @param array $args Arguments to pass when the hook triggers. * @param string $group The group to assign this job to. * @param bool $unique Whether the action should be unique. It will not be scheduled if another pending or running action has the same hook and group parameters. * @param int $priority Lower values take precedence over higher values. Defaults to 10, with acceptable values falling in the range 0-255. * * @return int The action ID. Zero if there was an error scheduling the action. */ public static function single_action( $timestamp, $hook, $args = [], $group = '', $unique = false, $priority = 10 ) { $id = as_schedule_single_action( $timestamp, $hook, $args, $group, $unique, $priority ); if ( ! $id ) { self::notify( esc_html__( 'There was an issue scheduling a single action required for Analytics; if the problem persists, please contact our support team.', 'rank-math' ), 'schedule' ); } return $id; } /** * Cancel the next occurrence of a scheduled action. * * While only the next instance of a recurring or cron action is unscheduled by this method, that will also prevent * all future instances of that recurring or cron action from being run. Recurring and cron actions are scheduled in * a sequence instead of all being scheduled at once. Each successive occurrence of a recurring action is scheduled * only after the former action is run. If the next instance is never run, because it's unscheduled by this function, * then the following instance will never be scheduled (or exist), which is effectively the same as being unscheduled * by this method also. * * @param string $hook The hook that the job will trigger. * @param array $args Args that would have been passed to the job. * @param string $group The group the job is assigned to. * * @return int|null The scheduled action ID if a scheduled action was found, or null if no matching action found. */ public static function unschedule_action( $hook, $args = [], $group = '' ) { $id = as_unschedule_action( $hook, $args, $group ); if ( ! $id ) { self::notify( esc_html__( 'There was an issue scheduling the recurring action required for Analytics; if the problem persists, please contact our support team.', 'rank-math' ), 'unschedule' ); } return $id; } /** * Enqueue an action to run one time, as soon as possible * * @param string $hook The hook to trigger. * @param array $args Arguments to pass when the hook triggers. * @param string $group The group to assign this job to. * @param bool $unique Whether the action should be unique. It will not be scheduled if another pending or running action has the same hook and group parameters. * @param int $priority Lower values take precedence over higher values. Defaults to 10, with acceptable values falling in the range 0-255. * * @return int The action ID. Zero if there was an error scheduling the action. */ public static function async_action( $hook, $args = [], $group = '', $unique = false, $priority = 10 ) { $id = as_enqueue_async_action( $hook, $args, $group, $unique, $priority ); if ( ! $id ) { self::notify( esc_html__( 'There was an issue unscheduling a background action related to Analytics; if the problem persists, please contact our support team.', 'rank-math' ), 'async' ); } return $id; } /** * Notify * * @param string $message Message to display. * @param string $type Type of notification. */ public static function notify( $message = '', $type = '' ) { Helper::add_notification( $message, [ 'type' => 'error', 'id' => 'rank_math_action_scheduler_' . $type, 'screen' => 'rank-math_page_rank-math-analytics', ] ); rank_math()->notification->update_storage(); } }