403Webshell
Server IP : 104.21.38.3  /  Your IP : 162.158.108.167
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/wwwroot/coircraft.com/wp-content/plugins/caldera-forms/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/coircraft.com/wp-content/plugins/caldera-forms/classes/transient.php
<?php
use calderawp\calderaforms\cf2\Transients\TransientApiContract;
/**
 * Class Caldera_Forms_Transient
 *
 * Abstraction for backing global $transdata in DB and other data needed to be shared between sessions.
 *
 * History (A bold march towards a proper session API)
 * Before 1.4.9.1 get/set_transient was used as a convention.
 * In 1.4.9.1 This class was added as an API wrapping get/set_transient()
 * In 1.5.6 This API switched to using get/update_option() with WordPress "CRON job" to delete if needed, which it should not be most of the time, transient should be deleted on caldera_forms_submit_complete aaction. Reasons explained in https://github.com/CalderaWP/Caldera-Forms/issues/1866
 * In 1.8.0 Created calderawp\calderaforms\cf2\Transients\TransientApiContract as public API definition.
 */
class Caldera_Forms_Transient  {

	/**
	 * Tracks the transients to be deleted at caldera_forms_submit_complete action
	 *
	 * @since 1.5.6
	 *
	 * @var array
	 */
	protected static $delete_at_submission_complete;

	/**
	 * Hookname for wp-cron single events used to delete our "transients"
	 */
	const CRON_ACTION = 'caldera_forms_transient_delete';

	/**
	 * Set a transient
	 *
	 * @since 1.4.9.1
	 *
	 * @param string $id Transient ID
	 *
	 * @return mixed
	 */
	public static function get_transient( $id ){
		return get_option( self::prefix( $id ) );
	}

	/**
	 * Get stored transient
	 *
	 * @since 1.4.9.1
	 *
	 * @param string $id Transient ID
	 * @param mixed $data Data
	 * @param null|int $expires Optional. Expiration time. Default is nul, which becomes 1 hour
	 *
	 * @return bool
	 */
	public static function set_transient( $id, $data, $expires = null ){
		if( ! is_numeric( $expires ) &&  isset( $data[ 'expires' ] ) && is_numeric( $data[ 'expires' ] ) ){
			$expires = $data[ 'expires' ];
		}elseif ( ! is_numeric( $expires ) ){
			$expires = HOUR_IN_SECONDS;
		}else{
			$expires = absint( $expires );
		}

		//schedule delete with job manager
		caldera_forms_get_v2_container()
			->getService(\calderawp\calderaforms\cf2\Services\QueueSchedulerService::class)
			->schedule( new \calderawp\calderaforms\cf2\Jobs\DeleteTransientJob($id), $expires );

		return update_option( self::prefix( $id ), $data, false );

	}

	/**
	 * Delete transient
	 *
	 * @since 1.5.0.7
	 *
	 * @param string $id Transient ID
	 *
	 * @return bool
	 */
	public static function delete_transient( $id ){
		return delete_option( self::prefix( $id ) );
	}

	/**
	 * Create transient prefix
	 *
	 * @since 1.5.0.7
	 *
	 * @param string $id Transient ID
	 *
	 * @return string
	 */
	protected static function prefix( $id ){
		return 'cftransdata_' . $id;
	}

	/**
	 * Callback function for "transients" being deleted via CRON
	 *
	 * @since 1.5.6
	 *
	 * @param $args
	 */
	public static function cron_callback( $args ){
		if( isset( $args[0] ) ){
			self::delete_transient( $args[0] );
		}

	}

	/**
	 * Add a transient to be deleted at submission completed action
	 *
	 * @since 1.5.5
	 *
	 * @param string $id Transient ID -- not prefixed
	 */
	public static function delete_at_submission_complete( $id ){
		self::$delete_at_submission_complete[] = $id ;
	}

	/**
	 * Clear any "transients" marked to be cleared when submission completes
	 *
	 * @since 1.5.5
	 *
	 * @uses "caldera_forms_submit_complete"
	 */
	public static function submission_complete(){
		if( ! empty( self::$delete_at_submission_complete )  ){
			foreach ( self::$delete_at_submission_complete as $id  ) {
				self::delete_transient( $id );
			}

		}

	}


	/**
	 * Clear all schedule cron jobs
	 *
	 * @since 1.8.0
	 */
	public static function clear_wpcron(){
		$transients = self::get_all();
		if( ! empty($transients)){
			foreach ($transients as $transient_id ){
				wp_clear_scheduled_hook(self::CRON_ACTION, [$transient_id]);
			}
		}

	}

	/**
	 * Get the names of all transients
	 *
	 * @since 1.8.0
	 *
	 * @return array
	 */
	public static function get_all(){
		global $wpdb;
		$like = '%' . $wpdb->esc_like( 'cftransdata' ) . '%';
		$query = $wpdb->prepare( "SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE %s ", $like );
		$return = [];
		$results = $wpdb->get_results($query,ARRAY_A);
		if( ! empty( $results) ){
			foreach ($results as $result ){
				$return[] = $result[ 'option_name' ];
			}
		}
		return $return;
	}


}

Youez - 2016 - github.com/yon3zu
LinuXploit