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 4 anos, 4 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 - 16 até 30 (de um total de 58)
  • @robertdccaetano tenta passar assim no is_page:

    is_page( 'Monte seu combo' ) && $post->post_parent

    Aqui nesse link você pode ver alguns testes com parent

    https://css-tricks.com/snippets/wordpress/if-page-is-parent-or-child/

    • Esta resposta foi modificada 4 anos, 4 meses atrás por Mario Ernesto.
    Criador do tópico robertdccaetano

    (@robertdccaetano)

    @marioernestoms , beleza obrigado, vou testar aqui por as funções desse link e já retorno o que aconteceu.

    Criador do tópico robertdccaetano

    (@robertdccaetano)

    @marioernestoms, não obtive sucesso, fiz das duas maneiras até conforme o link que tu me passou. Eu percebi que usando get_the_title() ele retorna o titulo da página como vazio ou nulo, porém quando eu uso o add_action(‘get_header’, ‘pega_titulo’); Eu consigo obter o Titulo da página e ate comparar o ID.

    EDIT: Eu usei

    global $post
    Dei um echo $post->ID;
    Acabei descobrindo que não ta trocando o ID da página, está ficando fixo apenas no ID 139 que é da página principal.

    	function is_tree($pid) {      // $pid = The ID of the page we're looking for pages underneath
    		global $post;         // load details about this page
    		if(is_page()&&($post->post_parent==$pid||is_page($pid))) 
    	               return true;   // we're at the page or at a sub page
    		else 
    	               return false;  // we're elsewhere
    	};
    
    	
    
    	// add_action('get_header', 'pega_titulo', 10);
    	
    	add_action('woocommerce_before_cart_contents', 'pega_titulo' );
    
    	function pega_titulo () {
    		if(is_tree(814)){
    			echo "É a página que preciso!";
    			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 {
    				echo "Já tem mais de 2 itens";
    			}
    		} else {
    			echo "Não é a página que preciso";
    		}
    	}

    @robertdccaetano Me diz uma coisa como está o seu cenário? Você tá usando qual tema tá usando tema padrão ou child?, quais plugins.
    Porque todos esses códigos que tô te mandando estou testando antes em um ambiente meu, com storefront e WooCommerce sem muitos plugins só frete e meios de pagamento. Acho que tem alguma coisa no seu ambiente ou do WP ou de hospedagem que pode estar influenciando.

    Criador do tópico robertdccaetano

    (@robertdccaetano)

    Estou usando um tema que encontrei no próprio WordPress chama, i-max com tema filho, functions já no tema filho. Plugins usando Elementor, Woocommerce, Woocommerce Bulk Order, Click to chat, e Contact Form7.

    @marioernestoms , meu caro eu acabei usando:

    global $post
    Dei um echo $post->ID;
    Acabei descobrindo que não ta trocando o ID da página, está ficando fixo apenas no ID 139 que é da página principal.

    @robertdccaetano você pode tentar assim pra pegar o ID do parent:

    function get_parent_page_id() { 
    	global $post; 
     
    	if ($post->ancestors) { 
    		return end($post->ancestors); 
    	} else { 
    		return $post->ID; 
    	} 
    }
    Criador do tópico robertdccaetano

    (@robertdccaetano)

    @marioernestoms, obrigado pela força meu caro, mas não deu certo essa função, pois essa página principal não tem ancestral e como eu te disso ali em cima eu usei:

    global $post
    Dei um echo $post->ID;
    Acabei descobrindo que não ta trocando o ID da página, está ficando fixo apenas no ID 139 que é da página principal então o is_page(814) que é o da página que eu preciso exibir o alerta, não está satisfazendo a condição. Desculpa te amolar meu amigo é que preciso por isso funcionando hoje e faz dias que to quebrando a cabeça rs, mas fico muito grato pelo seu empenho em me ajudar! Deus te abençoe!

    Criador do tópico robertdccaetano

    (@robertdccaetano)

    @marioernestoms Tu sabe qual a action que é ativada, após inserir algo no carrinho ?

    Moderador Felipe Santos

    (@foosantos)

    Olá @robertdccaetano, tudo bem?

    Peço que não marque o usuário que está lhe ajudando voluntariamente. Se o usuário quiser receber notificações, irá seguir o tópico, e não precisa marcar. Isso é uma prática negativa quando utilizada desta forma abusiva e excessiva.

    Espero que entenda, boa sorte! 🙂

    Fala @robertdccaetano a action é:

    woocommerce_add_to_cart

    Nura

    (@archer-master)

    Boa noite @robertdccaetano, tenta uma dessas funções pra pegar o id da página get_queried_object_id(); ou get_post_field();

    <?php echo $page_id = get_queried_object_id(); ?>

    ou

    get_post_field('ID');

    • Esta resposta foi modificada 4 anos, 4 meses atrás por Nura.
    Criador do tópico robertdccaetano

    (@robertdccaetano)

    Boa tarde, Nura. Deu certo <?php echo $page_id = get_queried_object_id(); ?>

    O mario ali em cima me passou a action que ao adicionar no carrinho executaria minha função, porém o alerta que eu peço pra exibir só está sendo disparado ao sair da página de “Monte seu combo”. Minha ideia é a seguinte, (eu tenho uma loja que vende planos) e possuo uma página de combos, nessa página de combos ao inserir apenas um plano no carrinho para montar seu combo eu preciso exibir um alerta que informe o usuário que para fechar um combo de planos é preciso que ele insira pelo menos mais um item (plano no carrinho) eu estou usando um <script>alert(‘exemplo’)</script), teria alguma ideia melhor pra se usar invés do JavaScript, pois ele só está exibindo ao sair da página, não consegui adequar uma action para identificar o momentao da inserção do item no carrinho, que na verdade nem é o carrinho padrão e sim um plugin do Woocommerce Cart. Desde já obrigado pela ajuda pessoal e boas festas!

    Nura

    (@archer-master)

    Boa noite @robertdccaetano, eu removi o botão de fechar a compra(checkout) quando tiver apenas 1 item adicionado, foi a melhor forma que pensei sem usar js. Boas festas!

    
    // 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;
    	    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');
    
    	        }
    	    }
    	}
    	
    
    • Esta resposta foi modificada 4 anos, 3 meses atrás por Nura.
    Criador do tópico robertdccaetano

    (@robertdccaetano)

    Boa noite, @archer-master. Obrigado amigo vou testar e lhe dou um retorno! 😀

    Criador do tópico robertdccaetano

    (@robertdccaetano)

    Nura a remoção do botão não foi feita :/, não sei o que está acontecendo no caso. Posso te passar o link do site pra tu dar uma visualizada se possível e quando for possível? Muito obrigado!

Visualizando 15 respostas - 16 até 30 (de um total de 58)
  • O tópico ‘Ocultar botão finalizar compra’ está fechado para novas respostas.