Sección Visible según fecha y hora - Oxygenados La comunidad
Oxygenados La comunidad hispana
Recoda White Full Logo
Patrocinador
Menu
post oxygen builder

Sección Visible según fecha y hora

Listado de Guías

Se trata de mostrar una sección, un div, un texto o cualquier elemento entre un rango de tiempo determinado, este tiempo lo estableceremos entre una fecha y hora de inicio y una fecha y hora de finalizado.
En Oxygen lo incrustaremos mediante un elemento "ShortCode Wrapper".

Vamos a proponer dos códigos diferentes que realizarán la exactamente la misma función en el frontend, la diferencia solo será la forma en la que se establecen las fechas y horas tanto de inicio como de finalizado; entendiendo la fecha de hora y hora de inicio cuando el elemento que queremos manejar empieza a ser mostrado, y la fecha y hora de finalizado será cuando el elemento dejará de ser mostrado en el frontend.

Un caso práctico a modo de ejemplo podría ser el anuncio de una oferta o promoción que esté vigente entre unos días determinados, como podrían ser los Prime Days de Amazon.

El código php se puede incrustar bien en la sección de php/HTML de un elemento Code Block o bien con un script en un gestor de snippets como WpCodeBlock.

En la primera de las opciones propuestas los datos de fecha y hora serán introducidos desde el mismo shortcode, a nuestro entender algo engorroso y mas propenso a cometer errores debido a la limitación visual de la caja de entrada de datos del elemento shortcode.

Código Primera Opción

Insertar un elemento Code Block y dentro de la sección PHP&HTML pegar el código de abajo.

¡ Código Copiado !
<?php
function mostrar_sobre_fecha_shortcode($atts, $content = null) {
   extract(shortcode_atts(array(
        'inicio_fecha' => '',
        'inicio_hora' => '',
        'fin_fecha' => '',
        'fin_hora' => ''
    ), $atts));

    $zona_horaria = new DateTimeZone(get_option('timezone_string'));
    $fecha_actual = new DateTime('now', $zona_horaria);
    
    $inicio_fecha_hora = new DateTime($inicio_fecha . ' ' . $inicio_hora, $zona_horaria);
    $fin_fecha_hora = new DateTime($fin_fecha . ' ' . $fin_hora, $zona_horaria);
   if ($fecha_actual >= $inicio_fecha_hora && $fecha_actual <= $fin_fecha_hora) {
        return $content; 
    } else {
        return ''; 
    }
}
add_shortcode('oxygenados_rep', 'mostrar_sobre_fecha_shortcode');
?>

En la zona donde queremos mostrar el elemento que se mostrará / ocultará  añadimos un elemento "Shortcode Wrapper"

Copiamos y pegamos el código del shortcode de abajo entro de la caja de datos, cambiando los datos de fecha y hora de inicio y de fin por los correspondientes a los que necesites, pero siempre respetando el formato de fecha “año-mes-dia” para las fechas y  “hora:minutos” para las horas y siempre encerrando los datos entre comillas.

¡ Código Copiado !
[oxygenados_rep inicio_fecha="2023-07-01" inicio_hora="09:00" fin_fecha="2023-07-16" fin_hora="00:27"]Contenido[/oxygenados_rep]

Ahora dentro de la jerarquía del Shortcode Wrapper añadimos todos los elementos que se necesiten y serán mostrodos/ocultados, ver imagen de abajo.

Código Segunda Opción

Es exactamente el mismo procedimiento que el anterior, solo varía el código, y será aquí en el código donde estableceremos los datos fecha y hora para el inicio y fin.
Para ello se modificarán los valores por los adecuados de las variables $incio_fecha, $inicio_hora, $fin_fecha y $fin_hora y como siempre, respetando los formatos y que estén dentro de las comillas.

¡ Código Copiado !
<?php
function fecha_hora_shortcode($atts, $content = null) {
	$inicio_fecha= '2023-07-16';
	$inicio_hora ='00:16';
	$fin_fecha='2023-07-16';
	$fin_hora ='00:28';

    $zona_horaria = new DateTimeZone(get_option('timezone_string'));
    $fecha_actual = new DateTime('now', $zona_horaria);
    
    $inicio_fecha_hora = new DateTime($inicio_fecha . ' ' . $inicio_hora, $zona_horaria);
    $fin_fecha_hora = new DateTime($fin_fecha . ' ' . $fin_hora, $zona_horaria);

    if ($fecha_actual >= $inicio_fecha_hora && $fecha_actual <= $fin_fecha_hora) {
        return $content; 
    } else {
        return ''; 
    }
}
add_shortcode('oxygenados_short', 'fecha_hora_shortcode');
?>

En la zona donde queremos mostrar el elemento que se mostrará / ocultará  añadimos un elemento "Shortcode Wrapper"

Copiamos y pegamos el código del shortcode de abajo entro de la caja de datos, pero en este caso no es necesario editar nada aquí ya que los datos los toma del propio codigo php.

¡ Código Copiado !
[oxygenados_short]Contenido[/oxygenados_short ]

Y procedemos igualmente que en el caso anterior a añadir los elementos necesarios.

Como siempre esperamos tus comentarios y por supuesto si tienes alguna duda o necesitas ayuda puedes contactar por nuestro grupo de Telegram o dejando un comentario.

Nos vemos en la próxima. 👌

0 0 votos
Puntuación
Suscribir
Notificar de
guest
0 Comentarios
Viejos
Nuevos Más votados
Comentarios en línea
Ver todos los comentarios

OTRAS GUIAS

CookieConsent v3

La nueva versión de CoockieConsent de Orest Bida, en este caso la V3, que ofrece mayores funcionalidades y mayor capacidad de personalización.

Leer más
Lighthouse: 5 consejos sencillos

Google Lighthouse es una herramienta gratuita que ayuda a analizar la calidad de las páginas web. Audita la accesibilidad, el rendimiento y el SEO, además de recomendar cambios para su mejora.

Leer más
Mostrar categorías principales de WooCommerce

Actualmente, el elemento Lista de categorías de Oxygen no puede mostrar solo las categorías principales de WooCommerce. Sin embargo, hay una solución simple que utiliza el elemento Code Block de Oxygen

Leer más