Current File : /home/kelaby89/abl.academy/wp-content/plugins/wp-events-manager/inc/class-wpems-session.php
<?php
/**
 * WP Events Manager Session class
 *
 * @author        ThimPress, leehld
 * @package       WP-Events-Manager/Class
 * @version       2.1.7
 */

/**
 * Prevent loading this file directly
 */
defined( 'ABSPATH' ) || exit;

class WPEMS_Session {

	/**
	 * array key of session or cookie
	 * @var type string
	 */
	private $_name = null;

	/**
	 * is change is TRUE if has change $_data
	 * @var type bool
	 */
	private $_is_changed = false;

	/**
	 * session data
	 * @var type array
	 */
	private $_data = array();

	/**
	 * live time of cookie
	 * @var type timestamp
	 */
	private $_live_time = null;

	public function __construct() {
		$this->_name = 'event_auth_session_' . COOKIEHASH;
		$this->_data = $this->get_session_data();
		add_action( 'shutdown', array( $this, 'maybe_save_data' ), 0 );
	}

	/**
	 * get data
	 *
	 * @param type $name
	 */
	public function __get( $name ) {
		$this->get( $name );
	}

	/**
	 * set data
	 *
	 * @param type $name
	 * @param type $value
	 */
	public function __set( $name, $value ) {
		$this->set( $name, $value );
	}

	/**
	 * isset array key data
	 *
	 * @param type $name
	 *
	 * @return type bool
	 */
	public function __isset( $name ) {
		return isset( $this->_data[ $name ] );
	}

	/**
	 * unset item data
	 *
	 * @param type $name
	 */
	public function __unset( $name ) {
		if ( isset( $this->_data[ $name ] ) ) {
			unset( $this->_data[ $name ] );
			$this->_is_changed = true;
		}
	}

	/**
	 * get data
	 *
	 * @param type $name
	 * @param type $default
	 *
	 * @return type
	 */
	public function get( $name = null, $default = null ) {
		return isset( $this->_data[ $name ] ) ? maybe_unserialize( $this->_data[ $name ] ) : $default;
	}

	/**
	 * set data
	 *
	 * @param type $name
	 * @param type $value
	 */
	public function set( $name = '', $value = '' ) {
		if ( $name && $value !== $this->get( $name ) ) {
			$this->_data[ $name ] = maybe_serialize( $value );
			$this->_is_changed    = true;
			$this->maybe_save_data();
		}
	}

	/**
	 * save session data
	 */
	public function maybe_save_data() {
		if ( $this->_is_changed ) {
			$_SESSION[ $this->_name ] = maybe_serialize( $this->_data );
		}
	}

	/**
	 * get session data
	 * @return array
	 */
	private function get_session_data() {
		return isset( $_SESSION[ $this->_name ] ) ? maybe_unserialize( $_SESSION[ $this->_name ] ) : array();
	}

}
Page not found – Hello World !