Respostas no Fórum

Visualizando 15 respostas - 1 até 15 (de um total de 70)
  • 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 4 anos, 3 meses atrás por Nura.
    • Esta resposta foi modificada 4 anos, 3 meses atrás por Nura.
    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 4 anos, 3 meses atrás por Nura.
    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)

    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');
    
    	        }
    			
    	    }
    	}
    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)

    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');
    
    	        }
    	    }
    	}
     
     }
    ?>
    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 anos, 3 meses atrás por Nura.
    • Esta resposta foi modificada 4 anos, 3 meses atrás por Nura.
    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 anos, 3 meses atrás por Nura.
    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');
    
    	        }
    	    }
    	}
     }
    ?>
    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.

    Nura

    (@archer-master)

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

    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.
    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 Nura

    (@archer-master)

    Resolvido!

    Criador do tópico Nura

    (@archer-master)

    Boa noite, adicionei esse plugin que você me indicou, mas quando adiciono “sem parcelas” em boletos ele não retorna o valor.

Visualizando 15 respostas - 1 até 15 (de um total de 70)