|
/** |
|
* Simple methods for cookie management |
|
* This example is for cookbook and recipes. |
|
* |
|
* TODO: wrap this shit into Class |
|
* |
|
* @author Rendfall |
|
**/ |
|
|
|
|
|
if( ! defined('COOKIE_RECIPE_NAME')) |
|
define('COOKIE_RECIPE_NAME', 'user_recipe'); |
|
|
|
|
|
function set_user_cookie() { |
|
if ( ! isset($_COOKIE['user_recipe'])) { |
|
$cookie_name = COOKIE_RECIPE_NAME; |
|
$expire_time = 86400; |
|
$value = serialize(array()); |
|
setcookie($cookie_name, $value, time() + $expire_time, COOKIEPATH, COOKIE_DOMAIN, false); |
|
} |
|
}; add_action('init', 'set_user_cookie'); |
|
|
|
|
|
function add_to_cookie($value, $unique = false){ |
|
$cookie_name = COOKIE_RECIPE_NAME; |
|
|
|
$cookie = unserialize(stripslashes($_COOKIE[$cookie_name])); |
|
|
|
if($cookie && $unique && in_array($value, $cookie)) |
|
return false; |
|
|
|
$cookie[] = $value; |
|
$value = serialize($cookie); |
|
|
|
$expire_time = 86400; |
|
setcookie($cookie_name, $value, time() + $expire_time, COOKIEPATH, COOKIE_DOMAIN, false); |
|
|
|
return true; |
|
} |
|
|
|
|
|
function remove_from_cookie($value){ |
|
$cookie_name = COOKIE_RECIPE_NAME; |
|
|
|
$cookie = unserialize(stripslashes($_COOKIE[$cookie_name])); |
|
|
|
foreach($cookie as $key => $val){ |
|
if($val == $value) |
|
unset($cookie[$key]); |
|
} |
|
|
|
/* one by one |
|
if(($key = array_search($value, $cookie)) !== false) { |
|
unset($cookie[$key]); |
|
} |
|
*/ |
|
|
|
$value = serialize($cookie); |
|
|
|
$expire_time = 86400; |
|
setcookie($cookie_name, $value, time() + $expire_time, COOKIEPATH, COOKIE_DOMAIN, false); |
|
|
|
return true; |
|
} |
|
|
|
|
|
|
|
function get_cookie(){ |
|
$cookie_name = COOKIE_RECIPE_NAME; |
|
|
|
$cookie_data = unserialize(stripslashes($_COOKIE[$cookie_name])); |
|
return $cookie_data; |
|
} |
|
|
|
|
|
|
|
function clear_cookie(){ |
|
$cookie_name = COOKIE_RECIPE_NAME; |
|
|
|
setcookie($cookie_name, 0, time() - 1, COOKIEPATH, COOKIE_DOMAIN, false); |
|
return true; |
|
} |