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 umif
lá 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.