HEX
Server: Apache/2.4.65 (Ubuntu)
System: Linux ielts-store-v2 6.8.0-1036-gcp #38~22.04.1-Ubuntu SMP Thu Aug 14 01:19:18 UTC 2025 x86_64
User: root (0)
PHP: 7.2.34-54+ubuntu20.04.1+deb.sury.org+1
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/html/ielts-store/wp-content/plugins/automatewoo/admin/views/meta-box-timing.php
<?php

namespace AutomateWoo;

defined( 'ABSPATH' ) || exit;

/**
 * @var Workflow $workflow
 */

$option_base = 'aw_workflow_data[workflow_options]';

// When to Run field.
$when_to_run = new Fields\Select( false );
$when_to_run
	->set_name_base( $option_base )
	->set_name( 'when_to_run' )
	->set_options(
		[
			'immediately' => __( 'Run immediately', 'automatewoo' ),
			'delayed'     => __( 'Delayed', 'automatewoo' ),
			'scheduled'   => __( 'Scheduled', 'automatewoo' ),
			'fixed'       => __( 'Fixed', 'automatewoo' ),
			'datetime'    => __( 'Schedule with a variable', 'automatewoo' ),
		]
	)
	->add_data_attr( 'automatewoo-bind', 'timing' );

// Queue date time field.
$queue_datetime = new Fields\Text_Area();
$queue_datetime
	->set_rows( 3 )
	->set_name_base( $option_base )
	->set_name( 'queue_datetime' )
	->add_classes( 'automatewoo-field--monospace' )
	->add_extra_attr( 'spellcheck', 'false' )
	->set_placeholder( __( "e.g. {{ subscription.next_payment_date | modify: '-1 day' }}", 'automatewoo' ) );

// Scheduled time field.
$options         = [];
$minute_interval = 15;
for ( $hours = 0; $hours < 24; $hours ++ ) {
	for ( $min = 0; $min < 60 / $minute_interval; $min ++ ) {
		$options[] = zeroise( $hours, 2 ) . ':' . zeroise( $min * $minute_interval, 2 );
	}
}

$scheduled_time = new Fields\Select( false );
$scheduled_time
	->set_name_base( $option_base )
	->set_default( '09:00' )
	->set_name( 'scheduled_time' )
	->set_options( array_combine( $options, $options ) );

// Scheduled Day field.
$options = [];
for ( $day = 1; $day <= 7; $day ++ ) {
	$options[ $day ] = Format::weekday( $day );
}

$scheduled_day = new Fields\Select( false );
$scheduled_day
	->set_name_base( $option_base )
	->set_name( 'scheduled_day' )
	->set_placeholder( __( '[Any day]', 'automatewoo' ) )
	->set_multiple()
	->set_options( $options );

// Run delay fields.
$run_delay_value = new Fields\Number();
$run_delay_value
	->set_name_base( $option_base )
	->set_name( 'run_delay_value' )
	->set_min( '0' )
	->add_extra_attr( 'step', 'any' );

$run_delay_unit = new Fields\Select( false );
$run_delay_unit
	->set_name_base( $option_base )
	->set_name( 'run_delay_unit' )
	->set_options(
		[
			'h'     => __( 'Hours', 'automatewoo' ),
			'm'     => __( 'Minutes', 'automatewoo' ),
			'd'     => __( 'Days', 'automatewoo' ),
			'w'     => __( 'Weeks', 'automatewoo' ),
			'month' => __( 'Months', 'automatewoo' ),
		]
	);

// Date/time fields.
$fixed_date = new Fields\Date();
$fixed_date
	->set_name_base( $option_base )
	->set_name( 'fixed_date' );

$fixed_time = new Fields\Time();
$fixed_time->set_name_base( $option_base )
	->set_name( 'fixed_time' )
	->set_show_24hr_note( false );

?>
<table class="automatewoo-table">
	<tr class="automatewoo-table__row">
		<td class="automatewoo-table__col">
			<label class="automatewoo-label">
				<?php
				esc_html_e( 'Timing', 'automatewoo' );
				echo Admin::help_link( Admin::get_docs_link( 'timing', 'workflow-edit' ) ); // phpcs:ignore WordPress.Security.EscapeOutput
				?>
			</label>

			<?php $when_to_run->render( $workflow ? $workflow->get_timing_type() : '' ); ?>
		</td>
	</tr>

	<tr class="automatewoo-table__row" data-automatewoo-show="timing=datetime">
		<td class="automatewoo-table__col">
			<label class="automatewoo-label"><?php esc_html_e( 'Variable', 'automatewoo' ); ?></label>
			<?php $queue_datetime->render( $workflow ? $workflow->get_option( 'queue_datetime' ) : '' ); ?>
		</td>
	</tr>

	<tr class="automatewoo-table__row" data-automatewoo-show="timing=scheduled">
		<td class="automatewoo-table__col">
			<label class="automatewoo-label">
				<?php esc_html_e( 'Scheduled time', 'automatewoo' ); ?>
				<span class="automatewoo-label__extra"><?php esc_html_e( '(24hr)', 'automatewoo' ); ?></span>
			</label>

			<?php $scheduled_time->render( $workflow ? $workflow->get_scheduled_time() : '' ); ?>
		</td>
	</tr>

	<tr class="automatewoo-table__row" data-automatewoo-show="timing=scheduled">
		<td class="automatewoo-table__col">
			<label class="automatewoo-label">
				<?php esc_html_e( 'Scheduled days', 'automatewoo' ); ?>
				<span class="automatewoo-label__extra"><?php esc_html_e( '(optional)', 'automatewoo' ); ?></span>
			</label>

			<?php $scheduled_day->render( $workflow ? $workflow->get_scheduled_days() : '' ); ?>
		</td>
	</tr>

	<tr class="automatewoo-table__row" data-automatewoo-show="timing=delayed|scheduled">
		<td class="automatewoo-table__col">
			<div class="field-cols">
				<div class="automatewoo-label" data-automatewoo-show="timing=delayed">
					<?php esc_html_e( 'Length of the delay', 'automatewoo' ); ?>
				</div>

				<div class="automatewoo-label" data-automatewoo-show="timing=scheduled">
					<?php esc_html_e( 'Minimum wait', 'automatewoo' ); ?>
					<span class="automatewoo-label__extra"><?php esc_html_e( '(optional)', 'automatewoo' ); ?></span>
				</div>

				<div class="col-1">
					<?php $run_delay_value->render( $workflow ? $workflow->get_option( 'run_delay_value' ) : '' ); ?>
				</div>

				<div class="col-2">
					<?php $run_delay_unit->render( $workflow ? $workflow->get_option( 'run_delay_unit' ) : '' ); ?>
				</div>
			</div>
		</td>
	</tr>

	<tr class="automatewoo-table__row" data-automatewoo-show="timing=fixed">
		<td class="automatewoo-table__col">
			<div class="field-cols">
				<label class="automatewoo-label">
					<?php esc_html_e( 'Date', 'automatewoo' ); ?>
					<span class="automatewoo-label__extra"><?php esc_html_e( '(24 hour time)', 'automatewoo' ); ?></span>
				</label>

				<div class="col-1">
					<?php $fixed_date->render( $workflow ? $workflow->get_option( 'fixed_date' ) : '' ); ?>
				</div>

				<div class="col-2">
					<?php
					if ( $workflow && $workflow->get_option( 'fixed_time' ) ) {
						$value = Clean::recursive( (array) $workflow->get_option( 'fixed_time' ) );
					} else {
						$value = [ '', '' ];
					}

					$fixed_time->render( $value );
					?>
				</div>
			</div>
		</td>
	</tr>
</table>