Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Cómo establecer, obtener y eliminar cookies de WordPress (como un profesional)

Una vez nos enfrentamos a un problema frustrante donde los inicios de sesión de usuarios y los carritos de compra en uno de nuestros sitios fallaban constantemente. El culpable oculto fue un simple descuido en cómo nuestro sitio manejaba las cookies.

Lidiar con configuraciones técnicas como las cookies puede ser intimidante para los principiantes. Sin embargo, hacerlo bien es el secreto para tener un sitio web rápido y fácil de usar.

Después de corregir nuestros propios errores, desarrollamos un sistema sencillo que cualquiera puede seguir. Te guiaremos a través de los métodos exactos que usamos para manejar las cookies de forma segura.

En esta guía, te mostraremos cómo establecer, obtener y eliminar cookies en WordPress fácilmente. Veamos los pasos exactos para que puedas administrar los datos de tu sitio con confianza.

Cómo establecer, obtener y eliminar cookies de WordPress (como un profesional)

Estos son los temas que cubrimos en este artículo:

Nota: Aunque este tutorial involucra algo de código personalizado, no te preocupes. Te guiaremos en cada paso. Recomendamos usar un plugin de fragmentos de código para que no necesites ser un experto en PHP para seguirlo.

¿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. Puedes usar cookies para agregar diferentes funciones a tu sitio web de WordPress.

Estos son algunos casos de uso comunes para las cookies:

  • Almacenar y gestionar la información de inicio de sesión de un usuario
  • Almacenar información temporal de sesión durante la visita de un usuario
  • Recordar los artículos del carrito durante la visita de un usuario a una tienda de comercio electrónico
  • Rastrear la actividad del usuario en un sitio para ofrecer una experiencia de usuario personalizada

Si bien las cookies son herramientas potentes para los propietarios de sitios web, pueden generar preocupaciones sobre la privacidad. Las prácticas de marketing modernas, incluido el marketing por correo electrónico, el growth hacking y la publicidad digital, a menudo utilizan cookies como balizas de seguimiento para recopilar y compartir la actividad del usuario en varios sitios web.

Debido a que las cookies pueden rastrear lo que hacen los usuarios, muchos países tienen leyes de privacidad estrictas. Por ejemplo, leyes como el GDPR requieren que pidas permiso a los visitantes antes de guardar la mayoría de los tipos de cookies en sus dispositivos.

WPConsent facilita la adición de un sistema de consentimiento de cookies totalmente compatible a tu sitio de WordPress. Este plugin va más allá de las notificaciones básicas al bloquear activamente los scripts de seguimiento hasta que los visitantes den su permiso.

Popup de cookies creado con WPConsent

Crear un banner de consentimiento de cookies con WPConsent es sencillo. Puede elegir una plantilla prediseñada, personalizar el diseño para que coincida con su sitio y dejar que el plugin gestione automáticamente todo el consentimiento del visitante por usted.

Puedes aprender cómo hacer esto en tu propio sitio en nuestra guía sobre cómo agregar un popup de cookies para GDPR/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 registrados y la autenticación, y para recordar el nombre y la dirección de correo electrónico de un usuario si este completa un formulario de comentarios.

Sin embargo, muchos plugins de WordPress en tu sitio web también pueden establecer sus propias cookies.

Por ejemplo, OptinMonster te permite mostrar diferentes formularios de suscripción por correo electrónico a visitantes nuevos y recurrentes, y lo hace utilizando cookies.

Si estás utilizando servicios web externos en tu sitio web, como Google Analytics o Google AdSense, es posible que también establezcan cookies de terceros en tu sitio web.

Puedes ver todas las cookies del sitio web en la configuración de tu navegador. Por ejemplo, en Google Chrome, necesitas empezar abriendo la página de Configuración.

Puedes hacer esto haciendo clic en el ícono de ‘3 puntos’ en la parte superior derecha y seleccionando ‘Configuración’ o escribiendo chrome://settings en la barra de direcciones.

Configuración del sitio en Google Chrome

En la página de Configuración, haz clic en 'Privacidad y seguridad' en el menú de la izquierda.

