Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged

Conversation

lucastgama
Copy link
Contributor

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

…com as novas versões do PHP 8.3 e do WC 8.5.2
@lucastgama lucastgama requested a review from a team as a code owner February 16, 2024 17:37
@lucastgama
Copy link
Contributor Author

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.

@lucastgama lucastgama force-pushed the apiki_atualizacao_compatibilidade branch from 3d2dfbf to 8b47104 Compare March 4, 2024 13:12
Copy link

codeclimate bot commented Mar 6, 2024

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

View more on Code Climate.

@thiago-firmino-vindi thiago-firmino-vindi merged commit b73c191 into vindi:master Mar 6, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants