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, 1 mês 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"
-
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.
Boa tarde meu caro, archer-master. Vou testar sua duas soluções e te retorno se deu certo. Muito obrigado! 😀
- Esta resposta foi modificada 5 anos atrás por Felipe Santos. Razão: Desmarcando usuários
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- Esta resposta foi modificada 5 anos atrás por robertdccaetano.
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'); } } }
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'); } } }
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 2Observe que o botão permanece lá. Obrigado meu amigo, feliz ano novo desde já! Forte abraço!
- Esta resposta foi modificada 5 anos atrás por Felipe Elia. Razão: Remoção de menção a outro usuário
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.
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'); } } }
O código que mandei antes também funciona, esse eu adicione uma mensagem de
error
esuccess
emwc_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 5 anos 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 5 anos atrás por robertdccaetano.
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 oid 139
, você pode usaris_page()
com um array para mostrar somente nas páginas que precisa.
Exemplo:if( is_page( array( 1, 5, 7) ) ) { // Seu Código }
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 5 anos atrás por robertdccaetano.
- Esta resposta foi modificada 5 anos atrás por robertdccaetano.
- O tópico ‘Ocultar botão finalizar compra’ está fechado para novas respostas.