A continuación, en 'Privacidad y seguridad', busca y haz clic en 'Cookies de terceros'.

Sección de cookies en la configuración de Chrome

Esto abrirá la página de configuración de cookies.

A continuación, debes hacer clic en la opción ‘Ver todos los datos y permisos del sitio’.

Ver todas las cookies y datos del sitio

En la siguiente página, verás una lista de todas las cookies y datos del sitio almacenados en tu navegador por todos los sitios web que has visitado.

Puedes escribir la dirección de un sitio web en el cuadro de búsqueda y se te mostrarán los datos almacenados por ese sitio web.

Ver cookies del sitio

Al hacer clic en un solo elemento, se te mostrarán más detalles sobre las cookies individuales y su contenido.

Para seguir este tutorial, necesitarás agregar código al archivo functions.php de tu tema o usar un plugin de fragmentos de código como WPCode. Si no has hecho esto antes, por favor, consulta nuestra guía sobre cómo copiar y pegar fragmentos de código en WordPress.

Primero, usaremos la función setcookie() en PHP. Esta función acepta los siguientes parámetros:

  • Nombre de la cookie
  • Valor de la cookie
  • Expirar – opcional. Establece un límite de tiempo para que la cookie permanezca activa antes de eliminarse a sí misma.
  • Ruta – opcional. Usará la ruta raíz de tu sitio por defecto.
  • Dominio – opcional. Usa el nombre de dominio principal de tu sitio web por defecto.
  • Seguro – opcional. Cuando se establece en verdadero, esto asegura que la cookie solo funcione si tu sitio web tiene un certificado SSL activo (HTTPS).
  • httponly – opcional. Cuando se establece en verdadero, la cookie se oculta de JavaScript, lo que ayuda a proteger tu sitio de scripts maliciosos.

Ahora, agreguemos un fragmento de código a tu sitio de WordPress. Este código almacena la marca de tiempo exacta cuando un usuario visitó tu 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);
  }
}
add_action('init', 'wpb_cookies_tutorial1');

En este código, establecemos el tiempo de expiración usando time() + 31556926. La función time() representa el momento exacto actual, y el número grande es exactamente cuántos segundos hay en un año (60 por 60 por 24 por 365.25).

Ahora puedes visitar tu sitio web y luego revisar las cookies de tu navegador. Encontrarás una cookie con el nombre wpb_visit_time.

Ahora que hemos creado esta cookie que se almacena en el navegador del usuario durante un año, veamos cómo podemos usar esta información en nuestro sitio web.

Si conoces el nombre de una cookie, puedes llamarla fácilmente en cualquier lugar de PHP usando la variable $_COOKIE[]. Debido a que las cookies se envían a través de encabezados HTTP, tenemos que usar el hook init para establecer la cookie antes de que se cargue cualquier HTML en la página.

Agreguemos algo de código que no solo establezca la cookie, sino que también cree un shortcode para mostrar un mensaje en tu sitio web:

// 1. Set the cookie during WordPress init
function wpb_set_visit_cookie() {
    if ( ! isset( $_COOKIE['wpb_visit_time'] ) ) {
        $visit_time = date( 'F j, Y g:i a' );
        // Set a cookie for 1 year
        setcookie( 'wpb_visit_time', $visit_time, time() + 31556926 );
    }
}
add_action( 'init', 'wpb_set_visit_cookie' );

// 2. Create the shortcode to display the message
function wpb_visitor_greeting_shortcode() {
    if ( isset( $_COOKIE['wpb_visit_time'] ) ) {
        // Always escape cookie data for security!
        $lastvisit = esc_html( $_COOKIE['wpb_visit_time'] );
        $message = 'You last visited our website on ' . $lastvisit . '. Check out whats new!';
    } else {
        $message = 'New here? Check out these resources...';
    }
    return $message;
}
add_shortcode( 'greet_me', 'wpb_visitor_greeting_shortcode' );

Hemos comentado dentro del código para mostrarte qué hace cada parte. Este código utiliza la información almacenada en la cookie y la muestra usando shortcode.

