Erro no calculo das parcelas e atualizando com produto variável
-
Estava usando o plugin, e ele é ótimo e me ajudeou até certo ponto, vi que algumas pessoas estavam passando pelos mesmos problemas que eu, ent?o resolvi arrumar (gambiarra), mas por hora resolveu, vou compartilhar as altera??es que fiz para ajudar a comunidade, como disse fiz na pressa, e quem quiser ajudar a melhorar o código ficaria grato, já estou vendo para futuramente pegar os fatores de calculo automaticamente com a conta configurada no pagseguro, por hora ainda fiz estático mas atualizei os valores.
Na linha: 225 – woo-pagseguro-parceled.php
atualizei para:
$fator = array(
1,
0.5226666666666667,
0.34333,
0.26133,
0.21200,
0.17933,
0.15600,
0.13838,
0.12488,
0.11400,
);isso corrigiu os valores das parcelas para mim.
Outra coisa muito importante para mim era atualizar os valores das parcelas quando escolhe uma varia??o, para isso criei um js.JS criado:
jQuery(function($) {
document.querySelectorAll(‘.tawcvs-swatches span.swatch’).forEach(function(element, index, array){
element.addEventListener(‘click’, function(event){
setTimeout(function(){
var pegapreco = document.querySelector(‘.single_variation_wrap ins span.woocommerce-Price-amount.amount’);
if (pegapreco == null){
pegapreco = document.querySelector(‘.single_variation_wrap span.woocommerce-Price-amount.amount’);
}
pegapreco = pegapreco.innerText.replace(‘R$’, ”).replace(‘,’, ‘.’);
var parcelas = document.querySelector(‘.p-woo-pagseguro-installment .amount’);
if (parcelas != null){
var html = parcelas.innerHTML.split(‘</span>’);
html[1] = pegapreco / document.querySelector(‘.vezes’).innerText;
html[1] = html[1].toFixed(2).toString().replace(‘.’,’,’);
parcelas.innerHTML = html[0] + ‘</span>’ + html[1];
document.querySelectorAll(‘span.span-woo-pagseguro-installments’).forEach(function(element, index, array){
var juros = element.querySelector(‘.juros’);
if (juros == null){
juros = 1;
} else {
juros = juros.innerText;
}
parcelas = element.querySelector(‘.amount’);
var html = parcelas.innerHTML.split(‘</span>’);
html[1] = pegapreco * juros;
html[1] = html[1].toFixed(2).toString().replace(‘.’,’,’);
parcelas.innerHTML = html[0] + ‘</span>’ + html[1];
})
}
},100);
})
});
});Na linha: 238 – woo-pagseguro-parceled.php
if ($installment > 0 ) {
$j = 0;
for ($i = 0; $i <= 11; $i++ ) {
if ($start == ‘left’) {
// left
if (($price / ($i + 1)) >= 5 && ($i % 2) == 0 ) {
$j++;
if ($i + 1 > $installment) { $installments = “com juros”; } else { $installments = “*sem juros“; }
if (($j + 1) % 2 ) { $class = “”; } else { $class = “color”; }
if (($i + 1) <= $installment ) {
echo ‘<span class=”span-woo-pagseguro-installments ‘.$class.'”>’.($i+1).’x de ‘.woocommerce_price($price / ($i+1)).’ ‘.$installments.'<div class=”juros” style=”display:none !important;”>’ . (1 / ($i+1)) . ‘</div></span>’;
}else{
echo ‘<span class=”span-woo-pagseguro-installments ‘.$class.'”>’.($i+1).’x de ‘.woocommerce_price($price * $fator[$i]).’ ‘.$installments.'<div class=”juros” style=”display:none !important;”>’ . $fator[$i] . ‘</div></span>’;
}
}
//
} else if ($start == ‘right’) {
// right
if (($price / ($i + 1)) >= 5 && ($i % 2) != 0 ) {
$j++;
if ($i + 1 > $installment) { $installments = “com juros”; } else { $installments = “*sem juros“; }
if (($j + 1) % 2 ) { $class = “”; } else { $class = “color”; }
if (($i + 1) <= $installment ) {
echo ‘<span class=”span-woo-pagseguro-installments ‘.$class.'”>’.($i+1).’x de ‘.woocommerce_price($price / ($i+1)).’ ‘.$installments.'<div class=”juros” style=”display:none !important;”>’ . (1 / ($i+1)) . ‘</div></span>’;
}else{
echo ‘<span class=”span-woo-pagseguro-installments ‘.$class.'”>’.($i+1).’x de ‘.woocommerce_price($price * $fator[$i]).’ ‘.$installments.'<div class=”juros” style=”display:none !important;”>’ . $fator[$i] . ‘</div></span>’;
}
}
//
}}
}else{
echo ‘<span class=”span-woo-pagseguro-installments ‘.$class.'”>1x de ‘.woocommerce_price($price).’ *sem juros</span>’;
}Na linha: 307 – woo-pagseguro-parceled.php
printf(__(‘<div class=”vezes” style=”display:none !important”>%s</div>até <span> %sx </span> de <span> %s </span><div class=”precoparcelado” style=”display:none !important”>%s</div>’, ‘woo-pagseguro-parceled’ ), $woo_product_parceled_installment, $woo_product_parceled_installment, $this->woo_product_parceled(), $this->woo_product_parceled() ); ?>Como disse, fiz na correria, porem está resolvendo para mim, ainda farei melhorias, quem quiser ajudar a melhorar o plugin será de grande ajuda para a comunidade e o criador do plugin.
- The topic ‘Erro no calculo das parcelas e atualizando com produto variável’ is closed to new replies.