Skip to content

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.

$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?

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.


// 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