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 1 mês, 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 - 31 até 45 (de um total de 58)
  • Nura

    (@archer-master)

    Boa noite @robertdccaetano, eu utilizei o tema almaira shop, qual tema está utilizando?

    robertdccaetano

    (@robertdccaetano)

    Bom dia, @archer-master. Eu estou o tema i-max meu caro.

    robertdccaetano

    (@robertdccaetano)

    Eu estou usando o get_the_title() na página descendente da principal, ou seja, Pagina Principal -> Nome da Cidade -> Monte seu combo, mas ele sempre me retorna o título da página que eu marquei como a principal, sabe me dizer por que isso talvez esteja acontecendo ?

    Nura

    (@archer-master)

    Boa tarde @robertdccaetano, eu preciso saber se está utilizando o último código que mandei.
    Se possível manda o link do seu site e se atualizou o código poderia mandar novamente para tentarmos te ajudar.

    robertdccaetano

    (@robertdccaetano)

    Boa tarde, @archer-master. Vou colocar novamente o código que você me passou e passarei o link do site em si. Abaixo ó código seu que estou utilizando lá, e a seguir o link do site. Clique aqui para acessar o site

    add_action('woocommerce_before_cart_contents', 'pega_titulo');
    
    	function pega_titulo() {
    	    $page_id = get_queried_object_id();
    	    global $woocommerce;
    	    if (is_tree($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);
    
    	        }
    	        elseif ($numero >= 2) {
    	            wc_print_notice('Product ID '.$page_id.
    	                ' A página de  pagamento foi liberado', 'notice');
    
    	        }
    	    }
    	}	
    

    OBS: essa função (is_tree) não está funcionando então precisei tirá-la.

    robertdccaetano

    (@robertdccaetano)

    Será que é possivel eu utilizar um WP_query para poder identificar quais são as páginas descendentes dessa principal ? que no caso possui o ID->139, para capturar o título dessas descendentes e ver se ela possui o título ‘Monte seu combo’, porque o que está acontecendo é que mesmo estando numa pagina diferente da principal o $page_id = get_queried_object_id(); o retorno é o ID da página principal que no caso é a 139.

    Nura

    (@archer-master)

    Boa noite @robertdccaetano, vamos imaginar que a página principal seria ‘localização’ e as páginas filhas seriam ‘São Paulo’ e ‘Santa Catarina’. Esta função dá pra fazer o que você quer.

    <?php  
    if ( 139 == $post->post_parent ) { ?>
            <?php echo 'filha' ?>
            <?php
    		// add_action('get_header', 'pega_titulo', 10);
    	add_action('woocommerce_before_cart_contents', 'pega_titulo');
    
    	function pega_titulo() {
     
    	    global $woocommerce;
    		global $post;
    		$name_page = the_title();
    	   if (is_page( $name_page ) ) { 
    	        $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);
    
    	        }
    	        elseif ($numero >= 2) {
    	            wc_print_notice('Product ID '.$page_id.
    	                ' A página de  pagamento foi liberado', 'notice');
    
    	        }
    	    }
    	}
     }
    ?>
    robertdccaetano

    (@robertdccaetano)

    Boa noite, @archer-master. Meu caro seu raciocínio está de acordo com o que eu falei. Irei testar esse seu código e te dou um retorno, muito obrigado desde já pela atenção! 😀 Bom final de semana!

    Meu caro, não deu certo ta complicado essa situação rs. Seria muito pedir o favor de você me ajudar através de um team viewer, ou skype algo do tipo ? Faz dias que to com esse tópico aberto vários companheiros aqui tentaram me ajudar, mas até agora não obtivemos êxito, pode ser que minha explicação não está sendo muito clara, talvez por erro de expressão da minha pessoa na parte da escrita. Ou algum problema no meu ambiente.

    Nura

    (@archer-master)

    Boa noite @robertdccaetano, eu não uso esse aplicativos,se puder usar o GitHub e colocar um tema com algumas funções ficaria mais fácil pra podemos ajudar. Gostaria que tentasse de novo, eu troquei the_title() por get_the_title(). Achei algo parecido com wp query.

    <?php  
    if ( 139  == $post->post_parent ) { ?>
            <?php echo ' filha' ?>
            <?php
    		// add_action('get_header', 'pega_titulo', 10);
    	add_action('woocommerce_before_cart_contents', 'pega_titulo');
    
    	function pega_titulo() {
     
    	    global $woocommerce;
    		global $post;
    		$name_page = get_the_title();
    	   if (is_page( $name_page ) ) { 
    	        $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);
    
    	        }
    	        elseif ($numero >= 2) {
    	            wc_print_notice('Product ID '.$page_id.
    	                ' A página de  pagamento foi liberada', 'notice');
    
    	        }
    	    }
    	}
     }
    ?>
    • Esta resposta foi modificada 4 semanas, 1 dia atrás por Nura.

    @archer-master meu caro parece que o problema aqui está no if ( 139 == $post->post_parent ) o post_parent da página com ID 139 é igual a 0. Se eu colocar assim

    if ( 0 == $post->post_parent ) aí ele executa corretamente.

    Eu também andei dando uma olhada no codex do wp e achei essa função acredito que ela seja útil. Clique aqui para ver Vou subir o functions.php no GitHub e encaminho o link aqui para você.

    Dei uma olhada nesse link que tu passou ai do wp_query vou dar uma analisada e testar um desses códigos, acredito que vai dar uma clareada no problema.

    Usei esse código aqui abaixo:

    	$parent = 0;      //change as desired
    	$type   = 'page'; //change as desired
    
    	$filhos_parent = array( 
    	       'post_type'   => $type, 
    		'post_parent' => $parent 
    	);
    
    	   $ids = array($parent);
               $ids = array_merge($keys, array_keys( get_children($filhos_parent ) ));
    
    	$query = new WP_Query( 
    		array( 
    			'post_type'      => 'page', 
    			'post_status'    => 'publish', 
    			'post__in'       => $ids, 
    			'posts_per_page' => -1 
    		) 
    	);
    			
                       echo '<pre>';
    			print_r($query);
                       echo '</pre>';
    

    E consegui listar o vetor de todas páginas filhas do post_parent de valor == 0 que no caso é página principal que possui ID 139.

    Nura

    (@archer-master)

    Testa assim.

    <?php
    // 2 página filha
    if ($post->post_parent != 0){
        $thePostID = $post->post_parent;
    	$my_title = get_the_title(); 
    
    		 add_action('get_header', 'pega_titulo', 10);
    	add_action('woocommerce_before_cart_contents', 'pega_titulo');
    
    	function pega_titulo() {
    	    global $woocommerce;
    	   if (is_page($my_title ) ) { 
    	        $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);
    
    	        }
    	        elseif ($numero >= 2) {
    	            wc_print_notice('Product ID '.$page_id.
    	                ' A página de  pagamento foi liberada', 'notice');
    
    	        }
    	    }
    	}
     
     }
    ?>
    
    • Esta resposta foi modificada 4 semanas, 1 dia atrás por Nura.
    • Esta resposta foi modificada 4 semanas, 1 dia atrás por Nura.
    Nura

    (@archer-master)

    Fiz essa versão também, testa as duas que mandei.

    <?php
    $id = get_the_ID();
    while ( have_posts() ) : the_post();
      $gp_args = array(
          'post_type' => 'page',
          'post_parent' => $id,
          'order' => 'ASC',
          'orderby' => 'menu_order',
          'posts_per_page' => -1
      );
      $locations = get_posts($gp_args);
    
    endwhile; 
    ?>
    <?php
    // 2 página filha
    if ($post->post_parent != 0){
        $thePostID = $post->post_parent;
    	$my_title = get_the_title(); 
    
    		 add_action('get_header', 'pega_titulo', 10);
    	add_action('woocommerce_before_cart_contents', 'pega_titulo');
    
    	function pega_titulo() {
    	    global $woocommerce;
    	   if (is_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);
    
    	        }
    	        elseif ($numero >= 2) {
    	            wc_print_notice('Product ID '.$page_id.
    	                ' A página de  pagamento foi liberada', 'notice');
    
    	        }
    	    }
    	}
     
     }
    ?>
Visualizando 15 respostas - 31 até 45 (de um total de 58)
  • Você deve estar conectado para responder a este tópico.