Cómo usar la clase WC_DateTime en WooCommerce

La clase WC_DateTime de WooCommerce es una herramienta poderosa para manejar fechas y horas en proyectos relacionados con WooCommerce. Basada en la clase DateTime de PHP, incluye funcionalidades adicionales específicas para el entorno WooCommerce.

En este artículo, exploraremos cómo inicializar la clase, realizar condicionales y formatear la salida de fechas con ejemplos prácticos.

 

Qué es la clase WC_DateTime

WC_DateTime extiende la clase DateTime nativa de PHP, añadiendo características como:

  • Compatibilidad con zonas horarias específicas de WooCommerce.
  • Métodos simplificados para formatear fechas.
  • Manejo de conversiones entre UTC y la zona horaria configurada en WordPress.

 

Inicializar un objeto WC_DateTime

Para crear una instancia de WC_DateTime, puedes usar varios formatos de inicialización. Aquí un ejemplo:

<?php
// Crear un objeto WC_DateTime con la fecha actual
$date = new WC_DateTime();

// Crear un objeto con una fecha específica
$specificDate = new WC_DateTime('2024-11-29 15:30:00');

// Crear un objeto con zona horaria específica
$timeZone = new DateTimeZone('America/Lima');
$customDate = new WC_DateTime('2024-11-29 15:30:00', $timeZone);

echo $date->format('Y-m-d H:i:s'); // Formato estándar

 

Si no se especifica la zona horaria, WooCommerce usará la configuración predeterminada de WordPress.

 

Realizar condicionales con WC_DateTime

Puedes comparar fechas utilizando operadores estándar ( <, >, ==) o los métodos de comparación nativos.

Ejemplo: Comparar fechas

<?php
$today = new WC_DateTime();
$eventDate = new WC_DateTime('2024-12-01 00:00:00');

// Condicional: Verificar si una fecha ya pasó
if ($eventDate < $today) {
    echo "El evento ya pasó.";
} elseif ($eventDate == $today) {
    echo "El evento es hoy.";
} else {
    echo "El evento es en el futuro.";
}

Imprimir y formatear fechas con WC_DateTime 

La clase WC_DateTime hereda el método format() de PHP para personalizar la salida. Además, ofrece métodos adicionales como getTimestamp().

Ejemplo: Imprimir fechas formateadas

<?php
$date = new WC_DateTime('2024-11-29 15:30:00');

// Formato personalizado
echo $date->format('d/m/Y H:i'); // Salida: 29/11/2024 15:30

// Obtener timestamp UNIX
echo $date->getTimestamp(); // Salida: 1732889400

// Convertir a la zona horaria de WordPress
$date->setTimezone(wc_timezone_string());
echo $date->format('Y-m-d H:i:s'); // Formato adaptado a WordPress

 

Usos comunes de WC_DateTime en WooCommerce

La clase es útil para manejar fechas en diversas funcionalidades relacionadas con WooCommerce. Aquí algunos casos prácticos:

Ejemplo: Obtener la fecha de creación de un pedido

<?php
$order = wc_get_order(123); // Reemplaza 123 con el ID de un pedido
$orderDate = $order->get_date_created(); // Devuelve un objeto WC_DateTime

echo $orderDate->format('d/m/Y H:i'); // Salida: Fecha de creación del pedido

 

 

Ejemplo: Verificar si una suscripción ha expirado

<?php
$subscription = wcs_get_subscription(456); // Reemplaza 456 con el ID de la suscripción
$endDate = $subscription->get_date('end'); // Obtiene la fecha de finalización

if ($endDate && new WC_DateTime() > $endDate) {
    echo "La suscripción ha expirado.";
} else {
    echo "La suscripción está activa.";
}

 

La clase WC_DateTime es una herramienta flexible y esencial para manejar fechas y horas en WooCommerce. Gracias a su integración con la configuración de WordPress y WooCommerce, simplifica tareas como comparaciones de fechas, formateos y manejo de zonas horarias.

Si estás desarrollando funcionalidades personalizadas para WooCommerce, como plugins o temas, dominar WC_DateTime te permitirá gestionar fechas de manera eficiente y profesional.

¿Tienes dudas o preguntas? ¡Déjalas en los comentarios!

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x