Ahora puedes agregar el shortcode [greet_me] en cualquier lugar de tu sitio web, y mostrará cuándo fue la última visita de un usuario.

Consejo Pro: Si el shortcode no parece actualizar la hora, tu plugin de caché de WordPress podría estar almacenando en caché una versión antigua y estática de la página. Es posible que necesites excluir la página que contiene este shortcode de la configuración de tu caché para verlo actualizarse en tiempo real.

Siéntete libre de modificar el código para hacerlo más útil para tu sitio web. Por ejemplo, puedes mostrar publicaciones recientes a los usuarios recurrentes y publicaciones populares a los usuarios nuevos.

Hasta ahora, hemos aprendido cómo establecer una cookie y usarla más tarde en tu sitio web. Ahora, veamos cómo eliminar cookies.

Para eliminar una cookie del navegador de un usuario, necesitas usar la función setcookie() y establecer la fecha de expiración en el pasado. Puedes agregar la siguiente línea a tu código:

setcookie( 'wpb_visit_time', '', time() - 3600 );

No olvides reemplazar wpb_visit_time con el nombre de la cookie que intentas eliminar.

Pongamos este código en contexto usando el mismo código de ejemplo que usamos anteriormente. Esta vez, eliminaremos una cookie y la volveremos a establecer con nueva información:

// 1. Manage the cookie (Read old, Delete, Set new)
function wpb_update_visit_cookie() {
    $current_time = date( 'F j, Y g:i a' );

    // Check if cookie is already set
    if ( isset( $_COOKIE['wpb_visit_time'] ) ) {
        // Save the old time so our shortcode can still display it on this page load
        $GLOBALS['last_visit'] = $_COOKIE['wpb_visit_time'];

        // Delete the old browser cookie by setting the time to the past
        setcookie( 'wpb_visit_time', '', time() - 3600 );
    }

    // Set the cookie again with the newly updated time
    setcookie( 'wpb_visit_time', $current_time, time() + 31556926 );
}

add_action( 'init', 'wpb_update_visit_cookie' );

// 2. Create the shortcode to display the message
function wpb_greeting_shortcode() {
    // Look for the saved global variable first
    if ( isset( $GLOBALS['last_visit'] ) ) {
        $lastvisit = esc_html( $GLOBALS['last_visit'] );
        $message = 'You last visited our website on ' . $lastvisit . '. Check out whats new!';
    } else {
        $message = 'New here? Check out these resources...';
    }
    return $message;
}
add_shortcode( 'greet_me', 'wpb_greeting_shortcode' );

Como puedes ver, este código elimina la cookie específica del navegador que creamos al establecer el temporizador en el pasado.

No te preocupes, esto solo elimina la cookie específica de tu sitio y no borra la caché o el historial completo del navegador del usuario. Luego, volvemos a establecer la cookie con la información de tiempo recién actualizada.

Pro Tip: Si intentas eliminar una cookie y no funciona, asegúrate de que los parámetros de ruta y dominio coincidan exactamente con los que usaste cuando creaste la cookie por primera vez.

Preguntas Frecuentes Sobre las Cookies de WordPress

Aquí están las respuestas a algunas de las preguntas más comunes sobre cómo establecer, obtener y eliminar cookies en WordPress.

1. ¿Qué son las cookies de un sitio web?

Las cookies de un sitio web son pequeños archivos de texto que se almacenan en el navegador web de un visitante. Se utilizan para guardar y recuperar información para un sitio web específico, como recordar el estado de inicio de sesión de un usuario, mantener artículos en un carrito de compras o personalizar su experiencia.

2. ¿Son las cookies de WordPress perjudiciales para mi sitio?

No, las cookies no son intrínsecamente malas. Son esenciales para muchas funciones principales de WordPress, como la gestión de inicios de sesión de usuarios y el recuerdo de la información de los comentaristas. Sin embargo, debido a que pueden rastrear la actividad del usuario, generan preocupaciones sobre la privacidad, razón por la cual existen regulaciones como el GDPR.

