| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- namespace MailPoet\Util;
- if (!defined('ABSPATH')) exit;
- use InvalidArgumentException;
- class Cookies {
- const DEFAULT_OPTIONS = [
- 'expires' => 0,
- 'path' => '',
- 'domain' => '',
- 'secure' => false,
- 'httponly' => false,
- ];
- public function set($name, $value, array $options = []) {
- $options = $options + self::DEFAULT_OPTIONS;
- $value = json_encode($value, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
- $error = json_last_error();
- if ($error || ($value === false)) {
- throw new InvalidArgumentException();
- }
- // on PHP_VERSION_ID >= 70300 we'll be able to simply setcookie($name, $value, $options);
- setcookie(
- $name,
- $value,
- $options['expires'],
- $options['path'],
- $options['domain'],
- $options['secure'],
- $options['httponly']
- );
- }
- public function get($name) {
- if (!array_key_exists($name, $_COOKIE)) {
- return null;
- }
- $value = json_decode(stripslashes($_COOKIE[$name]), true);
- $error = json_last_error();
- if ($error) {
- return null;
- }
- return $value;
- }
- public function delete($name) {
- unset($_COOKIE[$name]);
- }
- }
|