• Resolved DriftWeb

    (@driftweb)


    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.

Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter DriftWeb

    (@driftweb)

    Esqueci de mencionar, como uso um plugin para modificar as varia??es, os famosos “swatches”, meu seletor ficou:
    document.querySelectorAll(‘.tawcvs-swatches span.swatch’).forEach(function(element, index, array)…

    Aqui basta alterar as classes para se adequar ao seu tema e plugins:
    document.querySelectorAll(‘classes aqui’).forEach(function(element, index, array)

    Plugin Author carlosramosweb

    (@carlosramosweb)

    Olá, @driftweb
    Mande seu plugin alterado em zip para o email [email protected] para passar por testes, se estiver tudo ok posso colocar no ar com suas altera??o e com men??o ao seu nome do plugin.

    Email: [email protected]

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Erro no calculo das parcelas e atualizando com produto variável’ is closed to new replies.