File "storage.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/.wp-cli/wp-content/plugins/woocommerce-products-filter/classes/storage.php
File size: 3.06 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if (!defined('ABSPATH'))
die('No direct access allowed');
//keeps current user data
final class WOOF_STORAGE {
public $type = 'session'; //session, transient
private $user_ip = null;
private $transient_key = null;
public function __construct($type = '') {
if (!empty($type)) {
$this->type = $type;
}
if ($this->type == 'session') {
if (!session_id()) {
try {
@session_start();
} catch (Exception $e) {
//***
}
}
}
if (isset($_SERVER['REMOTE_ADDR'])) {
$this->user_ip = filter_var(WOOF_HELPER::get_server_var('REMOTE_ADDR'), FILTER_VALIDATE_IP);
$this->transient_key = md5($this->user_ip . 'woof_salt');
}
}
public function set_val($key, $value) {
switch ($this->type) {
case 'session':
WC()->session->set($key, $value);
break;
case 'transient':
$data = get_transient($this->transient_key);
if (!is_array($data)) {
$data = array();
}
$data[$key] = $value;
set_transient($this->transient_key, $data, 1 * 24 * 3600); //1 day
break;
default:
break;
}
}
public function get_val($key) {
$value = NULL;
switch ($this->type) {
case 'session':
if ($this->is_isset($key)) {
$value = WC()->session->__get($key);
}
break;
case 'transient':
$data = get_transient($this->transient_key);
if (!is_array($data)) {
$data = array();
}
if (isset($data[$key])) {
$value = $data[$key];
}
break;
default:
break;
}
return $value;
}
public function unset_val($key) {
switch ($this->type) {
case 'session':
if ($this->is_isset($key)) {
WC()->session->__unset($key);
}
break;
case 'transient':
$data = get_transient($this->transient_key);
if (isset($data[$key])) {
unset($data[$key]);
}
set_transient($this->transient_key, $data, 1 * 24 * 3600); //1 day
//delete_transient($this->transient_key);
break;
default:
break;
}
return false;
}
public function is_isset($key) {
$isset = false;
switch ($this->type) {
case 'session':
$isset = WC()->session->__isset($key);
break;
case 'transient':
$isset = (bool) $this->get_val($key);
break;
default:
break;
}
return $isset;
}
}