claudiosanches / woocommerce-correios

Correios shipping to the WooCommerce WordPress plugin
http://wordpress.org/plugins/woocommerce-correios/
GNU General Public License v2.0
155 stars 96 forks source link

Valor declarado mínimo foi alterado pelos Correios #229

Closed YgorSilva closed 1 year ago

YgorSilva commented 2 years ago

Aparentemente, houve uma alteração, por parte do Correios, no mínimo permitido para o valor declarado de um pacote. O código do plugin, mais precisamente o método get_declared_value das classes de entrega, indica que o valor mínimo declarado era R$18.

Porém, conforme os logs abaixo, o valor mínimo agora é R$21.

12-28-2021 @ 13:38:06 - Requesting Correios WebServices: http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdServico=04669&nCdEmpresa=20345011&sDsSenha=11430844&sCepDestino=35412000&sCepOrigem=74435090&nVlAltura=2&nVlLargura=11&nVlDiametro=0&nVlComprimento=16&nVlPeso=0,037&nCdFormato=1&sCdMaoPropria=N&nVlValorDeclarado=20&sCdAvisoRecebimento=N&StrRetorno=xml
12-28-2021 @ 13:38:06 - Correios WebServices response: SimpleXMLElement Object
(
    [cServico] => SimpleXMLElement Object
        (
            [Codigo] => 04669
            [Valor] => 0,00
            [PrazoEntrega] => 0
            [ValorSemAdicionais] => 0,00
            [ValorMaoPropria] => 0,00
            [ValorAvisoRecebimento] => 0,00
            [ValorValorDeclarado] => 0,00
            [EntregaDomiciliar] => SimpleXMLElement Object
                (
                )

            [EntregaSabado] => SimpleXMLElement Object
                (
                )

            [obsFim] => SimpleXMLElement Object
                (
                )

            [Erro] => -888
            [MsgErro] => Não foi encontrada precificação. ERP-013: Vlr declarado nao permitido, aceito entre R$ 21,00 e R$ 3000,00(-1).
        )

)

Realizei o ajuste na minha aplicação e o erro cessou.

Se quiser posso enviar um PR com o ajuste.

luiseduardobraschi commented 2 years ago

Enquanto não sai atualização, quem estiver com esse problema pode resolver com o seguinte snippet:

// Valor declarado.
add_filter( 'woocommerce_correios_shipping_args', function( $args ){

    if( 24 >= $args['nVlValorDeclarado'] ){
        $args['nVlValorDeclarado'] = 0;
    }

    return $args;

});

Pra quem não sabe como usar esse tipo de código, segue um tutorial: https://imperiowp.com.br/guia-do-iniciante-para-colar-codigos-ou-snippets-no-wordpress/

luiseduardobraschi commented 1 year ago

Atualizei o código acima para 24.

gustavomodena commented 1 year ago

@luiseduardobraschi muuuito obrigado! Até o momento funcionou certinho! Acabei de testar.

Importante frisar (para futuras visualizações) que a versão do plugin aqui é a 3.8.0 e não editei nenhum arquivo como em outras sugestões de correção. Valor Declarado também mantive ativo, não desabilitei.

No fim, apenas adicionei esse seu snippet mesmo.

Muito obrigado, abraços!

luiseduardobraschi commented 1 year ago

Criei um Gist onde eu vou atualizar e que consta como utilizar o snippet:

https://gist.github.com/luiseduardobraschi/e2573d52ec7c3cb975156b12c670826d