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 11 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 13 respostas - 46 até 58 (de um total de 58)
  • Moderador Felipe Santos

    (@felipeloureirosantos)

    Olá, tudo bem?

    Levar as mensagens dos fóruns para comunicação externa vai contra as diretrizes de participação. Lembre-se que estamos todos aqui como voluntários.

    https://br.wordpress.org/support/diretrizes-do-forum/

    Se precisar de ajuda profissional para consultoria ou desenvolvimento tente sites especializados como o https://www.hirewp.dev/, https://hangarwp.com/ ou http://jobs.wordpress.net/. Você também pode procurar desenvolvedores em um meetup do WordPress.

    robertdccaetano

    (@robertdccaetano)

    Boa tarde meu caro, archer-master. Vou testar sua duas soluções e te retorno se deu certo. Muito obrigado! 😀

    • Esta resposta foi modificada 11 meses atrás por Felipe Santos. Razão: Desmarcando usuários
    robertdccaetano

    (@robertdccaetano)

    Testei e não deu certo os dois códigos :/, eu percebi um comportamento o carrinho parece que está na página principal por isso o ‘notice’ não exibe para o id == 814 nesse caso.
    Segue o print

    Nura

    (@archer-master)

    Boa noite, agora com o print consegui entender totalmente seu problema, fiz desse jeito.

    add_action('get_header', 'pega_titulo', 10);
    	add_action('woocommerce_before_cart_contents', 'pega_titulo');
    
    	function pega_titulo() {
    	    $page_id = get_queried_object_id();
    	    global $woocommerce;
    	global $post;
     if(($post->ID ==  $page_id) && is_page('Checkout') or $post->ID ==  $page_id) {
    	
    	        $numero = $woocommerce->cart->cart_contents_count;
    	   
    	        if ($numero <= 1) {
    	          
    	            wc_print_notice('Product ID '.$page_id.
    	                ' Senhor(a) Cliente, adicione mais um item para liberar o pagamento', 'notice');
    
    	            remove_action('woocommerce_proceed_to_checkout',
    	                'woocommerce_button_proceed_to_checkout', 20);
    					
      remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
    
    	        }
    	        elseif($numero >= 2) {
    	            wc_print_notice('Product ID '.$page_id.
    	                ' A página de  pagamento foi liberado', 'notice');
    
    	        }
    			
    	    }
    	}
    Nura

    (@archer-master)

    Bom dia, troquei para pegar a page por id e mudei a condicional.

    	add_action('get_header', 'pega_titulo', 10);
    	add_action('woocommerce_before_cart_contents', 'pega_titulo');
    
    	function pega_titulo() {
    	    $page_id = get_queried_object_id();
    	    global $woocommerce;
    	global $post;
     if(($post->ID ==  $page_id) == is_page('139') or $post->ID ==  $page_id) {
    	
    	        $numero = $woocommerce->cart->cart_contents_count;
    	   
    	        if ($numero <= 1) {
    	          
    	            wc_print_notice('Product ID '.$page_id.
    	                ' Senhor(a) Cliente, adicione mais um item para liberar o pagamento', 'notice');
    
    	            remove_action('woocommerce_proceed_to_checkout',
    	                'woocommerce_button_proceed_to_checkout', 20);
    					
     remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
    
    	        }
    	        elseif($numero >= 2) {
    	            wc_print_notice('Product ID '.$page_id.
    	                ' A página de  pagamento foi liberado', 'notice');
    
    	        }
    			
    	    }
    	}
    robertdccaetano

    (@robertdccaetano)

    Boa tarde, meu caro archer-master. Coloquei esse seu código de 2 horas atrás olha como ficou o resultado nos prints a seguir.
    Print 1
    Print 2

    Observe que o botão permanece lá. Obrigado meu amigo, feliz ano novo desde já! Forte abraço!

    • Esta resposta foi modificada 10 meses, 4 semanas atrás por Felipe Elia. Razão: Remoção de menção a outro usuário
    Moderador Felipe Elia

    (@felipeelia)

    Olá, @robertdccaetano. Como o Felipe Loureiro já havia alertado antes, por favor, não use o @ na frente do nome usuário para chamar a sua atenção. Isso é contra as nossas diretrizes. Também é contra as diretrizes tentar levar a conversa para fora dos fóruns, por favor, não faça isso novamente 🙂

    Como você ignorou os avisos anteriores, as suas interações aqui no fórum passaram a ser moderadas. Por esse motivo, infelizmente, elas não serão mais publicadas imediatamente. Eu gostaria muito de poder conversar sobre isso no canal #forum-oficial do nosso slack para que a gente possa retirar essa marcação do seu usuário e tudo voltar ao normal.

    Desde já agradeço a sua compreensão.

    Boa noite, Felipe. Certo, muito obrigado pela cordialidade, me desculpe por violar as diretrizes do forum.

    Nura

    (@archer-master)

    Bom dia robertdccaetano, eu fiz uma função separada para ocultar o botão de finalizar compra no menu do carrinho.

        add_action('woocommerce_widget_shopping_cart_buttons', 'primary_id_cart', 10);
        function primary_id_cart() {
            $page_cart_id = get_queried_object_id();
            global $woocommerce;
    
       if (is_page($page_cart_id) )  { 
                $numero = $woocommerce->cart->cart_contents_count;
                if ($numero <= 1) {  
                          remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
                }
                else{
                    
                    add_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
                }
            }
        }
          remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
       
        add_action('woocommerce_before_cart_contents', 'pega_titulo');
    
        function pega_titulo() {
            $page_id = get_queried_object_id();
            global $woocommerce;
    
       if (is_page($page_id) )  { 
                $numero = $woocommerce->cart->cart_contents_count;
           echo $page_id ;
                if ($numero <= 1) {
                  
                    wc_print_notice('Product ID '.$page_id.
                        ' Senhor(a) Cliente, adicione mais um item para liberar o pagamento', 'notice');
    
                    remove_action('woocommerce_proceed_to_checkout',
                        'woocommerce_button_proceed_to_checkout', 20);
                          remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
    
                }
                elseif($numero >= 2) {
                    
                    wc_print_notice('Product ID '.$page_id.
                        ' A página de  pagamento foi liberado', 'notice');
    
                }
            }
        }
    Nura

    (@archer-master)

    O código que mandei antes também funciona, esse eu adicione uma mensagem de errore successem wc_print_notice

        add_action('woocommerce_widget_shopping_cart_buttons', 'primary_id_cart', 10);
        function primary_id_cart() {
            $page_cart_id = get_queried_object_id();
            global $woocommerce;
    
       if (is_page($page_cart_id) )  { 
                $numero = $woocommerce->cart->cart_contents_count;
                if ($numero <= 1) {  
                          remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
                }
                else{
                    
                    add_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
                }
            }
        }
          remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
       
        add_action('woocommerce_before_cart_contents', 'pega_titulo');
    
        function pega_titulo() {
            $page_id = get_queried_object_id();
            global $woocommerce;
    
       if (is_page($page_id) )  { 
                $numero = $woocommerce->cart->cart_contents_count;
           echo $page_id ;
                if ($numero <= 1) {
                  
                    wc_print_notice(sprintf( 'ID: '.$page_id. ' Senhor(a) Cliente, adicione mais um item para liberar o pagamento' , 
                        wc_price( WC()->cart->total ), 
                        wc_price( $numero )
                    ), 'error' 
                );
                    remove_action('woocommerce_proceed_to_checkout',
                        'woocommerce_button_proceed_to_checkout', 20);
                          remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
    
                }
                elseif($numero >= 2) {
                     wc_print_notice( 
                   sprintf( 'ID: '.$page_id.
    	                ' O total atual do seu pedido é %s, a página de  pagamento foi liberada' , 
                        wc_price( WC()->cart->total ), 
                        wc_price( $numero )
                    ), 'success' 
                );
                }
            }
        }
    • Esta resposta foi modificada 10 meses, 4 semanas atrás por Nura.

    Boa tarde, Nura. Vou testar seus códigos meu caro. Sabe se existe uma maneira de carregar um plugin ao usar a action get_header? Exemplo, add_action('get_header', 'aqui-alguma-funcao-quecarrega-plugin');. (Por que aparentemente o plugin está sendo carregado somente la na página principal que tem o ID 139, e quando eu entro em uma outra página o carrinho que no caso é um plugin instalado continua como se ele tivesse na página de ID 139 ao invés de estar na página Monte seu combo que possui o ID 814, pois só quero que apareça esse notice(aviso) quando estiver na página 814. Muito obrigado!

    • Esta resposta foi modificada 10 meses, 4 semanas atrás por robertdccaetano.
    Nura

    (@archer-master)

    Bom dia robertdccaetano, não conheço uma função que carrega o plugin desse jeito.
    A sua página do checkout vai ser sempre o id 139, você pode usar is_page() com um array para mostrar somente nas páginas que precisa.
    Exemplo:

    if( is_page( array( 1, 5, 7) ) ) { 
    // Seu Código
    }
    • Esta resposta foi modificada 10 meses, 3 semanas atrás por Nura.
    • Esta resposta foi modificada 10 meses, 3 semanas atrás por Nura.

    Bom dia, Nura. Compreendi, ontem eu resolvi parar de tentar identificar a pagina por id e pegar por URL e acabei percebendo uma coisa, segue o print de como está a url em que o carrinho se encontra, ela é diferente da url da página.

    Aqui o link do print, não sei se tu vai conseguir ver a url da parte da header pois está escurecido

    • Esta resposta foi modificada 10 meses, 3 semanas atrás por robertdccaetano.
    • Esta resposta foi modificada 10 meses, 3 semanas atrás por robertdccaetano.
Visualizando 13 respostas - 46 até 58 (de um total de 58)
  • O tópico ‘Ocultar botão finalizar compra’ está fechado para novas respostas.