Las sesiones te permiten mantener un estado cuando se pasa de una página a otra. Esto es particularmente útil cuando tratas de integrar plugins que no tienen el hook que necesitas o que no pasan como parámetro el dato que esperas.
Generalidades
WordPress por defecto no maneja sesiones, usa más bien cookies para mantener el estado de un usuario conectado.
Adicional a las sesiones existen otras formas en que podemos mantener el estado de una aplicación, por ejemplo:
- Guardar en la BD: poco práctico en entornos reales con muchas conexiones.
- Usar cookies: Esta opción la maneja por defecto WordPress para mantener el estado
- Usar JWT: Esta es una opción que se usa generalmente cuando trabajamos con APIs externas y se usa generalmente para validad un usuario autenticado.
Iniciando la sesión
Puedes usar el siguiente código para iniciar la sesión en WordPress, como notarás estamos haciendo uso del Hook init ya que la sesión debe ejecutarse al inicio de todo y verificarse en cada carga de página.
add_action( 'init', 'dcms_session_start' );
function dcms_session_start() {
if ( ! session_id() ) {
session_start();
}
}
Guardar valores en la sesión
Para guardar algún valor en la sesión simplemente usamos la variable $_SESSION de PHP que es un array asociativo que guardará los valores que le indiquemos, por ejemplo:
$_SESSION['contact-name'] = $name;
Recuperar valores de una sesión
Para recuperar el valor podemos usar la siguiente sintaxis, en donde comprobamos si ese valor esta establecido, si no lo esta devolvemos una cadena vacía.
$name = $_SESSION['contact-name']??'';
echo $name;
Ejemplo de uso de sesiones en WordPress
En el siguiente ejemplo usaremos el plugin Contact Forms 7, cuando un usuario ingrese su nombre como parte del formulario guardaremos ese dato en la sesión y posteriormente lo usaremos para mostrarlo como parte del contenido de una página.
Conclusión
Como has podido comprobar, a pesar de que WordPress no maneja sesiones por defecto, puedes hacer uso de esta funcionalidad estableciendo un código de inicialización y luego haciendo uso de la variable $_SESSION de PHP.
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.
La entrada Manejo de Sesiones en WordPress es un artículo reciente del sitio DecodeCMS.
0 Commentaires