O wordpress tem uma função de frete grátis integrada, porém esse frete se adequa nas seguintes situações
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 );