• Resolvido Rafael Botelho

    (@rhenrigb)


    Boa tarde pessoal, tudo bem?

    Fiz algumas pesquisas de códigos e plugins, até mesmo nos tópicos já resolvidos do fórum, mas não encontrei uma solução.

    Eu preciso fazer que alguns produtos específicos apareça Frete Grátis, mas quando tiver algum produto no carrinho que não possua a classe de frete grátis, apareça apenas o PAC e Sedex (que são os métodos que utilizo).

    Já vinculei os produtos a uma Classe de Entrega de FRETE GRÁTIS, criei um Método de Entrega ‘Taxa Fixa’ com o “FRETE GRÁTIS” custo da classe de entrega sendo zero, mas quando vou realizar os testes, sempre aparece o FRETE GRÁTIS para todos os produtos, ele não distingue por classe.

    Agradeço a disposição de quem puder me ajudar!

Visualizando 15 respostas - 1 até 15 (de um total de 24)
  • Criador do tópico Rafael Botelho

    (@rhenrigb)

    Olá pessoal, ainda estou tentando resolver esse problema e realmente não consigo encontrar nenhuma solução.

    Alguém sabe como posso fazer isso?

    Obrigado!

    Olá rhenrigb estou passando pela mesmo situação, a dias que busco uma solução, já fiz vária pesquisas mais não consegui nada que resolvesse meu problema, se alguém estiver uma solução ficarei muito agradecido. Até mesmo o próprio rhenrigb… desde já muito obrigado.
    Email de contato: [Endereço de e-mail removido por um moderador]

    @adrianomerett Te encontrei 🙂

    Moderador Claudio Sanches

    (@claudiosanches)

    @adrianomerett leia as regras do fórum: https://codex.wordpress.org/pt-br:Bem-vindos_ao_F%C3%B3rum_de_Suporte#Coisas_para_evitar_e_mau_comportamento

    Principalmente a parte dizendo:

    Os membros do fórum não devem publicar seus endereços de e-mail, pedir o e-mail de outras pessoas ou solicitar contato fora dos fóruns.

    Isso não é nada legal, principalmente por ser um fórum publico, onde todo mundo vai ganhar se resposta for encontrada aqui do que passada apenas de forma privada.

    Moderador Claudio Sanches

    (@claudiosanches)

    @rhenrigb aqui código para solucionar o seu problema.

    No caso basta trocar o slug da sua classe de entrega.

    
    function my_wc_free_shipping_by_shipping_class( $rates, $package ) {
    	$shipping_class = 'entrega-gratuita'; // Slug da sua classe de entrega.
    	$allow_free_shipping = true;
    
    	// Verifica se todos os produtos precisam ser entregues e se possuem a class de entrega selecionada.
    	foreach ( $package['contents'] as $value ) {
    		$product = $value['data'];
    
    		if ( $product->needs_shipping() && $shipping_class !== $product->get_shipping_class() ) {
    			$allow_free_shipping = false;
    			break;
    		}
    	}
    
    	// Remove a entrega gratuita se algum produto não possuir a classe de entrega selecionada.
    	if ( ! $allow_free_shipping ) {
    		foreach ( $rates as $rate_id => $rate ) {
    			if ( 'free_shipping' === $rate->method_id ) {
    				unset( $rates[ $rate_id ] );
    				break;
    			}
    		}
    	}
    
    	return $rates;
    }
    
    add_filter( 'woocommerce_package_rates', 'my_wc_free_shipping_by_shipping_class', 100, 2 );
    

    Pode utilizar esse código no functions.php do seu tema ou criar um plugin para ele.

    @claudiosanches desculpe-me, estava acho que um pouco aflito para solucionar o problema e acabei me cadastrando rapidamente e não li as regras do fórum, mais de qualquer forma agora li… 🙂 Abraços fique na paz.

    Criador do tópico Rafael Botelho

    (@rhenrigb)

    Muito obrigado @claudiosanches, ainda não apliquei seu script para testar.

    Fico grato pelo retorno e assim que fizer os testes eu responderei aqui para dizer como ficou.

    Valeu!

    Criador do tópico Rafael Botelho

    (@rhenrigb)

    @claudiosanches, boa noite!

    Coloquei o slug na Classe de entrega de Frete Grátis como ‘entrega-gratuita’ e colei o código que você passou no functions.php, mas ainda não está funcionando.

    O opção de Frete Grátis não aparece para o produto que vinculei a classe.

    O que será que pode ser?

    Moderador Claudio Sanches

    (@claudiosanches)

    @rhenrigb tem outros produtos no carrinho? Porque isso vai mostrar apenas se todos os produtos que estão no carrinho, também estão usando a classe de entrega para frete grátis.

    Criador do tópico Rafael Botelho

    (@rhenrigb)

    @claudiosanches, testei apenas com produtos que tinham a classe de frete grátis e não infelizmente também não funcionou ainda.

    Testei de diversas formas, com apenas 1 produto grátis, com 2 e 3, com 1 grátis e 1 pago, enfim, todas as possibilidades que consegui.

    Estou passando pelo o mesmo problema

    Fiz o seguinte passo
    1 – Criei a classe entrega-gratuita
    2 – Criei o frete tarifa fixa e na classe entrega-gratuita coloquei 0
    3 – No produto selecionei a classe entrega-gratuita
    4 – colei o código do claudio.

    Mas o frete grátis continua aparecendo para todos os produtos

    Por favor se alguém souber, compartilhe

    • Esta resposta foi modificada 7 anos, 8 meses atrás por thejhunior12.

    Agora que li com calma o código entedie

    @rhenrigb esse código não para quem usa taxa fixa e sim que usa o frete grátis do woocomemerce

    Desativa a sua taxa fixa e ativa o frete grátis e mantem a classe nos produtos.

    Vlw @claudiosanches

    @claudiosanches tem como os frete do seu plugin dos correio sumir para os produtos da classe entrega-gratuita

    Criador do tópico Rafael Botelho

    (@rhenrigb)

    @thejhunior12 obrigado pelo retorno, eu testei com a taxa fixa e SEM a ela, mas mesmo assim não aparece o frete grátis, mesmo que o carrinho tenha apenas produtos com a classe de frete grátis entrega-gratuita, e o código na functions.

    O que será que pode estar ocorrendo @claudiosanches?

    Você ativou a função frete grátis do woocommerce?

    Na teoria o frete gratis aparece para todos. a função do claudio tem o objetivo de mostrar apenas para quem tem a classe

Visualizando 15 respostas - 1 até 15 (de um total de 24)
  • O tópico ‘Woocommerce Frete Grátis por Produto’ está fechado para novas respostas.