Página 1 de 1

[Resolvido] Mostrar o preço divido em 12 parcelas

Enviado: 25 Jul 2016, 03:21
por xaminha
Amigos, estou tentando migrar pro open, mas tenho algumas dúvidas.
Nos testes que fiz na versão 2.2 sobre mostrar parcelamento, está dando erro.

PS: Não sou programador, sou designer.
O que para alguns pode ser simples, para outros não.


No arquivo category.tpl fiz o seguinte (isso dps de muita pesquisa)
Código: Selecionar todos
<?php $product['price2'] = preg_replace("/[^0-9,.]/", "", $product['price']) / 12 ?>
<?php $product['special2'] = preg_replace("/[^0-9,.]/", "", $product['special']) / 12 ?>

<?php if (!$product['special']) { ?>
<?php echo number_format($product['price2'], 2, ',', '.'); ?>
<?php } else { ?>
<?php echo number_format($product['special2'], 2, ',', '.'); ?>
<?php } ?>
Nos preços abaixo de 1.000,00 ele mostra certinho.

100,00 = 8,33
200,00 = 16,67
999,00 = 83,25

Mas a partir de 1.000,00 ele não calcula certo.

1.000,00 = 0,08
1.111,00 = 0,09

Alguém poderia me dar uma luz?
Grato.

Re: Mostrar o preço divido em 12 parcelas

Enviado: 25 Jul 2016, 13:19
por veteranodf
Isso ocorre pois o php não faz cálculos quando tem vírgula no valor, você deve substituir a vírgula por ponto; Fiz uma adaptação que irá corrigir esse problema, da uma olhada;
Código: Selecionar todos
<?php
function validar_valor($valor){
      if((preg_match('/,/i',$valor))and(preg_match('/./i',$valor))){
         $valor = str_replace('.','',$valor);
         $valor = str_replace(',','.',$valor);
      }
      else{
         $valor = str_replace(',','.',$valor);
      }
	  return $valor;
}
?>
  
<?php $product['price2'] = preg_replace("/[^0-9,.]/", "", tratar_valor($product['price'])) / 12 ?>
<?php $product['special2'] = preg_replace("/[^0-9,.]/", "", tratar_valor($product['special'])) / 12 ?>

<?php if (!$product['special']) { ?>
<?php echo number_format($product['price2'], 2, ',', '.'); ?>
<?php } else { ?>
<?php echo number_format($product['special2'], 2, ',', '.'); ?>
<?php } ?>

Re: Mostrar o preço divido em 12 parcelas

Enviado: 29 Jul 2016, 07:59
por xaminha
Obrigado veteranodf.
Vou tentar fazer essas adptações que você fez pra ver se o erro acaba.