Suporte » Plugins » Snippet para esconder flat rate e manter apenas Frete dos Correios

  • Uso o plugin desenvolvido pelo Claudio Sanches, Correios para Woocommerce.

    Como os webservices dos Correios às vezes estão fora do ar, cadastrei “Flat Rates” aqui no Woocommerce.

    Assim, quando cai o sistema deles eu consigo oferecer um frete fixo e evitar perdas de vendas.

    Porém, quando os Correios estão no ar, se a pessoa preencher os campos “Estado” e “CEP”, aparece tanto a Flat Rate quanto os preços dos Correios.

    Pedido:

    Vocês tem ideia de algum snippet que eu poderia adicionar por aqui para, quando houver algum tipo de frete dos Correios, esconder as Flat Rates?

    A ideia é que se existe uma taxa padrão dos Correios, todas as outras são escondidas.

    Tô investigando e tentando com o pouco que manjo de PHP, mas não consegui ainda fazer isso.

    Este é o link da imagem que mostra o que citei acima.
    https://imgur.com/a/xYZQjfv

Visualizando 8 respostas - 1 até 8 (de um total de 8)
  • Criador do tópico sergiolucianojr

    (@sergiolucianojr)

    Tentei algo assim, mas não funcionou:

    function my_hide_shipping_when_free_is_available( $rates ) {
    $free = array();
    foreach ( $rates as $rate_id => $rate ) {
    if( strpos($rate,’correios’) !== FALSE ) {

    if ( $rate === $rate->method_id ) {
    $free[ $rate_id ] = $rate;
    break;
    }
    }
    }
    return ! empty( $free ) ? $free : $rates;
    }
    add_filter( ‘woocommerce_package_rates’, ‘my_hide_shipping_when_free_is_available’, 100 );

    • Esta resposta foi modificada 3 anos, 11 meses atrás por sergiolucianojr.
    Criador do tópico sergiolucianojr

    (@sergiolucianojr)

    Gente, consegui criar um código que parece funcionar bem para essa questão. Compartilho aqui.

    E quem tiver ideias de como melhorar o código, seria bem bacana.

    function show_correios_only ($available_methods) {
      $rates_correios = array();
      $cont_correios = 0;
      foreach($available_methods as $key=>$method) {
    	if( strpos($key,'correios') !== FALSE ) {
    	  $rates_correios[$key] = $method;
    	  $cont_correios = $cont_correios + 1;
    	} else
    	  $rates_fora_do_ar[$key] = $method;
      }
      
      if ($cont_correios > 0) {
      	return $rates_correios;
      } else {
    	return $rates_fora_do_ar;
    	}
      	return $available_methods;
    }
    
    add_filter( 'woocommerce_package_rates', 'show_correios_only', 10, 2 );

    No meu caso, tenho outras opções de envio também, por exemplo “Receber junto” (somos um clube de assinatura) e nessa opção a pessoa que compra produtos avulsos da loja, recebe na sua caixinha do próximo mês. Essas outras opções, além do básico Sedex e PAC ficam como no seu código? Sou meio leiga com programação

    @sergiolucianojr

    onde coloco esse codigos?

    Criador do tópico sergiolucianojr

    (@sergiolucianojr)

    Vixi @stephaniektb, estou apanhando com isso agora.

    Precisando de ajuda dos universitários! Fui até o meio do caminho só.

    =/

    @junior0liveira

    Tem um plugin para criar códigos PHP na tela de administração do seu wordpress. Usei esse aqui.

    https://br.wordpress.org/plugins/code-snippets/

    PS: de 0 a 10 eu entendo 2 dessa parada toda. Então esse código ae é uma investigação pra resolver um problema que percebi afetar a mim e bastante gente.

    Tô torcendo pra alguém que manje dar um help na parada.

    Criador do tópico sergiolucianojr

    (@sergiolucianojr)

    O problema agora é que se a pessoa seleciona o estado e não preenche o CEP, o sistema tá puxando a taxa fixa automaticamente.

    Tô tentando resolver. Se alguém souber como, seria bacana.

    @sergiolucianojr bacana, pena que entendo 0.1 de php se nao ajudaria…

    olá @sergiolucianojr,

    olha, o Claudio Sanches, além de autor do plugin que você usa, é “Developer on the WooCommerce team and member of the WordPress Brazilian community” – conforme https://claudiosanches.com/author/claudiosanches/

    ou seja, se tem alguém que pode lhe ajudar com isso é ele. no link que coloquei, a página tem link para as redes sociais dele. fora que você pode entrar no Fórum do próprio plugin e postar esse tópico, como fez aqui.

    aproveito para fazer um pequeno comentário, não estando diretamente relacionado com seu tópico. nos últimos 2 anos os Correios estão cortando serviços diferenciados, que ofereciam tarifas interessantes, e aumentando seus custos. acabaram com o e-Sedex, tentam de toda forma inviabilizar o Impresso Normal para envio de livros – ai o maior expoente sendo a Estante Virtual. fora os prazos, pois se antes o Sedex gaba-se de entregar em no máximo 2 dias, agora varia de 5 a 8 dias em alguns casos.

    nenhum, absolutamente NENHUM e-commerce de sucesso opera exclusivamente com os Correios, aliás, os maiores contratam serviços de logística. e isso se tornou acessível para os pequenos e-commerce com serviços como a Total Express da Abril e o Mandae, fora outros, aproveitando a oportunidade que é o alto índice de reclamações contra os Correios – que viram reclamações contra a demora de SEU negócio…

    há 3, 4 anos atrás, realmente trocar os Correios por uma empresa de logística era caro e não valia o custo-benefício. mas hoje em dia, podendo usar como diferencial justamente não enviar pelos Correios, mas por uma empresa logística, algo bem mais profissional e atento aos desejos do cliente não só por menor valor, mas por alguém que talvez pagasse mais se obtesse uma proposta de entrega mais rápida.

    mas enfim, apenas uma “pequena” reflexão.

    tente contato com o Claudio Sanches, ele é referência para isso. e ele pode se interessar em agregar valor ao plugin dele gerando alternativas às quedas do sistema dos Correios.

    abraços!

Visualizando 8 respostas - 1 até 8 (de um total de 8)
  • O tópico ‘Snippet para esconder flat rate e manter apenas Frete dos Correios’ está fechado para novas respostas.