Ocultar botão finalizar compra
-
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 5 anos 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"
-
Boa noite @robertdccaetano, eu utilizei o tema almaira shop, qual tema está utilizando?
Bom dia, @archer-master. Eu estou o tema i-max meu caro.
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 ?
- Esta resposta foi modificada 5 anos atrás por robertdccaetano.
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.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.
- Esta resposta foi modificada 5 anos atrás por robertdccaetano.
- Esta resposta foi modificada 5 anos atrás por 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.
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'); } } } } ?>
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!
- Esta resposta foi modificada 5 anos atrás por robertdccaetano.
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.
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()
porget_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 5 anos 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 assimif ( 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.
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'); } } } } ?>
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'); } } } } ?>
- O tópico ‘Ocultar botão finalizar compra’ está fechado para novas respostas.