HEX
Server: nginx/1.27.1
System: Linux in-4 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64
User: ilikadirect (1186)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
Upload Files
File: /storage/v6964/gopalak/public_html/wp-content/plugins/totalcontest-lite/src/Limitations/Period.php
<?php

namespace TotalContest\Limitations;

use TotalContestVendors\TotalCore\Limitations\Limitation;

/**
 * Class Period
 * @package TotalContest\Limitations
 */
class Period extends Limitation {
	/**
	 * @return bool|\WP_Error
	 */
	public function check() {
		$startDate = empty( $this->args['start'] ) ? false : TotalContest( 'datetime', [ $this->args['start'], wp_timezone() ] );
		$endDate   = empty( $this->args['end'] ) ? false : TotalContest( 'datetime', [ $this->args['end'], wp_timezone() ] );
		$now       = TotalContest( 'datetime', [ 'now', wp_timezone() ] );


		if ( $startDate && $startDate->getTimestamp() > $now->getTimestamp() ):
			$interval = $startDate->diff( $now, true );
			$message  = empty( $this->args['startMessage'] ) ? esc_html__( 'Not started yet, %s left.', 'totalcontest' ) : $this->args['startMessage'];
			$message  = str_replace( [ '%s', '{{time}}' ], [ '{{time}}', $interval->format( esc_html__( '%a days, %h hours and %i minutes', 'totalcontest' ) ) ], $message );

			return new \WP_Error( 'start_date', $message );
		endif;

		if ( $endDate && $endDate->getTimestamp() < $now->getTimestamp() ):
			$interval = $endDate->diff( $now, true );
			$message  = empty( $this->args['endMessage'] ) ? esc_html__( 'Finished since %s.', 'totalcontest' ) : $this->args['endMessage'];
			$message  = str_replace( [ '%s', '{{time}}' ], [ '{{time}}', $interval->format( esc_html__( '%a days, %h hours and %i minutes', 'totalcontest' ) ) ], $message );

			return new \WP_Error( 'finish_date', $message );
		endif;

		return true;
	}
}