Bug no parcelamento
-
Olá,
Eu cadastrei a parcela mínima de R$250 e quando compro produtos com valor inferior a este, ao invés de aparecer 1x de R$100, por exemplo, não aparece nada e o select fica em branco, mesmo sendo obrigatório, o cliente não consegue selecionar nenhuma opção.
Eu entendo que 1x não é parcelamento e a parcela mínima não deveria ocultar nestes casos.
Será que a gente consegue resolver isto?
Abraços!
-
oi, @woozdigital!
conseguimos, sim! será que você poderia nos enviar uma captura de tela como evidência do bug? assim consigo colocar o bug oficialemnte na nossa fila de desenvolvimento para investigação e resolução 🙂
Eai Anderson, obrigado pelo retorno.
Gravei um video mostrando o erro na prática:
massa! consegui replicar aqui o bug também. é isso mesmo, o plugin tá com esse probleminha no caso de parcela mínima com valor mais alto que o total de um produto.
mas já achei a linha de código e a próxima versão já vai ter a correção. enquanto essa nova versão não sai, posso te passar a alteração pra fazer no seu próprio código, para que isso seja corrigido o mais rápido possível. você tem acesso ao código do plugin, certo?
Show de bola Anderson!
Quando conseguir isso, me manda por favor!
Valeu!!
bom dia, @woozdigital!
bora lá dar um jeito esse bug: você vai precisar substituir as linhas 33-58 do arquivo templates/credit-card/payment-form.php por:
<p class="form-row form-row-wide"> <label for="iugu-card-installments"><?php _e( 'Installments', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <select id="iugu-card-installments" name="iugu_card_installments" style="font-size: 1.5em; padding: 4px; width: 100%;"> <?php for ( $i= 1; $i <= $installments; $i++ ) : $total_to_pay = $order_total; $installment_total = $total_to_pay / $i; $interest_text = __( 'free interest', 'iugu-woocommerce' ); // Set the interest rate. if ( $i > $free_interest ) { $total_rate = isset( $rates[ $i ] ) ? $rates[ $i ] / 100 : 1 / 100; $total_to_pay = $order_total * ( ( 1 - ( $transaction_rate / 100 ) ) / ( 1 - $total_rate ) ); $installment_total = $total_to_pay / $i; $interest_text = __( 'with interest', 'iugu-woocommerce' ); } // Stop when the installment total is less than the smallest installment configure. if ( $i > 1 && $installment_total < $smallest_installment ) { break; } ?> <option value="<?php echo $i; ?>"><?php echo esc_attr( sprintf( __( '%dx of %s %s (Total: %s)', 'iugu-woocommerce' ), $i, sanitize_text_field( wc_price( $installment_total ) ), $interest_text, sanitize_text_field( wc_price( $total_to_pay ) ) ) ); ?></option> <?php endfor; ?> </select> </p>isso vai fazer com que o dropdown de parcelamento sempre apareça e tenha pelo menos a opção de “parcelamento em 1x”, independentemente do valor total do pedido e do mínima da parcela.
vale dizer que essa não é a melhor solução (seria melhor esconder o dropdown de vez em vendas à vista), mas é a mais rápida. eu também não tive tempo hábil para escrever testes automatizados para a mudança, mas simulei vários cenários manualmente aqui no meu ambiente e a solução parece dar conta do que você precisa 🙂
me avisa se isso causar algum comportamento estranho? pode me avisar também se der tudo certo! hahaha
Eitaa brother, aí bugou de vez…
Sumiu o boleto e os dados do cartão. Ficou assim:
Eu colei o seguinte código, em templates/credit-card/payment-form.php
<?php /** * Credit Card - Checkout form. * * @author Iugu * @package Iugu_WooCommerce/Templates * @version 1.1.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; } ?> <fieldset id="iugu-credit-card-fields"> <p class="form-row form-row-first"> <label for="iugu-card-number"><?php _e( 'Card number', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <input id="iugu-card-number" class="input-text wc-credit-card-form-card-number" type="text" maxlength="20" autocomplete="off" placeholder="•••• •••• •••• ••••" style="font-size: 1.5em; padding: 8px;" data-iugu="number" /> </p> <p class="form-row form-row-last"> <label for="iugu-card-holder-name"><?php _e( 'Name printed on card', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <input id="iugu-card-holder-name" name="iugu_card_holder_name" class="input-text" type="text" autocomplete="off" style="font-size: 1.5em; padding: 8px;" data-iugu="full_name" /> </p> <div class="clear"></div> <p class="form-row form-row-first"> <label for="iugu-card-expiry"><?php _e( 'Expiry date (MM/YYYY)', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <input id="iugu-card-expiry" class="input-text wc-credit-card-form-card-expiry" type="text" autocomplete="off" placeholder="<?php _e( 'MM / YYYY', 'iugu-woocommerce' ); ?>" style="font-size: 1.5em; padding: 8px;" data-iugu="expiration" /> </p> <p class="form-row form-row-last"> <label for="iugu-card-cvc"><?php _e( 'Security code', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <input id="iugu-card-cvc" class="input-text wc-credit-card-form-card-cvc" type="text" autocomplete="off" placeholder="<?php _e( 'CVC', 'iugu-woocommerce' ); ?>" style="font-size: 1.5em; padding: 8px;" data-iugu="verification_value" /> </p> <p class="form-row form-row-wide"> <label for="iugu-card-installments"><?php _e( 'Installments', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <select id="iugu-card-installments" name="iugu_card_installments" style="font-size: 1.5em; padding: 4px; width: 100%;"> <?php for ( $i= 1; $i <= $installments; $i++ ) : $total_to_pay = $order_total; $installment_total = $total_to_pay / $i; $interest_text = __( 'free interest', 'iugu-woocommerce' ); // Set the interest rate. if ( $i > $free_interest ) { $total_rate = isset( $rates[ $i ] ) ? $rates[ $i ] / 100 : 1 / 100; $total_to_pay = $order_total * ( ( 1 - ( $transaction_rate / 100 ) ) / ( 1 - $total_rate ) ); $installment_total = $total_to_pay / $i; $interest_text = __( 'with interest', 'iugu-woocommerce' ); } // Stop when the installment total is less than the smallest installment configure. if ( $i > 1 && $installment_total < $smallest_installment ) { break; } ?> <option value="<?php echo $i; ?>"><?php echo esc_attr( sprintf( __( '%dx of %s %s (Total: %s)', 'iugu-woocommerce' ), $i, sanitize_text_field( wc_price( $installment_total ) ), $interest_text, sanitize_text_field( wc_price( $total_to_pay ) ) ) ); ?></option> <?php endfor; ?> </select> </p> <?php endif; ?> <div class="clear"></div> </fieldset>eita. eu acho que é por causa desse
<?php endif; ?>no final, considerando que tiramos umiflá de cima. tô te passando o arquivo inteiro, vê se rola:<?php /** * Credit Card - Checkout form. * * @author Iugu * @package Iugu_WooCommerce/Templates * @version 1.1.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; } ?> <fieldset id="iugu-credit-card-fields"> <p class="form-row form-row-first"> <label for="iugu-card-number"><?php _e( 'Card number', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <input id="iugu-card-number" class="input-text wc-credit-card-form-card-number" type="text" maxlength="20" autocomplete="off" placeholder="•••• •••• •••• ••••" style="font-size: 1.5em; padding: 8px;" data-iugu="number" /> </p> <p class="form-row form-row-last"> <label for="iugu-card-holder-name"><?php _e( 'Name printed on card', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <input id="iugu-card-holder-name" name="iugu_card_holder_name" class="input-text" type="text" autocomplete="off" style="font-size: 1.5em; padding: 8px;" data-iugu="full_name" /> </p> <div class="clear"></div> <p class="form-row form-row-first"> <label for="iugu-card-expiry"><?php _e( 'Expiry date (MM/YYYY)', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <input id="iugu-card-expiry" class="input-text wc-credit-card-form-card-expiry" type="text" autocomplete="off" placeholder="<?php _e( 'MM / YYYY', 'iugu-woocommerce' ); ?>" style="font-size: 1.5em; padding: 8px;" data-iugu="expiration" /> </p> <p class="form-row form-row-last"> <label for="iugu-card-cvc"><?php _e( 'Security code', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <input id="iugu-card-cvc" class="input-text wc-credit-card-form-card-cvc" type="text" autocomplete="off" placeholder="<?php _e( 'CVC', 'iugu-woocommerce' ); ?>" style="font-size: 1.5em; padding: 8px;" data-iugu="verification_value" /> </p> <p class="form-row form-row-wide"> <label for="iugu-card-installments"><?php _e( 'Installments', 'iugu-woocommerce' ); ?> <span class="required">*</span></label> <select id="iugu-card-installments" name="iugu_card_installments" style="font-size: 1.5em; padding: 4px; width: 100%;"> <?php for ( $i= 1; $i <= $installments; $i++ ) : $total_to_pay = $order_total; $installment_total = $total_to_pay / $i; $interest_text = __( 'free interest', 'iugu-woocommerce' ); // Set the interest rate. if ( $i > $free_interest ) { $total_rate = isset( $rates[ $i ] ) ? $rates[ $i ] / 100 : 1 / 100; $total_to_pay = $order_total * ( ( 1 - ( $transaction_rate / 100 ) ) / ( 1 - $total_rate ) ); $installment_total = $total_to_pay / $i; $interest_text = __( 'with interest', 'iugu-woocommerce' ); } // Stop when the installment total is less than the smallest installment configure. if ( $i > 1 && $installment_total < $smallest_installment ) { break; } ?> <option value="<?php echo $i; ?>"><?php echo esc_attr( sprintf( __( '%dx of %s %s (Total: %s)', 'iugu-woocommerce' ), $i, sanitize_text_field( wc_price( $installment_total ) ), $interest_text, sanitize_text_field( wc_price( $total_to_pay ) ) ) ); ?></option> <?php endfor; ?> </select> </p> <div class="clear"></div> </fieldset>Acertou Miserávi…
HahhaaFuncionando perfeitamente!
Muito obrigado brother!
Excelente trabalho!
hahaha foi nada! que bom que deu certo 😀
qualquer coisa, só falar!
The topic ‘Bug no parcelamento’ is closed to new replies.