3. ¿Necesito mostrar un aviso de consentimiento de cookies en WordPress?

Si tu sitio web tiene visitantes de países con leyes de privacidad como el GDPR de la Unión Europea, entonces se te exige obtener el consentimiento del usuario antes de almacenar la mayoría de los tipos de cookies. Usar un plugin como WPConsent es una forma fácil de garantizar el cumplimiento.

4. ¿Cómo puedo ver qué cookies está utilizando mi sitio web?

Puedes ver todas las cookies que utiliza un sitio web directamente en las herramientas de desarrollador o en la configuración de tu navegador. Por ejemplo, en Google Chrome, puedes ir a Configuración » Privacidad y seguridad » Cookies de terceros y luego hacer clic en 'Ver todos los datos y permisos del sitio' para inspeccionar las cookies de cualquier sitio que hayas visitado.

Recursos adicionales sobre el uso de cookies con WordPress

Esperamos que este artículo te haya ayudado a aprender cómo establecer, obtener y eliminar fácilmente cookies en WordPress. También es posible que desees ver otras guías relacionadas con el uso de cookies en WordPress:

Si te gustó este artículo, suscríbete a nuestro Canal de YouTube para ver tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Divulgación: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

20 CommentsLeave a Reply

  1. Un artículo muy útil e informativo, gracias.
    Descubrí que simplemente usar unset no parecía eliminar la cookie, tuve que establecer la fecha de caducidad de la cookie en algún momento del pasado, por ejemplo:
    setcookie(‘wpb_visit_time’, $visit_time, time()-1);

  2. El problema es que, cuando implemento código como este, obtengo un error de advertencia y la cookie falla, cuando estoy en WordPress.

    Advertencia: No se puede modificar la información de encabezado – ya se enviaron encabezados (salida iniciada

    ¿Cómo evitas eso?

  3. Hola, parece que tienes un error en tu código para el primer ejemplo:

    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); } }

    Especificas la variable como $visit_time pero en la función setcookie llamas a $current_time.

    Gracias por la(s) guía(s), aunque son súper útiles.

  4. Tus artículos son realmente útiles, pero necesito entender muy bien los códigos, así que quiero saber, ¿Tengo que copiar y pegar todo el código que se muestra aquí? ¿Reemplazo wbp_visit_time, wbp_cookies_tutorial con el nombre de mi sitio?

  5. No sé por qué cada vez que intento buscar mi sitio web en cualquier motor de búsqueda, aparece "sitio web no confiable" ¿Qué está mal? ¿Cómo puede mi sitio web ser confiable para todos los navegadores y motores de búsqueda?

  6. Disculpas por revivir este hilo, pero necesito ayuda. La primera página de mi sitio pide a los clientes que seleccionen su región. Los productos disponibles diferirán según dónde elijan. No quiero que tengan que volver a seleccionar esta ubicación cada vez que visiten la página de inicio. ¿Algún consejo?

    • Deberías consultar con el soporte de tu plugin de comercio electrónico para ver si tienen un método para configurar eso para tus usuarios.

      Administrador

  7. Gran artículo. Dijiste que pusiera el código en el archivo functions.php. Estoy usando WP Elementor, solo necesito que los valores de las cookies se muestren cuando un usuario va a una página específica. ¿Se puede agregar este código en una página específica? Quiero crear la cookie con ciertos valores que provienen de un formulario, la primera vez que el usuario completa el formulario. Después de eso, la próxima vez que regrese a esta página, el formulario debería autocompletarse con los datos de la cookie, esto reduce los campos que necesitan completar en una visita de regreso.

    • Para eso, deberías contactar al plugin de formularios que estás usando para ver si ya tienen un sistema configurado para eso.

      Administrador

    • Puedes agregar el código a functions.php y usar la función de WordPress “is_page()” para agregar lógica condicional a tu fragmento de código de cookie.

      La función is_page() acepta el ID de la página, el slug o el nombre/título. Es bastante fácil de usar, puedes leer más sobre la función is_page() en línea en el codex de WordPress.

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO se publicará. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.