Las cookies son pequeños archivos que los sitios web utilizan para recordar información acerca de los visitantes. Utilizamos cookies en nuestros propios sitios web para hacerlos más fáciles de usar y personalizados.
Muchos propietarios de sitios web quieren utilizar cookies pero no saben cómo empezar. Las cookies pueden ayudarle a recordar las preferencias del usuario, mantener a los usuarios conectados e incluso mostrar contenido específico.
En esta guía definitiva, le mostraremos cómo establecer, obtener y borrar las cookies de WordPress como un profesional.
Nota: Este es un tutorial avanzado. Se requiere que usted tenga una comprensión competente de HTML, CSS, sitios de WordPress y PHP.
¿Qué son las cookies?
Las cookies son archivos de texto sin formato que se crean y almacenan en los navegadores de los usuarios cuando visitan un sitio web. Puede utilizar cookies para añadir distintas características a su sitio web en WordPress.
Estos son algunos de los usos más comunes de las cookies:
- Almacenamiento y gestión de los datos de acceso de un usuario
- Almacenamiento temporal de información de sesión durante la visita de un usuario
- Recordar los elementos del carrito durante la visita de un usuario a una tienda de comercio electrónico
- Seguimiento de la actividad de los usuarios en un sitio para ofrecerles una experiencia personalizada.
Como puede ver, las cookies son una herramienta muy útil para los propietarios de sitios web, pero también pueden ser un poco invasivas. Las últimas tendencias en marketing por correo electrónico, growth hacking y marketing online en general permiten a los sitios web establecer cookies que actúan como balizas y pueden utilizarse para guardar o incluso compartir la actividad de los usuarios en otros sitios web.
Por este motivo, la Unión Europea promulgó la Ley de cookies de la UE, que obliga a los propietarios de sitios web a declarar que utilizan cookies para almacenar información.
Puede aprender a hacerlo en su propio sitio en nuestra guía práctica sobre cómo añadir una ventana emergente de cookies para RGPD/CCPA.
Cómo se utilizan las cookies en un sitio web típico de WordPress
Por defecto, WordPress utiliza cookies para gestionar las sesiones de los usuarios conectados y su identificación, así como para recordar su nombre y dirección de correo electrónico si rellenan un formulario de comentarios.
Sin embargo, muchos plugins de WordPress de su sitio web también pueden establecer sus propias cookies.
Por ejemplo, OptinMonster le permite mostrar diferentes formularios de suscripción por correo electrónico a visitantes nuevos y recurrentes, y lo hace utilizando cookies.
Si utiliza servicios web externos en su sitio web, como Google Analytics o Google AdSense, es posible que también establezcan cookies de terceros en su sitio web.
Puede ver todas las cookies del sitio web en los ajustes de su navegador. Por ejemplo, en Google Chrome, tiene que empezar por abrir la página de ajustes.
Para ello, haga clic en el icono de los tres puntos de la parte superior derecha y seleccione “Ajustes” o escriba chrome://settings
en la barra de direcciones.
En la página de ajustes, debe buscar “Ajustes de contenido”.
En “Ajustes de contenido”, deberá hacer clic en “Cookies”.
Se abrirá la página de ajustes de cookies.
A continuación, debe hacer clic en la opción “Ver todas las cookies y datos del sitio”.
En la página siguiente, verá un anuncio / catálogo / ficha de todas las cookies y datos del sitio almacenados en su navegador por todos los sitios web que ha visitado.
Puede escribir la dirección de un sitio web en el cuadro de búsqueda y se le mostrarán los datos almacenados por ese sitio web.
Al hacer clic en un solo elemento se le mostrarán más detalles acerca de las cookies individuales y su contenido.
Cómo establecer una cookie en WordPress
Para seguir este tutorial, necesitarás añadir código al archivo functions. php de tu tema o utilizar un plugin de fragmentos de código como WPCode. Si no has hecho esto antes, echa un vistazo a nuestra guía sobre cómo copiar y pegar fragmentos de código en WordPress.
En primer lugar, utilizaremos la función setcookie()
de PHP. Esta función acepta los siguientes parámetros:
- Nombre de la cookie
- Valor de la cookie
- Caduca – opcional y establece un periodo de tiempo tras el cual la cookie caduca.
- Ruta – opcional y utilizará la raíz del sitio por defecto
- Dominio – opcional y utiliza por defecto el dominio de su sitio web.
- Seguro – opcional, y solo transfiere los datos de la cookie a través de HTTPS si es verdadero.
- httponly – opcional, y cuando se establece en true, la cookie solo es accesible a través de HTTP y no puede ser utilizada por scripts.
Ahora, vamos a añadir un fragmento de código a su sitio de WordPress. Este código almacena la hora exacta en la que un usuario visitó su sitio web en una cookie:
function wpb_cookies_tutorial1() {
$visit_time = date('F j, Y g:i a');
if(!isset($_COOKIE[wpb_visit_time])) {
// set a cookie for 1 year
setcookie('wpb_visit_time', $visit_time, time()+31556926);
}
}
Ahora puede visitar su sitio web y comprobar las cookies de su navegador. Encontrará una cookie con el nombre wpb_visit_time
.
Cómo obtener una cookie y utilizarla en WordPress
Ahora que hemos creado esta cookie que se almacena en el navegador del usuario durante un año, veamos cómo podemos utilizar esta información en nuestro sitio web.
Si conoce el nombre de una cookie, entonces puede llamarla fácilmente en cualquier parte de PHP usando la variable $_COOKIE[]
. Vamos a añadir algo de código que no solo establece la cookie sino que también la usa para hacer algo en tu sitio web:
function wpb_cookies_tutorial2() {
// Time of user's visit
$visit_time = date('F j, Y g:i a');
// Check if cookie is already set
if(isset($_COOKIE['wpb_visit_time'])) {
// Do this if cookie is set
function visitor_greeting() {
// Use information stored in the cookie
$lastvisit = $_COOKIE['wpb_visit_time'];
$string .= 'You last visited our website '. $lastvisit .'. Check out whats new';
return $string;
}
} else {
// Do this if the cookie doesn't exist
function visitor_greeting() {
$string .= 'New here? Check out these resources...' ;
return $string;
}
// Set the cookie
setcookie('wpb_visit_time', $visit_time, time()+31556926);
}
// Add a shortcode
add_shortcode('greet_me', 'visitor_greeting');
}
add_action('init', 'wpb_cookies_tutorial2');
Hemos comentado dentro del código para mostrarle lo que hace cada parte. Este código utiliza la información almacenada en la cookie y la emite utilizando shortcode.
Ahora puede añadir el shortcode [greet_me
] en cualquier lugar de su sitio web, y se mostrará cuando un usuario visitó por última vez.
No dudes en modificar el código para hacerlo más útil para tu sitio web. Por ejemplo, puedes mostrar entradas recientes a los usuarios que vuelven y entradas populares a los nuevos.
Borrar una cookie en WordPress
Hasta ahora, hemos aprendido cómo establecer una cookie y utilizarla posteriormente en su sitio web. Ahora, veamos cómo borrar cookies.
Para borrar una cookie, debe añadir la siguiente línea a su código:
unset($_COOKIE['wpb_visit_time']);
No olvide sustituir wpb_visit_time
por el nombre de la cookie que está intentando borrar.
Pongamos este código en contexto utilizando el mismo código de ejemplo que hemos usado antes. Esta vez, borraremos una cookie y la estableceremos de nuevo con nueva información:
function wpb_cookies_tutorial2() {
// Time of user's visit
$visit_time = date('F j, Y g:i a');
// Check if cookie is already set
if(isset($_COOKIE['wpb_visit_time'])) {
// Do this if cookie is set
function visitor_greeting() {
// Use information stored in the cookie
$lastvisit = $_COOKIE['wpb_visit_time'];
$string .= 'You last visited our website '. $lastvisit .'. Check out whats new';
// Delete the old cookie so that we can set it again with updated time
unset($_COOKIE['wpb_visit_time']);
return $string;
}
} else {
// Do this if the cookie doesn't exist
function visitor_greeting() {
$string .= 'New here? Check out these resources...' ;
return $string;
}
}
add_shortcode('greet_me', 'visitor_greeting');
// Set or Reset the cookie
setcookie('wpb_visit_time', $visit_time, time()+31556926);
}
add_action('init', 'wpb_cookies_tutorial2');
Como puede ver, este código borra la cookie una vez que hemos utilizado la información almacenada en su interior. Posteriormente, volvemos a establecer la cookie con la información horaria actualizada.
Guías de expertos sobre el uso de cookies con WordPress
Esperamos que este artículo te haya ayudado a aprender cómo establecer, obtener y borrar fácilmente las cookies de WordPress. Puede que también quieras ver otras guías relacionadas con el uso de cookies en WordPress:
- Glosario Cookies
- Cómo utilizar Cookie Retargeting en WordPress para mostrar mensajes personalizados en el sitio web
- Cómo saber si su sitio web WordPress utiliza cookies
- Cómo añadir una ventana emergente de cookies en WordPress para GDPR/CCPA
- Cómo borrar la caché del navegador en los principales navegadores (de forma rápida)
- Cómo gestionar y eliminar transitorios en WordPress (de forma sencilla)
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Alan Brady
A very useful and informative article, thank you.
I found that just using unset didn’t seem to delete the cookie, I had to set the cookie expiry time to sometime in the past, e.g.:
setcookie(‘wpb_visit_time’, $visit_time, time()-1);
WPBeginner Support
Thank you for sharing that for those who may run into that issue as well.
Administrador
Debbie Kurth
Problem is, when I implement code like this, I get an warning error and the cookie fails, when in wordpress.
Warning: Cannot modify header information – headers already sent by (output started
How do you go around that?
WPBeginner Support
There are a few possible reasons for that specific error, we would recommend taking a look at our article below that goes a bit more in-depth on the error and how to resolve it:
https://www.wpbeginner.com/wp-tutorials/how-to-fix-pluggable-php-file-errors-in-wordpress/
Administrador
Pete
How can I use a cookie to restrict users visit a page just once.
Nigel
Thanks for the awesome tutorial!
A small mistake: In the first code snippet $wpb_visit_time should be ‘wpb_visit_time’
WPBeginner Support
Thanks for catching that, we’ll be sure to update the code
Administrador
Matt
Hi there, you seem to have an error in your code for the first example:
function wpb_cookies_tutorial1() {
$visit_time = date(‘F j, Y g:i a’);
if(!isset($_COOKIE[$wpb_visit_time])) {
// set a cookie for 1 year
setcookie(‘wpb_visit_time’, $current_time, time()+31556926);
}
}
You specify the variable as $visit_time but in the setcookie function you call $current_time.
Thank for the guide(s) though they are super useful.
WPBeginner Support
Thanks for pointing that out, we will be sure to update and fix that, glad our guides have been useful
Administrador
Anastasia
Your articles are really helpful but I need to understand the codings very well so I want to know,
Do I have to copy and paste all the code displayed here?
Do I replace wbp_visit_time, wbp_cookies_tutorial with the name of my site?
WPBeginner Support
For understanding how to add the code, you would want to take a look at our article below:
https://www.wpbeginner.com/beginners-guide/beginners-guide-to-pasting-snippets-from-the-web-into-wordpress/
You do not need to replace the names with the name of your site.
Administrador
Brian
I don’t know why anytime I try to search my website using any search engines it writes website not trusted
What’s wrong? How can My website be trusted by all browsers and search engines?
WPBeginner Support
You may want to ensure your site is using HTTPS and take a look at our guide below:
https://www.wpbeginner.com/wp-tutorials/how-to-add-ssl-and-https-in-wordpress/
Administrador
Geeby
Apologies for resurrecting this thread but i need some help.
The first page of my site asks customers to select their region. The products available will differ depending on where they choose.
I don’t want them to have to re-select this location every time they go to the homepage.
Any advice?
WPBeginner Support
You would want to check with the support for your eCommerce plugin for if they have a method to set that for your users.
Administrador
Les
Great article. You said to put the code in the functions.php file. I am using WP Elementor, I only need the cookie values pulled up when a user goes to a certain page. Can this code be added on a specific page? I want to create the cookie with certain values that come from a form, the first time the user completes the form. After that, the next time they come back to this page, the form should auto populate from the cookie data., this reduces the fields they need to complete on a return visit.
WPBeginner Support
For that, you would want to reach out to the form plugin you are using for if they have a system for that already set up.
Administrador
Anthony Coffey
You can add the code to functions.php and use the WordPress function “is_page()” to add conditional logic to your cookie code snippet.
The is_page() function accepts either page ID, slug or name/title. It’s pretty easy to use, you can read more about the is_page() function online in the WordPress codex.