Frete grátis – cache dos custos de entrega
-
Tenho a seguinte situação na loja, se o usuário adicionar produtos por meio de uma lista é setado uma variável para identificar que o checkout não deve cobrar o frete (frete grátis). O código é:
function hide_shipping_when_free_is_available( $rates, $package ) { // Verifica a variável identificando compra da lista $list = isset( $compra_lista ) ? true : false; // Verifica se a compra esta sendo feita para uma lista if ( $list ) { // To unset all methods except for free_shipping, do the following $free_shipping = $rates['free_shipping:3']; $rates = array(); $rates['free_shipping:3'] = $free_shipping; unset( $rates['correios-sedex1'] ); unset( $rates['correios-pac2'] ); } else { unset( $rates['free_shipping:3'] ); } return $rates; } add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
O código não está funcionando 100%, entenda:
_ Se o usuário previamente já adicionou o CEP em um carrinho anterior, na página no checkout ainda aparecem as opções PAC e SEDEX, mas não o Frete Grátis.
_ Se eu atualizar o carrinho eliminando produto ou alterando a quantidade de itens de algum produto, os métodos são removidos (pac e sedex) ficando apenas o frete grátis. Isso que tem que ficar padrão.Já tentei, sem sucesso:
_ Dar um reload na página do checkout, não acontece nada
_ Clicar ou simular o clique no botão “atualizar carrinho”Se eu estiver com o “Modo depuração de entrega” habilitado no painel, funciona, mas não posso deixar habilitado.
- O tópico ‘Frete grátis – cache dos custos de entrega’ está fechado para novas respostas.