• By Nacho
  • 23 de junio de 2024

Cómo hacer que un producto de WooCommerce sea visible solo de lunes a viernes

Cómo hacer que un producto de WooCommerce sea visible solo de lunes a viernes

Cómo hacer que un producto de WooCommerce sea visible solo de lunes a viernes 1024 768 Nacho

Dificultad Alta

Automatizar la visibilidad del producto en WordPress según el día de la semana con CRON y desarrollo a medida puede mejorar significativamente la gestión de tu tienda online. Aunque este método requiere cierta configuración técnica, los beneficios de una mayor control sobre cómo y cuándo se muestran tus productos son claros. Implementa esta solución y observa cómo mejora la experiencia de usuario y la gestión de tu inventario.

Pasos para Hacer un Producto Visible Solo de Lunes a Viernes

Para controlar la visibilidad de los productos de forma automática según el día de la semana, necesitamos crear una tarea CRON que ajuste la visibilidad del producto en la base de datos de WordPress. Aquí te guío paso a paso en el proceso.

1. Crear un Script PHP

Primero, necesitas crear un script PHP que se conecte a tu base de datos de WordPress y actualice la visibilidad del producto. Este script utilizará las funciones nativas de WordPress para garantizar la compatibilidad y la seguridad, ocultando o mostrando el producto con ID=7:

<?php 
require('wp-load.php'); // Carga el entorno de WordPress

function update_product_visibility() {
    $day_of_week = date('w');
    $product_id = 7; // Establece el ID del producto que deseas modificar

    if ($day_of_week >= 1 && $day_of_week <= 5) {
        // Es un día entre semana, mostrar producto
        $visibility = 'visible';
    } else {
        // Fin de semana, ocultar producto
        $visibility = 'hidden';
    }

    // Actualizar la visibilidad solo del producto con ID = 7
    update_post_meta($product_id, '_visibility', $visibility);
}

update_product_visibility();
?>

Para ajustar el script PHP y manejar múltiples productos por sus IDs, simplemente puedes extender la lógica para incluir todos los IDs de productos que desees modificar. Esto se puede hacer utilizando un arreglo para almacenar los IDs de los productos y luego iterando sobre este arreglo para actualizar la visibilidad de cada producto de acuerdo al día de la semana.

<?php 
require('wp-load.php'); // Carga el entorno de WordPress

function update_product_visibility() {
    $day_of_week = date('w');
    $product_ids = [7, 10, 153]; // Array de IDs de productos que deseas modificar

    if ($day_of_week >= 1 && $day_of_week <= 5) {
        // Es un día entre semana, mostrar productos
        $visibility = 'visible';
    } else {
        // Fin de semana, ocultar productos
        $visibility = 'hidden';
    }

    // Actualizar la visibilidad de cada producto en el array
    foreach ($product_ids as $product_id) {
        update_post_meta($product_id, '_visibility', $visibility);
    }
}

update_product_visibility();
?>

Este script proporciona una solución nativa y adaptable para controlar la visibilidad de múltiples productos en WooCommerce de WordPress. En concreto, este código utiliza un array en PHP que contiene los IDs en lugar de un único ID. Se define un array llamado $product_ids que contiene todos los IDs de los productos que deseas modificar. Esto permite gestionar fácilmente cualquier número de productos añadiendo o quitando IDs de este array.

Utilizando un bucle foreach, el script realiza sobre cada ID la programación que se contiene dentro del mismo. Para cada ID, se ejecuta la función de WordPress update_post_meta() con los parámetros oportuno, para ajustar la visibilidad según el día de la semana del sistema.

2. Programar CRON en el Servidor

El siguiente paso es configurar una tarea CRON en tu servidor que llame a este script PHP diariamente. La configuración exacta puede variar según tu proveedor de hosting y el panel de gestión que utilices (cPanel, PLESK, etc.), pero generalmente involucra añadir una línea de comando similar a esta:

0 0 * * * /usr/bin/php /ruta/a/tu/script.php

Este comando configura la tarea CRON para ejecutar el script PHP a medianoche todos los días. Recuerda utilizar la ruta de tu sistema y el nombre del fichero que hayas creado. No copies y pegues simplemente…

Consideraciones de Seguridad y Rendimiento

Al trabajar con CRON y scripts personalizados, es crucial considerar la seguridad y el rendimiento. Asegúrate de que tu script esté bien protegido, especialmente si interactúa con la base de datos. Además, evalúa el impacto en el rendimiento de tu sitio al ejecutar estas tareas automatizadas, especialmente en sitios con un gran número de productos.

¿Por qué necesité realizar esta tarea y otros casos?

Hay varias razones por las cuales una empresa podría optar por tener productos disponibles solo de lunes a viernes y no durante los fines de semana. En nuestro caso fue por una estrategia de marketing en la que una tienda virtual tenía ofertas especiales entre semana pero no los fines de semana. Como la empresa no era «lo más proactiva del mundo» para simplemente cambiar los precios, le dimos una vuelta y preparamos diferentes fichas de producto las cuales tenían claras referencias a que esos productos estaban en oferta.

Os dejo algunas de las circunstancias más comunes que podrían justificar esta estrategia por si os sirve para presentar a vuestros clientes como una opción:

  1. Gestión de la Demanda y el Inventario: Algunas empresas pueden enfrentar desafíos en la gestión del inventario y prefieren limitar la disponibilidad de ciertos productos a los días laborables para evitar quedarse sin stock. Esto puede ser especialmente cierto para empresas que venden productos perecederos o con demanda fluctuante.
  2. Recursos de Servicio al Cliente: Si una empresa tiene recursos limitados de servicio al cliente que solo están disponibles durante la semana, puede ser prudente restringir las compras a esos días. Esto asegura que cualquier problema o consulta relacionada con una compra pueda ser atendida de manera oportuna y eficiente.
  3. Estrategias de Marketing y Promociones: Algunas empresas utilizan la disponibilidad limitada como una estrategia de marketing para crear urgencia y aumentar las ventas durante ciertos días. Por ejemplo, productos especiales o promociones pueden estar disponibles solo durante la semana para atraer más tráfico a la tienda en días específicos.
  4. Logística y Envíos: Las operaciones de envío pueden ser más controlables o económicas durante los días laborables, especialmente si los proveedores de logística no operan durante los fines de semana o si los costos de envío son más altos en esos días.
  5. Modelos de Negocio Basados en B2B: Las empresas que operan principalmente en el ámbito B2B (business-to-business) podrían optar por esta restricción, ya que sus clientes empresariales generalmente operan de lunes a viernes. Esto ayuda a sincronizar las operaciones entre las empresas.
  6. Mantenimiento de Sitios Web: Si un sitio requiere mantenimiento regular o actualizaciones que podrían interrumpir la experiencia de compra, es posible planificar estos para los fines de semana y desactivar temporalmente la funcionalidad de compra para evitar inconvenientes a los clientes.
  7. Regulaciones o Políticas Específicas: En algunos casos, las restricciones sobre la disponibilidad de productos pueden estar motivadas por regulaciones legales o políticas de la empresa que requieren limitar las transacciones a días laborables.

Dejar una Respuesta