Suporte » Desenvolvendo com WordPress » Ocultar botão finalizar compra

  • Resolvido robertdccaetano

    (@robertdccaetano)


    Olá, pessoal. Bom dia a vocês, é o seguinte eu precisava ocultar o botão de finalizar compra na página de checkout, após uma condição de uma função minha que estou usando dentro de um action que checa o conteúdo do carrinho, porém não encontrei alguma action que faz o hook desse botão, alguém pode me ajudar por favor? Desde já muito obrigado! Abraços

    • Este tópico foi modificado 9 meses atrás por Felipe Santos. Motivo: Alteração do estado do tópico de "não é uma questão de suporte" para "não resolvido"
Visualizando 15 respostas - 1 até 15 (de um total de 58)
  • Moderador Felipe Santos

    (@felipeloureirosantos)

    Olá, tudo bem?

    Você não conseguiu fazer isso usando CSS?

    Não me parece fazer muito sentido ocultar isso, mas acredito que isso poderia ser uma opção neste caso.

    robertdccaetano

    (@robertdccaetano)

    Olá, Felipe. Tudo joia. É o seguinte, eu quero ocultar quando nao tiver uma certa quantidade de um produto no meu carrinho por exemplo, o cliente comprou apenas um produto en~toa não quero permitir que ele finalize a compra com apenas, somente após adicionar 2 ou mais. Obrigado por responder

    Moderador Felipe Santos

    (@felipeloureirosantos)

    Por nada!

    Então, neste caso, recomendo que utilize está alternativa que oferece uma mensagem ao usuário (além de impossibilitar a compra): https://docs.woocommerce.com/document/minimum-order-amount/

    robertdccaetano

    (@robertdccaetano)

    Felipe, vou te mandar o código que eu estou fazendo, tu poderia dar uma olhada? por favor, e pode me tirar uma dúvida, é possivel usar um add_action dentro de uma função? Pois era o que eu precisava, para fazer com que o alerta aparecesse apenas numa página específica onde encontra-se os produtos.

    add_action('get_header', 'pega_titulo');
    
       function pega_titulo () { 
         $tit = get_the_title();
         if($tit == "Monte seu combo"){
            add_action('woocommerce_before_cart_contents', 'verifica_qtde');
         } else { 
    	 echo "Passei pelo init";
         }
    }
    
         function verifica_qtde () {
           global $woocommerce;
           $numero =  $woocommerce->cart->cart_contents_count;
    	if (($numero >= 0 )  && ($numero < 2)) {
    	   echo '<script> alert("***ATENÇÃO*** É PRECISO PELO MENOS DOIS ITENS PARA FECHAR UM COMBO")  </script>';
           }
    }
    
    Moderador Felipe Santos

    (@felipeloureirosantos)

    Isso não consigo ajudar porque não sou desenvolvedor. Compartilhei a sua dúvida com a equipe de voluntários que contribuem com o fórum caso alguém consiga lhe ajudar.

    De qualquer forma, acredito que basta você testar e ver se funciona normalmente. Como não é a minha especialidade, prefiro não comentar. 😉

    robertdccaetano

    (@robertdccaetano)

    Certo, Felipe. Muito obrigado meu caro, bom final de semana e boas festas! Obrigado por compartilhar, fico no aguardo. Abraços

    Moderador Felipe Santos

    (@felipeloureirosantos)

    Por nada, boa sorte! Bom final de semana e boas festas para você também. 🙂

    robertdccaetano

    (@robertdccaetano)

    Valeu, Rafael Botelho vou dar uma olhada. 😀 Tu poderia dar uma olhada nesse meu código maluco? kk tu sabe me dizer se não é possível executar um add_action dentro de uma function ou if, nesse caso?

    @robertdccaetano utilizar action dentro da função é possível, não sei dizer se isso é uma boa prática ou não.

    Sobre o alerta exibir apenas em uma página específica, você pode usar is_page(). Passando o ID, Slug, nome da página, ou usar is_home(), is_front_page(), is_shop(), enfim, existem diversas possibilidades.

    https://developer.wordpress.org/reference/functions/is_page/

    marioernestoms

    (@marioernestoms)

    Ola @robertdccaetano,

    Cara precisei fazer isso ontem pra um cliente que colocou a e-commerce em manutenção escrevi até um post no meu blog. segue a solução pra customizar o botão de checkout do produto basta colocar esse código no functions.php do seu tema:

    function woocommerce_button_proceed_to_checkout() {
           $checkout_url = WC()->cart->get_checkout_url();
           ?>
           <a href="<?php echo $checkout_url; ?>" class="checkout-button button alt wc-forward"><?php _e( 'Check On Out', 'woocommerce' ); ?></a>
           <?php
         }

    nesse meu caso eu só to alterando o nome, mas dentro dessa função você pode pegar a quantidade no carrinho e passar dentro da função se precisar posso colocar aqui mais completa a solução

    abraços!

    marioernestoms

    (@marioernestoms)

    @robertdccaetano,

    Pra pegar a quantidade e ocultar se a quantidade for menor que X você pode tentar algo assim:

    /**
     * Disable checkout button if total cart less or equal than 5 products.
     */
    function disable_checkout_button() {
    	global $woocommerce;
    
    	$total = $woocommerce->cart->cart_contents_count; // Change made
    
    	if ( $total <= 5 ) {
    		remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
    		echo '<a href="#" class="checkout-button button alt wc-forward">Proceed to checkout</a>';
    	}
    }
    
    add_action( 'woocommerce_proceed_to_checkout', 'disable_checkout_button', 1 );
    

    A regra é essa ai, mas vc pode customizar colocando ou um texto junto ao botão ou passando uma classe de css pra deixar cinza. ai vai da sua criatividade 🙂

    Testei aqui em uma e-commerce de testes e funciona, avisa pra gente se resolveu 🙂

    robertdccaetano

    (@robertdccaetano)

    Bom dia, pessoal. @marioernestoms @rhenrigb. Cheguei aqui no trabalho vou colocar em prática as sugestões de vocês e já comunico se deu certo, desde já muito obrigado pela força meus caros!! @rhenrigb Coloquei ontem o is_page com o id da página irmão, mas ele nao reconheceu o ID, não sei se eu fiz errado, mas passei da seguinte forma, is_page(818) .

    robertdccaetano

    (@robertdccaetano)

    Bom pessoa, não sei o que acontece estou na página “Monte seu combo” ela é uma página descendente de uma anterior que no caso é uma cidade por exemplo, Ribeirão Preto é ascendente de Monte seu combo, porém o is_page(“Monte seu combo”) não está identificando qual página é, sera que preciso puxar algo do cabeçalho? Segue o código.

    add_action('woocommerce_before_cart_contents', 'verifica_qtde', 20);		
    
     if(is_page("Monte seu combo")){
        echo 'Verdadeiro';
        function verifica_qtde () {
          global $woocommerce;
          $numero =  $woocommerce->cart->cart_contents_count;
          if ( ($numero >= 0 )  && ($numero < 2) ) {
    	echo '<script> alert("**ATENÇÃO** É PRECISO PELO MENOS DOIS ITENS PARA FECHAR UM COMBO") </script>';
          } else {
    	
          }
        }
      }
Visualizando 15 respostas - 1 até 15 (de um total de 58)
  • O tópico ‘Ocultar botão finalizar compra’ está fechado para novas respostas.