Suporte » Plugins » Dias adicionais por produto

  • Resolvido fredcmg

    (@fredcmg)


    Olá pessoal, é um prazer postar algo aqui pela primeira vez.

    E-commerce desenvolvido com woocommerce 3.0.4 e woocommerce-correios 3.2.2
    Imagine uma compra:
    No carrinho um cliente escolheu um produto e digitou o CEP. Aparece uma estimativa de entrega que é acrescentada de mais 3 dias, por exemplo. Os dias adicionais foram definidos no campo “DIAS ADICIONAIS” do método de entrega escolhido.
    O cliente, no entanto tem alguns produtos que deveriam ter 20 DIAS ADICIONAIS e portando se forem colocados no carrinho, e o CEP atualizado, a visão agora deveria ser desta nova estimativa de entrega por ser superior a outra. Claro que isso não acontece porque só temos um local para digitar os DIAS ADICIONAIS.
    Alguém conhece um jeito de resolver isso?
    Tem algum plugin auxiliar para fazer isso?

    Agradeço a toda ajuda que vocês puderem me dar!

Visualizando 14 respostas - 1 até 14 (de um total de 14)
  • Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá @fredcmg, tudo bem?

    Sem olhar o código do plugins dos correios posso te dizer que a melhor forma seria:

    – Criar um metadado para os produtos (e aí pode ser via metadados da administração mesmo, mas eu preferia criar um metabox na lateral para isso aí).
    – Alterar o valor dos “dias extras” no cálculo (deve haver um filtro).

    Se isso já te ajudar, beleza! Se não, me confirma o plugin que está usando (o link no repositório facilitaria) que vou lá dar uma olhada se existe esse filtro e como procedemos para criar essa funcionalidade.

    Abraços

    Criador do tópico fredcmg

    (@fredcmg)

    Olá Mario!

    Antes de mais nada, obrigado pela atenção que você está me dispensando.

    O site que eu desenvolvi foi harmonizebrasildecor.com.br

    Agora vamos ao WordPress e Plugins e suas versões:
    A versão do WordPress: 4.7.4
    Woocommerce: 3.0.4
    Woocommerce-Correios: 3.2.2

    Dentro do painel do WordPress, escolhendo Woocommerce/Configurações e acessando o método de envio (SEDEX por exemplo), encontramos a opção para exibição de uma ESTIMATIVA DE ENTREGA. Logo abaixo, podemos digitar um número, no campo DIAS ADICIONAIS que será somado aos dias de entrega normais estabelecidos pelo correio.

    Dentro das configurações existe a possibilidade de criação de CLASSES DE ENTREGA – cada uma com um nome criado pelo USUÁRIO – que é utilizado, caso se queira, para agrupar produtos de um tipo similar que possuem taxas diferenciadas. Essa CLASSE DE ENTREGA é um dos acessos possíveis, através de um combo, no momento que se define as opções do Produto.

    Minha ideia seria colocar mais um campo na CLASSE DE ENTREGA, um campo como DIAS ADICIONAIS PARA O PRODUTO. O usuário criaria suas CLASSES DE ENTREGA para grupos de produtos e no momento da criação do produto escolheria um número de dias extras que seria somado aos dias calculado pelos correios.

    O problema é que deveria haver o chamado a uma função que, dentro do carrinho de compras, verificasse o número de dias dos produtos selecionados e verificasse se o novo produto tem mais ou menos dias de entrega (isso seria feito quando o Cliente tivesse que atualizar a taxa dos correios escolhendo novamente o CEP para envio) e atualizasse caso o valor encontrado seja maior que o que ja existe apresentado no carrinho.

    Se o Cliente escolhe como método de entrega o SEDEX e o PAC, por exemplo, o calculo deve afetar esses dois métodos e ser apresentado na tela corrigidos com o novo prazo de entrega.

    Bom, é isso.

    Não tenho tanta experiência em programação com PHP para realizar essa tarefa, pois teria que estudas muitos códigos e demoraria um tempo enorme aprendendo a produzir plugins. Por isso, escolhi o WordPress que facilita muito minha vida e com os plugins e pequenas alterações consigo atender meus clientes.

    Mais uma vez agradeço a qualquer ajuda que você puder me dar…

    FRED

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Legal que escolhei o WP e o Woo.

    Sobre seu problema, achei o código do plugin no github e no arquivo: abstract-wc-correios-shipping.php o método get_additional_time tem o seguinte filtro:

    apply_filters( 'woocommerce_correios_shipping_additional_time', $this->additional_time, $package );

    Como pode ver ele recebe o valor $package, que não tenho certeza, mas imagino ser os dados do pacote. Se não tiver como pegar os produtos, talvez dê para pegar através do Cart (aqui) e consequentemente buscar o valor que você armazenou e entao trocar retornando ele, em vez do $this->additional_time que é o valor cadastrado na opção.

    Entendeu?

    Sobre a parte de armazenar e cadastrar esse valor como um campo das Classes de Entrega, ou adicionar nas configurações do plugin vou ficar te devendo, mas se não conseguir fazer, fala aqui que tentamos achar um jeito.

    Enquanto isso vou ver se crio uma instalação do WordPress com o Woo aqui e pesquiso um pouco mais ou até crio uma issue no Github do plugin.

    Abraços

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá @fredcmg, tudo bem?

    Estava com um tempo livre aqui e juntando o fato de o WooCommerce ser o plugin mais developer-friendly que conheço com a questão de isso ser uma funcionalidade interessante para o plugin dos correios e outros usuários, acabei criando um plugin para adicionar o campo “Tempo Adicional” às Classes de Entrega.

    Basta ativar o plugin que vai ver que irá aparecer uma coluna a mais nas Classes de Entrega:

    Classes de Entrega

    Desenvolvi pensando que o que vale é o maior prazo de entrega, certo?
    Então ele vai considerar os valores de todas as Classes de Entrega presentes no carrinho e a própria opção que você configurou para a entrega em questão.

    Então irá retornar o maior.

    Testei aqui os seguintes cenários, então creio que seja uma versão finalizada, mas vale fazer uns testes aí:

    – Carrinho sem nenhum produto com Classes de Entrega
    – Dois produtos com Classes de Entregas com prazos diferentes
    – Apenas um produto com Classe de Entrega

    O link para download é esse:
    https://github.com/mariovalney/woocommerce-correios-adbsc

    Espero que te ajude!

    Abraços

    Criador do tópico fredcmg

    (@fredcmg)

    Ola Mario tudo bem?

    Muito obrigado pela sua iniciativa de resolução deste meu problema e concordo com você, esse plugin trás uma funcionalidade para o woocommerce-correios e resolve uma possível exigência de algum cliente.

    Fiquei muito contente por você ter resolvido o problema e assim que liguei o micro quis fazer um teste mas eu não consegui ativar o plugin.
    O seguinte erro apareceu:
    ——————————————————————
    Não foi possível ativar o plugin porque ele gerou um erro fatal.

    Parse error: syntax error, unexpected T_FUNCTION in C:\Domains\harmonizebrasildecor.com.br\wwwroot\wp-content\plugins\woocommerce-correios-adbsc-master\modules\shipping\class-module-shipping.php on line 105

    ——————————————————————
    Aqui está a linha 105

    $shipping_classes_ids = array_filter( $shipping_classes_ids, function( $id ) {
    return ! is_nan( intval( $id ) );

    } );

    Tem ideia do que aconteceu?
    abraço

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Verifique a versão do PHP do seu servidor.

    Essa forma de escrever a função de callback já dentro dos parâmetros (função anônima) é suportada a partir do PHP 5.3, então o seu deve ser mais antigo.

    Os Requisitos do WordPress pedem a versão 7 ou maior, por ser a mais nova e mais segura versão do PHP. Recomendo atualizar para ela ou pelo menos para a versão 5.6.

    Abraços

    • Esta resposta foi modificada 6 anos, 11 meses atrás por Mário Valney.
    • Esta resposta foi modificada 6 anos, 11 meses atrás por Mário Valney.
    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Opa. Apenas para deixar registrado, subi aquele plugin para o Repositório Oficial do WordPress, então recomendo que adicionei ao seu site do modo normal:

    https://br.wordpress.org/plugins/woo-shipping-additional-days/

    Assim manterá sempre recebendo as atualizações.

    Abraços

    Criador do tópico fredcmg

    (@fredcmg)

    Olá..

    Só para registro, fiz a mudança do servidor, no meu provedor de hospedagem, de Windows para Linux, instalei o plugin, fiz alguns testes, passei para o cliente testar e por enquanto está tudo bem.

    Agradeço a sua atenção e como está agora no Repositório Oficial do WordPress, vou aguardar atualizações.

    abraço

    FRED

    Oi Mario, tudo bem?
    Estou com o mesmo problema do Fred. Faço produtos por encomenda e eles tem prazos diferentes. Quando 2 produtos de prazos diferentes são adicionados no carrinho não aparece cálculo de frete nem prazo de estimativa.
    Acredito que o seu plugin vai resolver o meu problemas. Fiz a instalação mas ele não funcionou. Parece que deu conflito. Imagino que seja por causa das versões dos outros plugins.
    Gostaria de saber se o plugin funciona com esse conjunto:
    Woocommerce 3.1.1
    Woocommerce Correios 3.4.1
    Wordpress 4.8.

    Se puder me ajudar ficarei muito agradecida. Estou há 2 semanas tentando encontrar a solução para resolver o problema e parece que o seu plugin é 🙂
    Muito obrigada, desde já.. abraços…
    Regiane.

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá, tudo bem?

    A última versão do WooCommerce Correios que testei foi a 3.2.2, mas não deveria quebrar com a 3.4.1.

    Vou dar uma olhada aqui e fazer alguns testes e qualquer coisa eu atualizo o plugin… a princípio você pode instalar o plugin na versão atual e esperar a atualização ou então contribuir, caso seja desenvolvedor.

    Abraços

    Oi Mário, muito obrigada pelo retorno!
    Sou apenas usuária, não sou desenvolvedora.
    Eu instalei o plugin mas parece que deu conflito. Não sei falar se foi pela versão do wordpress ou pela versão do woocommerce, pois a página de cadastro do produto ficou tipo com “bloqueio” de algumas informações como a descrição do produto e alguns campos adicionais.
    Vou acompanhar por aqui.
    Muito obrigada pela atenção.. abraços 🙂

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá @regianesouza, tudo bem?

    Subi uma versão nova com a correção do problema.
    Obrigado pelo aviso e se possível faça um review do plugin 😀

    Abraços

    Olá Mario!!
    Testei a nova versão e funcionou perfeitamente!
    Testei produtos com prazos iguais, produtos com prazos diferentes, produtos com disponibilidade imediata + produtos com prazos para encomenda e tudo funcionou!!!!!
    Não consegui trabalhar com produtos sem classes, mas isso não é um problema para mim. Eu cadastro todos os produtos com alguma classe, mesmo que seja com a classe “disponibilidade imediata”.
    Muito obrigada mesmo. Você resolveu um problema que me deixou dias com dor de cabeça… rsss…
    Abraços… 🙂

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Para produtos sem classe basta adicionar lá nas configurações em “Entrega”.
    Ele sempre vai escolher o “maior adicional”.

    Abraços

Visualizando 14 respostas - 1 até 14 (de um total de 14)
  • O tópico ‘Dias adicionais por produto’ está fechado para novas respostas.