Menu fechado

Woocommerce Frete Grátis por Produto

O wordpress tem uma função de frete grátis integrada, porém esse frete se adequa nas seguintes situações

  • Para todos os produtos
  • Com cupom de desconto
  • Com valor de pedido X

Na sua função original ele não tem a opção de colocarmos para um produto especifico. Mas com uma função e classe de entrega vamos te passar como fazer isso.

1 – Ative a função frete grátis

Acesse o menu WooComemerce > Configurações > Aba entrega

Cria uma região de entrega que irá atender o frete grátis do produto, depois de salvar, adicione o metodo de entrega Frete Grátis

 

2 – Crie a classe frete grátis

Acesse o menu WooComemerce > Configurações > Aba entrega > Aba classe de entrega

Crie a classe Frete Grátis e no slug coloque entrega-gratuita

 

3 – Coloque a classe no produto

Em dados do produto, acesse a aba Entrega, na classe de entrega selecione Frete Grátis

 

4 – Crie a função para ligação do frete grátis com a classe

Cole a função abaixo na pagina functions.php do seu tema

function my_wc_free_shipping_by_shipping_class( $rates, $package ) {
$shipping_class = 'entrega-gratuita'; // Slug da sua classe de entrega.
$allow_free_shipping = true;
// Verifica se todos os produtos precisam ser entregues e se possuem a class de entrega selecionada.
foreach ( $package['contents'] as $value ) {
$product = $value['data'];
if ( $product->needs_shipping() && $shipping_class !== $product->get_shipping_class() ) {
$allow_free_shipping = false;
break;
}
}
// Remove a entrega gratuita se algum produto não possuir a classe de entrega selecionada.
if ( ! $allow_free_shipping ) {
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
unset( $rates[ $rate_id ] );
break;
}
}
}
return $rates;
}
add_filter( 'woocommerce_package_rates', 'my_wc_free_shipping_by_shipping_class', 100, 2 );

Deixe uma resposta