Carta Registrada n?o aparece no cálculo
-
Olá Lucas, boa tarde.
Antes de mais nada, parabéns e muito obrigado pelo incrível plugin.
Estou com um problema e agradeceria se me ajudasse.
Dentre os métodos de entrega que ofere?o est?o: Carta Registrada, SEDEX e Retirada em m?os. No entanto o método Carta Registrada n?o aparece quando pe?o para calcular o frete (SEDEX e Retirada aparecem). Importante dizer que no checkout o método Carta Registrada aparece normalmente.
Agrade?o se puder me auxiliar.
Obrigado e um abra?o,
VictorThe page I need help with: [log in to see the link]
-
Oi @victorverardo, entrei no site mas n?o vi o cálculo de frete.
Abra?os!
Olá Lucas, perd?o, precisei desativar para n?o confundir os clientes.
Ativei novamente. Se você puder olhar, por gentileza, eu agradeceria!Obrigado,
Victor@victorverardo, quando você está logado como admin e tenta calcular o frete, aparece alguma mensagem?
A carta registrada tem um peso limite de 500g, talvez seja por isso.
Abra?os!
Olá Lucas, quando estou logado, n?o recebo essa mensagem. O produto n?o excede 500g, ele é bem leve, possui 59g.
Já instalei seu plugin em outro site (innisports.com , que n?o utiliza carta registrada), e funcionou muito bem. Cheguei a receber a mensagem que você mencionou, e consegui corrigir o problema. Mas no caso do site que pedi o suporte (etiquetados.com.br), a op??o de carta registrada simplesmente n?o aparece.
Você teria alguma sugest?o para eu tentar resolver?
Muito obrigado e um abra?o,
Victor@victorverardo edite o arquivo wp-content/plugins/woo-correios-calculo-frete-pagina-produto/src/Shipping/Costs.php, aproximadamente na linha 66, substitua:
$shipping_costs = $instance->orderShippingCosts($shipping_costs); $shipping_costs = $instance->removeErrorsForUnauthorizedUsers($shipping_costs); return $shipping_costs;
Por:
var_dump($shipping_costs);exit; $shipping_costs = $instance->orderShippingCosts($shipping_costs); $shipping_costs = $instance->removeErrorsForUnauthorizedUsers($shipping_costs); return $shipping_costs;
Depois, volte na página do produto, abra o Chrome Developer tools (F12), vá na aba “Network”, depois clique em XHR e fa?a a opera??o de cálculo de frete… Você verá a requisi??o sendo feita embaixo e ela vai falhar, com o array de $shipping_costs, me fale o que foi retornado em $shipping_costs…
Ou ent?o, modifique o código como falei acima e me avise que eu dou uma olhada.
Abra?os!
Olá Lucas,
Corrigi o código, mas n?o consegui receber o que retornou do $shipping_costs.
Será que fiz algo errado?
O código de costs.php ficou:
<?php namespace CFPP\Shipping; use WP_Error; use CFPP\Shipping\ShippingMethods\Factory; use CFPP\Shipping\ShippingMethods\Package; use CFPP\Exceptions\FactoryException; use CFPP\Exceptions\HandlerException; use CFPP\Exceptions\PackageException; use CFPP\Exceptions\ResponseException; use CFPP\Exceptions\ValidationErrorException; class Costs { /** * Calculates shipping costs for an array of shipping methods * * @param array $shipping_methods * @param Payload $payload * @return array */ public static function getCostPerShippingMethod(array $shipping_methods, Payload $payload) { $instance = new self; $shipping_costs = array(); foreach ($shipping_methods as $shipping_method) { $shipping_method_slug = sanitize_title(get_class($shipping_method)); try { // Create CFPP handler for this Shipping Method $cfpp_handler = Factory::createHandler($shipping_method); // Create Package based on product and quantities per Shipping Method $package = Package::makeFrom($payload->getProduct(), $payload->getQuantity(), $shipping_method); $payload->setPackage($package); // Gives a chance to set rules, then validate Payload per Shipping Method $cfpp_handler->beforeValidateRequest()->validateRequest($payload); // Calculate Costs do_action('cfpp_before_calculate_cost', $payload, $shipping_method); $cfpp_handler->calculate($payload); $shipping_costs[] = $cfpp_handler->response->success(); } catch(PackageException $e) { do_action('cfpp_response_package_exception', $shipping_method_slug); $shipping_costs[] = $cfpp_handler->response->error(new WP_Error($e->getCode(), $e->getMessage())); } catch (FactoryException $e) { do_action('cfpp_response_factory_exception', $shipping_method_slug); $shipping_costs[] = $cfpp_handler->response->error(new WP_Error($e->getCode(), $e->getMessage())); } catch (ValidationErrorException $e) { do_action('cfpp_response_validation_exception', $shipping_method_slug); $shipping_costs[] = $cfpp_handler->response->error(new WP_Error($e->getCode(), $e->getMessage())); } catch (HandlerException $e) { do_action('cfpp_response_handler_exception', $shipping_method_slug); $shipping_costs[] = $cfpp_handler->response->error(new WP_Error($e->getCode(), $e->getMessage())); } catch (ResponseException $e) { do_action('cfpp_response_exception', $shipping_method_slug); $shipping_costs[] = $cfpp_handler->response->error(new WP_Error($e->getCode(), $e->getMessage())); } } var_dump($shipping_costs);exit; $shipping_costs = $instance->orderShippingCosts($shipping_costs); $shipping_costs = $instance->removeErrorsForUnauthorizedUsers($shipping_costs); return $shipping_costs; } /** * Sorts an array of costs by successes first * * @param $shipping_costs * @return array */ private function orderShippingCosts($shipping_costs) { $successes = array(); $errors = array(); foreach ($shipping_costs as $shipping_cost) { $shipping_cost['status'] == 'success' ? $successes[] = $shipping_cost : $errors[] = $shipping_cost; } return array_merge($successes, $errors); } /** * Removes shipping methods with errors for users that doesn't have * manage_woocommerce capability * * @param array $shipping_costs * @return array */ private function removeErrorsForUnauthorizedUsers(array $shipping_costs) { foreach ($shipping_costs as $index => $shipping_cost) { if ( ! current_user_can('manage_woocommerce') && $shipping_cost['status'] == 'error') { unset($shipping_costs[$index]); } } return $shipping_costs; } }
Muito obrigado!
Victor@victorverardo tente adicionar isso no seu functions.php por gentileza e me avise:
add_filter('cfpp_rest_timeout', function() { return 30000; });
Olá @victorverardo estou enfrentando um problema de calculo de frete também, você disse que no site innisports.com está funcionando bem, fiz o teste no seu site com o CEP que me foi passado e no seu site n?o funcionou n?o, CEP 11718-100 Rua Aparecido Gon?alves de Souza, Anhanguera, Praia Grande, SP
Oi @lucasbustamante, bom dia!
Tudo bem?
Fiz a inclus?o do código no functions.php. Quando clico em calcular frete, n?o retorna nenhuma informa??o.
Percebi que o plugin também n?o está funcionando nos outros dois sites que instalei:
https://innisports.com
e
https://svdesign.art.br/Quando instalei nesses sites, funcionava normalmente.
Se puder me ajudar eu agrade?o muito!
Grande abra?o,
Victor@2luix, agrade?o por me avisar. Quando instalei estava funcionando normalmente. N?o fiz nenhuma modifica??o no plugin neste site.
Abra?o
@victorverardo, o plugin faz o cálculo no webservice dos Correios, e parece que o webservice deles está muito lento ou até mesmo fora do ar ultimamente.
Estou tentando ver com os Correios se há uma forma alternativa de fazer esses cálculos, mas até lá, ficamos à mercê do sistema dos Correios…
@lucasbustamante agrade?o muito sua aten??o. Imaginei que o problema fosse nos correios mesmo, já que está acontecendo nos outros sites também. Ent?o vou aguardar para ver se eles estabilizam. Caso você tenha alguma novidade sobre o cálculo, você irá atualizar o plugin ou fará algum aviso?
Mais uma vez agrade?o pela sua disposi??o.
Um abra?o,
Victor
- The topic ‘Carta Registrada n?o aparece no cálculo’ is closed to new replies.