Cuando gestionas una página web, ya sea un sitio de comercio electrónico, un blog o una plataforma de reservas, es esencial proporcionar a tus usuarios una experiencia eficiente y precisa. Una parte fundamental de esta experiencia es informar a los usuarios sobre los horarios de disponibilidad y días especiales. Aquí es donde la función atenciontelefonica()
en PHP puede desempeñar un papel crucial.
Gestionando Horarios y Días Especiales
La función atenciontelefonica()
es una herramienta versátil que te permite gestionar horarios y días especiales en tu sitio web. Ya sea para mostrar el horario de atención de tu negocio, permitir a los usuarios programar citas o simplemente para ofrecer información relevante sobre días festivos, esta función puede adaptarse a tus necesidades.
Horarios Habitualmente Cambiantes
¿Tienes un negocio con horarios que varían de un día a otro? Con atenciontelefonica()
, puedes definir horarios personalizados para cada día de la semana. Desde los horarios de apertura hasta el cierre, la función te permite informar a tus usuarios sobre cuándo pueden esperar tus servicios.
Días Especiales y Festivos
Los días especiales y festivos pueden requerir un horario diferente o incluso un cierre temporal. atenciontelefonica()
te permite especificar fechas especiales y definir horarios personalizados para esos días. Esto es útil para informar a tus usuarios sobre cambios en la disponibilidad durante vacaciones o eventos especiales.
Zona Horaria Personalizada
La función atenciontelefonica()
también te permite configurar la zona horaria según tu ubicación. Esto garantiza que los horarios mostrados en tu sitio web sean precisos y reflejen tu región local.
Implementación Sencilla
Lo interesante de la función atenciontelefonica()
es su facilidad de implementación. Puedes integrarla en tu sitio web con relativa facilidad, ya que se basa en PHP, un lenguaje de programación ampliamente utilizado en el desarrollo web.
Para este artículo, vamos a implementarla dentro del Tema Bricks Builder para WordPress siguiendo el siguiente ejemplo:
En nuestra página Web tenemos un teléfono de Atención Telefónica que se encuentra en la cabecera de la Página Web. Mediante la Función
atenciontelefonica()
haremos que se visualice el teléfono siempre que se encuentre dentro del día y horarios establecidos en la función. En caso de estar fuera del horario establecido se mostrará un mensaje avisando al usuario que está fuera del horario de atención telefónica y no mostrando el número de teléfono.
Código de la Función completo
// ****** Dom=0 Lun=1 Mar=2 Mie=3 Jue=4 Vie=5 Sab=6//
function atenciontelefonica(){
date_default_timezone_set('Europe/Madrid');
$numeroDia = date('w');
$horaActual = date('H:i');
// Lista de fechas en formato "dd-mm-yyyy" junto con horarios de inicio y fin.
$fechasEspeciales = array(
'01-11-2023' => array(
'manana' => array('00:00', '00:00'),
'tarde' => array('00:00', '00:00')
),
'25-12-2023' => array(
'manana' => array('00:00', '00:00'),
'tarde' => array('00:00', '00:00')
)
);
// Días de la semana con horarios habituales (Lunes a Viernes).
$horariosHabituales = array(
1 => array(
'manana' => array('09:00', '14:00'),
'tarde' => array('17:00', '19:00')
), // Lunes
2 => array(
'manana' => array('09:00', '14:00'),
'tarde' => array('17:00', '19:00')
), // Martes
3 => array(
'manana' => array('09:00', '14:00'),
'tarde' => array('17:00', '19:00')
), // Miércoles
4 => array(
'manana' => array('08:50', '14:00'),
'tarde' => array('17:00', '19:00')
), // Jueves
5 => array(
'manana' => array('09:00', '14:00'),
'tarde' => array('17:00', '19:00')
) // Viernes
);
// Obtén la fecha actual en el mismo formato.
$fechaActual = date('d-m-Y');
$resultado = 1;
// Comprueba si hoy es sábado o domingo.
if ($numeroDia == 0 || $numeroDia == 6) {
$resultado = 0; // Es sábado o domingo.
}
// Comprueba si la fecha actual coincide con una fecha de la lista.
if (array_key_exists($fechaActual, $fechasEspeciales)) {
// La fecha actual coincide con una fecha especial, ahora verifica el horario.
$horariosEspeciales = $fechasEspeciales[$fechaActual];
$horarioActual = $horaActual >= $horariosEspeciales['manana'][0] && $horaActual <= $horariosEspeciales['manana'][1]
|| $horaActual >= $horariosEspeciales['tarde'][0] && $horaActual <= $horariosEspeciales['tarde'][1];
if (!$horarioActual) {
$resultado = 0; // La hora actual está fuera del horario permitido.
}
}
// Comprueba si el día actual tiene un horario habitual (Lunes a Viernes).
if ($numeroDia >= 1 && $numeroDia <= 5) {
$horariosHabitual = $horariosHabituales[$numeroDia];
$horarioManana = $horaActual >= $horariosHabitual['manana'][0] && $horaActual <= $horariosHabitual['manana'][1];
$horarioTarde = $horaActual >= $horariosHabitual['tarde'][0] && $horaActual <= $horariosHabitual['tarde'][1];
if (!$horarioManana && !$horarioTarde) {
$resultado = 0; // La hora actual está fuera del horario habitual.
}
}
return $resultado;
}
Explicación del código de la función
En el código de la función, es importante poner siempre la región horaria en la que estamos, de lo contrario la función no mostrará los resultados correctamente. En este ejemplo ponemos, al comienzo de la función:
date_default_timezone_set('Europe/Madrid');
Aunque el código está documentado con comentarios, se trata de una función que establece unos días fijos en los que se cierra. En este caso son los Sábados y Domingos y se establecen mediante la condicional:
if ($numeroDia == 0 || $numeroDia == 6) { $resultado = 0; // Es Domingo o Sábado. }
Si queremos añadir o quitar días fijos deberemos modificar esta línea de código de la función.
Para establecer un horario fijo a los días en los que estamos abiertos utilizamos el siguiente parte del código:
// Días de la semana con horarios habituales (Lunes a Viernes).
$horariosHabituales = array(
1 => array(
'manana' => array('09:00', '14:00'),
'tarde' => array('17:00', '19:00')
), // Lunes
2 => array(
'manana' => array('09:00', '14:00'),
'tarde' => array('17:00', '19:00')
), // Martes
3 => array(
'manana' => array('09:00', '14:00'),
'tarde' => array('17:00', '19:00')
), // Miércoles
4 => array(
'manana' => array('08:50', '14:00'),
'tarde' => array('17:00', '19:00')
), // Jueves
5 => array(
'manana' => array('09:00', '14:00'),
'tarde' => array('17:00', '19:00')
) // Viernes
);
Como vemos en el código anterior, podemos establecer un horario de mañana y otro de tarde indistintamente a cada día de la semana en que estamos abiertos al público. Tenemos que tener en cuenta, que los días de la semana comienzan siempre en Domingo=0, Lunes=1, Martes=2, Miércoles=3, Jueves=4, Viernes=5 y Sábado=6
También se pueden incluir días Festivos o especiales con un horario específico. Esto lo podemos modificar o añadir días en la siguiente parte del código que contiene la función:
// Lista de fechas en formato "dd-mm-yyyy" junto con horarios de inicio y fin.
$fechasEspeciales = array(
'01-11-2023' => array(
'manana' => array('00:00', '00:00'),
'tarde' => array('00:00', '00:00')
),
'25-12-2023' => array(
'manana' => array('00:00', '00:00'),
'tarde' => array('00:00', '00:00')
)
);
En el código anterior vemos que tenemos dos días en los cuales no tenemos atención al cliente, ya sea por ser festivos o cualquier otro motivo, como día de vacaciones, etc.
Escribiendo 00:00 en el horario de mañana y de tarde haremos que sea para todo el día.
¿Que devuelve la función?
La función devuelve únicamente dos valores, 0 cuando está fuera del horario y días especiales y 1 cuando está dentro del horario de atención al cliente.
¿Cómo implementar la función dentro del Tema Bricks Builder para WordPress?
Implementar esta función dentro del Tema Bricks Builder de WordPress es muy sencillo y lo explico a continuación. Primero recomiendo que cuando tengas instalado el Tema Bricks builder además instales el tema hijo. Y es en el Tema hijo donde implementaremos esta función. Para ello iremos al Menú de WordPress Apariencia/Editor de Archivos del tema y una vez dentro seleccionamos la opción Funciones del Tema. Como vemos en la imagen de abajo.
Una vez dentro del código del tema incluiremos al final del todo nuestra función, que puedes copiar y pegar desde este artículo.
Dentro de Bricks Builder, en la plantilla de la cabecera de la Web será donde le pondremos la condición apropiada para visibilizar el contenedor o bloque que corresponda al número de teléfono que se quiera mostrar dentro del horario de atención al público.
Siempre que queramos que se muestre el contenedor que contiene el número de teléfono para que nos llamen hay que poner ==1 y si queremos que se muestre un mensaje de aviso que estás fuera del horario de atención al público, tendremos que poner la misma condición en el contenedor del mensaje de aviso pero con ==0
Video explicativo
En este vídeo de mi canal de Youtube te muestro cómo implementarlo y cómo funciona.
Mejorando la Experiencia del Usuario
En resumen, la función atenciontelefonica()
en PHP es una herramienta poderosa para optimizar los horarios, días especiales y días festivos en tu página web. Al proporcionar información precisa y relevante, mejoras la experiencia del usuario y haces que tu sitio web sea más eficiente.
Si deseas simplificar la gestión de horarios y días especiales en tu página web, no dudes en considerar la implementación de la función atenciontelefonica()
. Tu sitio web y tus usuarios te lo agradecerán.
Conclusión
Gestionar horarios y días especiales en una página web puede ser un desafío, pero con la función atenciontelefonica()
en PHP, puedes simplificar este proceso y ofrecer una experiencia de usuario más fluida y eficiente. Aprovecha esta herramienta versátil para mejorar la gestión de horarios y días festivos en tu sitio web y, en última instancia, satisfacer las necesidades de tus usuarios.
AVISO. Si utilizar en tu página Web un plugin de Caché, puede que no te funcione correctamente porque las páginas al quedar cacheadas no refrescan la información del servidor hasta que se actualiza de nuevo la caché. Para corregir este problema de la caché, se puede realizar la llamada a la función mediante Ajax o decirle al plugin de la caché que la actualice cada hora.