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

Corrige warnings do PHP e aumenta compatibilidade com HPOS #22

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

gutobenn
Copy link

Este PR corrige trechos do código que estão gerando warnings no PHP 8.2 e também adota os métodos compatíveis com HPOS.

@@ -904,10 +907,11 @@ function set_bundle_products_array( $bundles, $order){
$total_bundle = 0;
$total_products = 0;
$bundle_products = array();
$product_type = '';
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Para corrigir o warning, defini a variável $product_type aqui no início da função.

Mas fiquei em dúvida se faz sentido que essa variável seja acessada posteriormente fora do foreach, na linha 979 do meu código, pois neste momento ela sempre terá o valor que adquiriu na última iteração do foreach. Isso não pode ter alguma consequencia indesejada ou não estar funcionando em algum caso?

@@ -992,7 +993,7 @@ function atualizar_status_nota() {
*/
function metabox_content_woocommernfe_nfe_emitida( $order ) {

if (isset($order->ID)){
if ( ! is_a( $order, 'WC_Order' ) && isset($order->ID) ) {
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Na versão do WooCommerce que estou usando (9.1.2) este trecho gera um alerta de que não se deve acessar a propriedade ID diretamente.
No meu ambiente de testes, com HPOS ativado e modo de compatibilidade desativado, não consegui reproduzir o caso em que o parâmetro $order não fosse um objeto do tipo WC_Order e que portanto seria necessário fazer uma chamada para wc_get_order().

Pensei que talvez esse trecho do código tenha sido adicionado por uma questão de retrocompatibilidade, então adicionei uma nova condição no if para que ele somente acesse o $order->ID se a variável $order não for da classe WC_Order.

@@ -1105,7 +1106,7 @@ function metabox_content_woocommernfe_nfe_emitida( $order ) {
function metabox_content_woocommernfe_informacoes_adicionais( $order ) {

// Vars
if (isset($order->ID)){
if ( ! is_a( $order, 'WC_Order' ) && isset($order->ID) ) {
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Na versão do WooCommerce que estou usando (9.1.2) este trecho gera um alerta de que não se deve acessar a propriedade ID diretamente.
No meu ambiente de testes, com HPOS ativado e modo de compatibilidade desativado, não consegui reproduzir o caso em que o parâmetro $order não fosse um objeto do tipo WC_Order e que portanto seria necessário fazer uma chamada para wc_get_order().

Pensei que talvez esse trecho do código tenha sido adicionado por uma questão de retrocompatibilidade, então adicionei uma nova condição no if para que ele somente acesse o $order->ID se a variável $order não for da classe WC_Order.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant