Salve,
Um cliente teve a necessidade de fazer uma promoção onde os fretes de compras a partir de um certo valor não seriam cobrados.
Demorei um bocado para chegar a uma solição simples e limpa. Disto isto, mão na massa... Nos arquivos do componente (correios_encom_pac.php e correios_sedex.php):
1. Cáclulo do frete
Na função 'list_rates', substituir tudo entre o texto 'Final Obtém o valor do frete do site dos Correios' e o final da função por:
if($order_total < gratis_acima_de){
$Total_Shipping_Handling = $APcharge + $Order_Handling_Fee;
$free_shipping = false;
$ship_text = "<strong>".$CURRENCY_DISPLAY->getFullValue($Total_Shipping_Handling)."</strong>";
$ship_text .= " (".$Order_WeightKG." Kg - Aprox. ".$prazo.")";
} else {
$Total_Shipping_Handling = 0;
$free_shipping = true;
$ship_text = "<strong>Frete grátis!</strong> Compra acima de ".$CURRENCY_DISPLAY->getFullValue(gratis_acima_de);
$ship_text .= " - Aprox. ".$prazo;
}
// THE ORDER OF THOSE VALUES IS IMPORTANT:
// ShippingClassName|carrier_name|rate_name|totalshippingcosts|rate_id
$shipping_rate_id = urlencode( $this->classname."|Correios_Brasil|Encomenda_PAC|".$Total_Shipping_Handling);
$_SESSION[$shipping_rate_id] = 1;
$html = "\n<input type=\"radio\" name=\"shipping_rate_id\" id=\"correios_encomenda\" checked=\"checked\" value=\"$shipping_rate_id\" />\n";
$html .= "<label for=\"Correios_encomenda_shipping_rate\">Correios - PAC - ";
//$html .= "Correios - Encomenda PAC";
//$html .= " - ";
$html .= $ship_text;
$html .= "</label>";
echo $html;
return true;
2. Exibição da configuração
Na função 'show_configuration', inserir a linha de tabela (TR)
<tr>
<td><strong>Frete gratuito acima de:</strong></td>
<td>
<input type="text" name="gratis_acima_de" class="inputbox" value="<?php echo gratis_acima_de ?>" />
</td>
<td>
<?php echo mm_ToolTip("Fretes acima deste valor não serão cobrados. Formato 400.00") ?>
</td>
</tr>
3. Gravação da configuração
Na função 'write_configuration' insira a seguinte linha no array $my_config_array:
"gratis_acima_de" => $d['gratis_acima_de'],
Essa mereçe entrar para a próxima versão, não é Fernando?
Assim não preciso replicar quando fizer upgrade...