Closed lcssanches closed 4 years ago
Qual erro acontece? No caso ainda é importante mostrar com que cartão foi utilizado. Além que se tem erro por causa da quantidade de parcelas, aquele lance que estava fazendo sobre apenas mostrar se foi pago, não resolve muito.
Division by zero.
Fiz um teste aqui e percebi que uma alteração no meu tema estava causando isso.
Mas deixa eu te explicar...
Veja essa imagem: Esse pedido foi pago parcelado, mas na página do pedido não mostra os detalhes para o cliente. Então para formatar a forma de pagamento eu escrevi este trecho no functions.php (esse mesmo filtro filtro também tem no plugin, mas é adicionado no construtor da classe):
function adjust_totals_display( $totals, $order ) {
/*
Verifica se o método de pagamento já está formatado. Caso não esteja chama o método do próprio cielo-woocommerce para formatar.
*/
$_payment_method = get_post_meta( $order->id, "_payment_method" , true );
if($_payment_method == 'cielo_credit'){
$payment_method = $totals['payment_method'];
$payment_method = $payment_method['value'];
if (strpos($payment_method, '<small>') === false) {
$totals = wc_get_payment_gateway_by_order($order)->order_items_payment_details($totals, $order );
}
}
//Remove o campo SUBTOTAL.
unset($totals['cart_subtotal']);
return $totals;
}
add_filter( 'woocommerce_get_order_item_totals', 'adjust_totals_display' , 90, 2 );
Por isso estava gerava o erro. Eu formatava o método de pagamento para todos os pedidos sem verificar.
Mas outra dúvida. O plugin não deveria formatar isso na página do pedido?
Deve formatar em todas sa páginas, para o cliente poder consultar e ver com o que pagou. Mas da para alterar e mostrar apenas o cartão se não tiver parcelas.
OK, mas porque neste caso não formatou na página do pedido?
@lcssanches preciso ver, mas tem que aparecer em todas as páginas isso pro cliente.
Bom o que eu percebi até agora é que o filtro que existe no plugin só funciona (ou só é adicionado) no construtor da classe de pagamento e na página de pagamento o plugin não é instanciado.
Vou tentar entender melhor isso.
Verifica se existe quantidade de parcelas antes de chamar a função
get_installment_text
, onde o erro acontece.