Trabalhando com cookies no Magento

magentoOs 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 🙂

Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *