Esconder modalidade de envio quando Frete Grátis disponível
-
Fala @claudiosanches,
Dessa vez n?o venho pedir ajuda, mas fazer uma contribui??o a quem interessar.
O plugin funciona e está cada vez melhor, mas sempre senti necessidade de uma melhoria. Esconder a modalidade de frete quando o Frete Grátis está disponível.
Encontrei uma fun??o na net que esconde todas as modalidades quando o Frete Grátis está disponível, mas modifiquei um pouco para permitir que as modalidades diferentes permane?am na lista. O código ainda tá cru e atendendo apenas minha necessidade, mas acredito que possa ajudar algumas pessoas. N?o sei se seria o caso de montar um plugin pra isso ou se seria o caso de integrar a ideia ao plugin WooCommerce Correios. Segue abaixo:
function labelModify($label){ // Retorno apenas a estimativa de entrega e pre?o (sem o nome da modalidade) preg_match('/\((.*?)\)/', $label, $match); $str = $match[0]; return $str; } function my_hide_shipping_when_free_is_available( $rates ) { $frees = array(); $label_pac = ''; $label_sed = ''; // Incluindo no array $frees e salvando as labels foreach ( $rates as $rate_id => $rate ) { if ( $rate->method_id === 'correios-pac' ) { $label_pac = labelModify($rate->label); $frees[ $rate_id ] = $rate; } if ( $rate->method_id === 'correios-sedex' ) { $label_sed = labelModify($rate->label); $frees[ $rate_id ] = $rate; } if ( $rate->method_id === 'free_shipping' ) { $frees[ $rate_id ] = $rate; } } // Definindo a label para o frete grátis, se disponível foreach($frees as $free_id => $free){ if ( $free->method_id === 'free_shipping' ) { $label_gratis = ($label_pac != '') ? $label_pac : $label_sed; $free->label = 'Frete Grátis '.$label_gratis; $exclude_mod = ($label_pac != '') ? 'correios-pac1' : 'correios-sedex2'; unset( $frees[$exclude_mod] ); } } return ! empty( $frees ) ? $frees : $rates; } add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );
abs
- The topic ‘Esconder modalidade de envio quando Frete Grátis disponível’ is closed to new replies.