Home » WooCommerce » Como desativar o checkout do WooCommerce em data específica ou dia da semana

Como desativar o checkout do WooCommerce em data específica ou dia da semana

Você provavelmente sabe que o WooCommerce é uma das plataformas de comércio eletrônico mais populares em todo o mundo. Como é relativamente fácil de montar, há várias empresas que o utilizam não apenas para vender produtos.

Por exemplo, um de meus clientes usa o WooCommerce para reserva de alimentos em um pequeno restaurante de Sushi. E há dias em que o restaurante não funciona. Por exemplo – às segundas-feiras, na primeira semana após o Ano Novo, etc. Então, ele me pediu para construir uma função para desativar o checkout em datas específicas ou dias da semana. Hoje vou lhe mostrar como adicionar esta função ao seu site WooCommerce também.

Pouco antes de começar, precisamos fazer uma pequena coisa – ir até sua loja e criar uma página com uma mensagem dizendo algo como “Desculpe, não estamos trabalhando no momento, volte amanhã”. Você precisará de um link para esta página um pouco mais tarde.

Como desativar o checkout do WooCommerce em um dia específico da semana

Aqui está um exemplo de como desativar o checkout na segunda-feira.

Ir para Appearance >> Editor de Arquivo Temático, ou Ferramentas >> Editor de Arquivo Temático, e abrir o arquivo function.php no lado direito da tela.

Uma vez lá, adicione este código ao final do arquivo function.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');
    }
}

O que esta função faz? Basicamente interrompe uma das funções de checkout. Se o dia da semana for segunda-feira, ele redireciona automaticamente o cliente para a página que você criou antes – aquela que diz que a loja não funciona no momento.

Se você quiser desativar o checkout nos finais de semana, você pode substituir if (date(‘D’) == ‘Mon’) { por:

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

Você pode usar Seg, Ter, Quar, Qua, Qui, Sex, Sáb e Dom para os dias de semana na função.

Como desativar o checkout do WooCommerce em uma data específica ou daterange

Para desativar o checkout no WooCommerce em datas específicas, usaremos a mesma função que antes, apenas com algumas mudanças.

Ir para Appearance >> Editor de Arquivo Temático, ou Ferramentas >> Editor de Arquivo Temático, e abrir o arquivo function.php no lado direito da tela. Depois acrescente este código ao final do arquivo function.php, o mesmo de 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');
    }
}

Assim que você salvar as mudanças, o cliente será automaticamente redirecionado para a URL especificada naquela data.

Best WordPress hosting 2024

Se você quiser desativar o checkout em sua loja WooCommerce por mais de um dia, você pode usar a mesma função para toda a daterange. Basta substituir se ( $date_now == ‘2022-12-25’) { por esta linha:

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

Neste exemplo específico o checkout seria desativado de 2022-12-25 a 2023-01-01.

Link do autor da imagem original da capa aqui.

Fathom analytics