Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
Olá, tudo bem?
Nesse link tem uma breve documentação sobre o filtro.
Porém, resumindo, você precisa adicionar um código PHP para “filtrar” uma variável em algum momento. Geralmente colocamos isso no código de um plugin ou no tema. Como está usando um Tema Filho pode ser no functions.php dele.
O código é o seguinte:
// Uma função para filtrar a array
function chicodarave_woocommerce_shipping_packages( $array, $int ) {
// Faz o que quiser fazer e retorna:
return $array;
};
// add the filter
add_filter( 'woocommerce_shipping_packages', 'chicodarave_woocommerce_shipping_packages', 10, 2 );
Abraços
Olá Mário.
Agradeço pela atenção mas continuei quase que na mesma, agora sei onde colocar o código mas não sei como fazer ele fazer o que quero.
Pesquisei mais um monte a respeito desse filtro e não achei nada que me ajudasse.
Agradeço de qualquer forma.
Um abraço.
Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
Qual plugin de frete está usando?
Correios do Cláudio Sanches
Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
Bem, baseado nesse post:
https://calebburks.com/customize-woocommerce-shipping-rates/
E nessa documentação:
https://docs.woocommerce.com/document/hide-other-shipping-methods-when-free-shipping-is-available/
Creio que podemos fazer assim:
// Function
function chicodarave_woocommerce_package_rates( $rates, $package ) {
foreach ( $rates as $rate_id => $rate ) {
$current_cost = $rate->cost;
$rates[ $rate_id ]->cost = $current_cost + ( $current_cost * 0.05 );
}
return $rates;
};
// The hook
add_filter( 'woocommerce_package_rates', 'chicodarave_woocommerce_package_rates', 10, 2 );
Não testei, mas teste e me diga no que deu.
Abraços
-
Esta resposta foi modificada 6 anos, 9 meses atrás por Mário Valney. Razão: Correção do método para todas as rates
Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
Ah. A sugestão anterior é para aumentar 5% do valor do frete ao frete. Se for 5% do valor do carrinho, é outro código, mas creio que agora você consegue chegar nele.
Abraços!
Funcionou sim Mário!
Mas era isso mesmo, somente sobre o frete.
Muito obrigado!
Mário, aquele foreach vai fazer uma estrutura de repetição dentro de $rates que é um array certo?
Seria um array com cada forma de envio? (tipo PAC, Sedex?)
Eu poderia fazer uma comparação, por exemplo, se o valor da forma de frete for menos que 10% do valor do pedido eu poderia zerar o valor e deixar ele grátis?
Obrigado.
Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
Acho que a melhor forma de saber seria testando.
Na dúvida, faz um print_r ou imprime no LOG.
Abraços
Deu certo sim Mário!
Mas assim, só aparece “PAC” “Sedex” não aparece o valor R$0,00 ou Frete grátis então fica meio confuso.
Como eu faço pra mudar o label do frete e adicionar isso?
Eu encontrei um meio mas é por outro hook dai não sei como faz pra juntar tudo.
Eu queria dar frete grátis caso o valor da modalidade de frete fosse menor que 5% do valor do pedido.
Eu consigo fazer tudo, menos trocar o label.
Obrigado.
Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
O label do frete é feito nas configurações de entrega o WooCommerce.
Abraços
Eu quero trocar pelo código, quando o valor do frete for zero ele vai adicionar GRÁTIS no nome do método de envio.
Moderador
Mário Valney
(@mariovalney)
WordPress Cleric of Fire
Não sei se é possível.
Nessa array aí não teria como trocar algum label (ou algo do tipo)?
Putz, não sei Mário, entendo muito pouco disso dai, tentei pesquisar bastante mas não achei nada, provavelmente estou procurando pelos termos errados, encontrei um outro filtro que troca mas não sei como juntar as duas coisas nem sei se seria possível ou certo fazer isso 🙁