Os cookies são utilizados pelos sites principalmente para identificar e armazenar informações sobre os visitantes. Eles são pequenos arquivos de texto que ficam gravados no computador do usuário e podem ser recuperados pelo site que o enviou durante a navegação.
Não há limite para quais informações os cookies podem armazenar. Eles são capazes de registrar um endereço de e-mail, as preferências de pesquisa no Google, a cidade de onde você está conectado e muito mais.
A classe responsável por trabalhar com cookies no Magento é a Mage_Core_Model_Cookie.
A sintaxe básica para criar um cookie é essa:
Mage::getModel(“core/cookie”)->set($cookie_name, $cookie_value, $cookie_expire, $cookie_path, $cookies_domain, $cookies_security,$httponly);
Explicando os parâmetros:
$cookie_name: Nome do cookie, valor obrigatório.
$cookie_value: Valor a ser armazenado, valor obrigatório.
$cookie_expire: Tempo de vida do cookie, por padrão é 3600 segundo (1 Hora)
$cookie_path: Diretório onde o cookie será armazenado, por padrão é no “/”.
$cookies_domain: Domínio.
$cookies_security: SSL / HTTPS (Os valores aceitos são booleanos)
$httponly: O cookie só pode ser recuperada através do protocolo HTTP. (Os valores aceitos são booleanos)
Para definir o tempo de vida do cookie é só somar o número de segundos desejados ao resultado da função time(), por exemplo: cinco horas são 18000 segundos, então ficaria: 18000 + time(), ou (3600 * 5) + time(). Uma dica: cada hora tem 3600 segundos e cada dia tem 86400 segundos.
Você já sabe o que é um cookie, para o que ele serve e quais são os parâmetros obrigatórios para a sua criação, agora vamos ao que interessa. Show me the code!
Para criar um cookie no Magento:
$cookie = Mage::getModel(‘core/cookie’);
$name = “discount”;
$discountValue = 10;
$cookie->set($name, $discountValue);
Isso vai criar um cookie chamado “discount” com o valor 10 e tempo de vida de 3600 segundos.
Obtendo o tempo de vida de um cookie.
$cookie->getLifetime($name);
Obtendo o valor de um cookie.
$cookie->get($name); // Isso retorna o valor 10;
Deletando um cookie.
$cookie->delete($name);
Caso precise adicionar vários dados em um único cookie, você pode utilizar um array e guardar esse array no cookie, mas para isso o array deve ser serializado.
$values = array();
$values[0] = “Primeiro Valor”;
$values[1] = “Segundo Valor”;
$values[2] = “Terceiro Valor”;
$cookie->set($name, serialize($values));
E para deserializar use o unserialize:
unserialize($cookie->get($cookie_name))
Espero que tenham gostado da explicação, qualquer dúvida, elogio ou sugestão, deixe um comentário. Até a próxima 🙂
Salve vandinho ✌