Home » WooCommerce » Cómo deshabilitar el pago de WooCommerce en una fecha específica o día de la semana

Cómo deshabilitar el pago de WooCommerce en una fecha específica o día de la semana

Probablemente sepas que WooCommerce es una de las plataformas de comercio electrónico más populares en todo el mundo. Como es relativamente fácil de configurar, hay varios negocios que la usan no sólo para vender productos.

Por ejemplo, uno de mis clientes utiliza WooCommerce para la reserva de comida en un pequeño restaurante de Sushi. Y hay días en los que el restaurante no funciona. Por ejemplo – los lunes, la primera semana después de Año Nuevo, etc. Así que me pidió que construyera una función para desactivar el pago en fechas específicas o días de la semana. Hoy te voy a mostrar cómo agregar esta función a su sitio web WooCommerce también.

Antes de empezar necesitamos hacer una pequeña cosa – ve a tu tienda y crea una página con un mensaje que diga algo como «Lo sentimos, no estamos trabajando en este momento, vuelve mañana». Necesitarás un enlace a esta página un poco más tarde.

Cómo deshabilitar el pago en WooCommerce en un día específico de la semana

Aquí tienes un ejemplo de cómo deshabilitar el pago los lunes.

Ve a Apariencia >> Editor de Archivos Temáticos, o Herramientas >> Editor de Archivos Temáticos, y abre el archivo function. php en la parte derecha de la pantalla.

Una vez allí, añade este código al final del archivo functions.php:

add_action( 'woocommerce_check_cart_items', 'woocommerce_check_cart_quantities' );
function woocommerce_check_cart_quantities() {
    if (date('D') == 'Mon') {
       wp_redirect('https://yourwebsite.com/come-back-later');
    }
}

¿Qué hace esta función? Básicamente interrumpe una de las funciones de pago. Si el día de la semana es lunes, redirige automáticamente al cliente a la página que creaste antes – la que dice que la tienda no funciona en ese momento.

Si quieres deshabilitar el checkout los fines de semana, puedes reemplazar if (date(‘D’) == ‘Mon’) { con:

if ( (date('D') == 'Sat') || (date('D') == 'Sun') ) {

Puedes usar Mon, Tue, Wed, Thu, Fri, Sat y Sun para los días de semana en la función.

Cómo deshabilitar el pago en WooCommerce en una fecha o intervalo de fechas específico

Para deshabilitar el checkout en WooCommerce en fechas específicas, usaremos la misma función que antes, solo que con algunos cambios.

Ve a Apariencia >> Editor de Archivos Temáticos, o Herramientas >> Editor de Archivos Temáticos, y abre el archivo function. php en la parte derecha de la pantalla. A continuación, agregue este código al final del archivo functions.php, igual que antes:

add_action( 'woocommerce_check_cart_items', 'woocommerce_check_cart_quantities' );
function woocommerce_check_cart_quantities() {
    $date_now = date("Y-m-d");      // get today's date
    if ( $date_now == '2022-12-25') {    // date format year-month-day
        wp_redirect('https://yourwebsite.com/come-back-later');
    }
}

Una vez que haya guardado los cambios, el cliente será redirigido automáticamente a la URL especificada en esa fecha.

Si quieres desactivar el checkout en tu tienda WooCommerce durante más de un día puedes usar la misma función para todo el rango de fechas. Simplemente sustituye if ( $date_now == ‘2022-12-25’) { por esta línea:

if ( ( $date_now > '2022-12-24') && ($date_now < '2023-01-02') ) {

Best WordPress hosting 2024

En este ejemplo concreto el checkout estaría desactivado del 2022-12-25 al 2023-01-01.

Enlace de autor de la imagen de portada original aquí.

Fathom analytics - privacy focused cookie-free website analytics

Most popular tutorials


Get our latest WordPress news and special offers from RockSolidWP!

Only useful WordPress and WooCommerce tips and tricks and exclusive offers for our readers once a month. No marketing nonsense.

Looking for reliable yet affordable WordPress hosting?
Hostinger is the way to go!

Get 10% OFF by using code IMAKEITWORK