Server : Apache/2 System : Linux vps.sdns.vn 3.10.0-1160.15.2.el7.x86_64 #1 SMP Wed Feb 3 15:06:38 UTC 2021 x86_64 User : phatdatpq ( 1022) PHP Version : 7.2.34 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/phatdatpq/public_html/wp-content/plugins/loco-translate/src/data/ |
Upload File : |
<?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( $data, null, '&' ); } /** * @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->expires, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), true ); } } /** * Empty values such that sending cookie would remove it from browser * @return Loco_data_Cookie */ public function kill(){ $this->exchangeArray( array() ); $this->expires = time() - 86400; return $this; } }