vindi / vindi-woocommerce

Plugin Vindi para pagamento recorrente no Woocommerce
https://vindi.com.br
GNU General Public License v3.0
7 stars 12 forks source link

Atualização de compatibilidade do WC e PHP #165

Closed lucastgama closed 8 months ago

lucastgama commented 8 months ago

Antes de efetuar qualquer pagamento ou compra, o plugin Vindi apresenta erros relacionados à criação de propriedades dinâmicas em várias de suas classes.

Plano de Ação:

PlansController.php

Erro: Variáveis não declaradas. Solução: Foram declaradas as variáveis $logger e $allowed_types. ProductController.php

Erro: Variáveis não declaradas. Solução: Foram declaradas as variáveis $logger e $ignored_types. SubscriptionStatusHandler.php

Erro: Variáveis não declaradas. Solução: Foram declaradas as variáveis $routes. CreditPayment.php

Erro: Variáveis não declaradas. Solução: Foram declaradas as variáveis $smallest_installment, $installments, $verify_method e $enable_interest_rate. Após uma tentativa de pagamento ou compra, o debug.log do sistema apresenta os mesmos erros de criação de propriedades dinâmicas, mas agora em outras classes.

RoutesApi.php

Erro: Variáveis não declaradas. Solução: Foi declarada a variável $current_plan. CreditPayment.php

Erro: Variáveis não declaradas. Solução: Foi adicionada a condição isset($this->is_trial), pois o is_trial poderia não existir. creditcard-checkout.html.php

Erro: Variáveis não declaradas. Solução: Foi adicionada a condição isset($id), pois o $id poderia não existir, evitando erro no do_action('vindi_credit_card_form_start', $id). bankslip-checkout.html.php

Erro: Variáveis não declaradas. Solução: Foi adicionada a condição isset($id), pois o $id poderia não existir, evitando erro no do_action('vindi_bank_slip_form_start', $id). Após efetuar o pagamento, o plugin apresentou problemas com a forma que o id e name estavam sendo chamados pelo arquivo PaymentProcessor.php. Onde estava escrito $order->id, passou a estar $order->get_id() e $order->name para $order->get_name().

Com essas alterações feitas o debug.log não apresentou mais falhas sobre o plugin da Vindi, sendo assim compatível com as versões mais atualizadas do WC, Wordpress e PHP 8.3

lucastgama commented 8 months ago

Foi adicionado duas funções auxiliares no arquivo PaymentProcessor para auxiliar na fragmentação da função finish_payment. Essa fragmentação foi necessária devido a uma regra existente no CodeClimate, que limita o tamanho das funções a 25 linhas e 120 caracteres.

A função generate_log_message foi criada para gerar mensagens de log personalizadas com base no status de pagamento de cada fatura.

Já a função update_order_status foi criada para atualizar o status do pedido com base no status de pagamento das faturas. Ela verifica se todas as faturas foram pagas e, caso positivo, atualiza o status do pedido para o status de retorno configurado. Além disso, ela também trata o caso em que o pedido possui um período de teste, ajustando o status e a mensagem de acordo.

codeclimate[bot] commented 8 months ago

Code Climate has analyzed commit b1cd6b26 and detected 0 issues on this pull request.

View more on Code Climate.