/var/www/html_it/wp-content/plugins/loco-translate/src/data/Cookie.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
/**
 * Basic abstraction of cookie setting.
 * - Provides loco_setcookie filter for tests.
 * - Provides multiple values as url-encoded pairs. Not using JSON, because stripslashes
 * 
 * Not currently used anywhere - replaced with usermeta-based session
 * @codeCoverageIgnore
 */
class Loco_data_Cookie extends ArrayObject {
    
    private 
$name 'loco';

    private 
$expires 0;


    
/**
     * Get and deserialize cookie sent to server
     * @return Loco_data_Cookie
     */
    
public static function get$name ){
        if( isset(
$_COOKIE[$name]) ){
            
parse_str$_COOKIE[$name], $data );
            if( 
$data ){
                
$cookie = new Loco_data_Cookie$data );
                return 
$cookie->setName$name );
            }
        }
    }

    
    
/**
     * @internal
     */
    
public function __toString(){
        
$data $this->getArrayCopy();
        return 
http_build_query$datanull'&' );
    }

    
    
/**
     * @return Loco_data_Cookie
     */
    
public function setName$name ){
        
$this->name $name;
        return 
$this;
    }


    
/**
     * @return string
     */
    
public function getName(){
        return 
$this->name;
    }


    
/**
     * Send cookie to the browser, unless filtered out.
     * @return bool|null
     */
    
public function send(){
        if( 
false !== apply_filters'loco_setcookie'$this ) ){
            
$value = (string) $this;
            
// @codeCoverageIgnoreStart
            
return setcookie$this->name$value$this->expiresCOOKIEPATHCOOKIE_DOMAINis_ssl(), true );
        }
    }


    
/**
     * Empty values such that sending cookie would remove it from browser
     * @return Loco_data_Cookie
     */
    
public function kill(){
        
$this->exchangeArray( [] );
        
$this->expires time() - 86400;
        return 
$this;
    }

    
    
}