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 3 meses, 1 semana 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.

    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/

    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>';
           }
    }
    
    • Esta resposta foi modificada 3 meses, 1 semana atrás por robertdccaetano.
    • Esta resposta foi modificada 3 meses, 1 semana atrás por robertdccaetano.
    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. 😉

    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. 🙂

    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/

    • Esta resposta foi modificada 3 meses, 1 semana atrás por Rafael Botelho.

    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!

    • Esta resposta foi modificada 3 meses, 1 semana atrás por marioernestoms.
    • Esta resposta foi modificada 3 meses, 1 semana atrás por 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 🙂

    • Esta resposta foi modificada 3 meses, 1 semana atrás por marioernestoms.
    • Esta resposta foi modificada 3 meses, 1 semana atrás por marioernestoms.
    • Esta resposta foi modificada 3 meses, 1 semana atrás por marioernestoms.
    • Esta resposta foi modificada 3 meses, 1 semana atrás por marioernestoms.
    • Esta resposta foi modificada 3 meses, 1 semana atrás por marioernestoms.

    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) .

    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 {
    	
          }
        }
      }
    • Esta resposta foi modificada 3 meses, 1 semana atrás por robertdccaetano.
    • Esta resposta foi modificada 3 meses, 1 semana atrás por robertdccaetano.
Visualizando 15 respostas - 1 até 15 (de um total de 58)
  • Você deve estar conectado para responder a este tópico.