woocommerce-extra-checkout-fields-for-brazil
woocommerce-extra-checkout-fields-for-brazil copied to clipboard
Erro no front end
Há alguns dias o pulgin começou a apresentar o seguinte erro na pagina do carrinho e não finaliza o checkout, o que pode ser feito?
`Notice: Undefined index: number in /var/www/vhosts/udv.com.br/nossaloja.udv.com.br/wp-content/plugins/woocommerce-extra-checkout-fields-for-brazil/includes/class-extra-checkout-fields-for-brazil-front-end.php on line 478
Notice: Undefined index: neighborhood in /var/www/vhosts/udv.com.br/nossaloja.udv.com.br/wp-content/plugins/woocommerce-extra-checkout-fields-for-brazil/includes/class-extra-checkout-fields-for-brazil-front-end.php on line 479`
Estou com o mesmo problema na loja de um cliente. Utilizo o Tema Betheme. Já revisei todas as configurações do WooCommerce, Já tentei reinstalar e atualizar tema, plugins, wordpress,...e nada de o erro sumir!
Confirmado em testes locais.
Setup
- PHP: 7.2.12
- Wordpress: 5.0.2 (*a compatibilidade garantida documentada é até 4.9)
- WooCommerce: 3.5.3
- WooCommerce Extra Checkout Fields for Brazil: 3.6.1
Página
carrinho/
Após adicionar um produto no carrinho. No meu caso, o WC estava configurado para redirecionar ao carrinho após uma adição bem-sucedida.
Problema
Neste método aqui, os itens number
e neighborhood
não existem no array $args
:
https://github.com/claudiosanches/woocommerce-extra-checkout-fields-for-brazil/blob/7cb2499b6992694476646071c35d037524760b84/includes/class-extra-checkout-fields-for-brazil-front-end.php#L477-L482
Informações Extra
Variáveis
$args
:
Array
(
[first_name] =>
[last_name] =>
[company] =>
[address_1] =>
[address_2] =>
[city] =>
[state] => RS
[postcode] =>
[country] => BR
[address] =>
)
Stacktrace
Vou postar o stacktrace completo de somente um dos erros, pois eles vem do mesmo array dentro do mesmo método:
[28-Dec-2018 19:17:27 UTC] PHP Notice: Undefined index: number in /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce-extra-checkout-fields-for-brazil/includes/class-extra-checkout-fields-for-brazil-front-end.php on line 478
[28-Dec-2018 19:17:27 UTC] PHP Stack trace:
[28-Dec-2018 19:17:27 UTC] PHP 1. {main}() /mnt/c/g/gl/zoiosilva/loja/index.php:0
[28-Dec-2018 19:17:27 UTC] PHP 2. require() /mnt/c/g/gl/zoiosilva/loja/index.php:17
[28-Dec-2018 19:17:27 UTC] PHP 3. require_once() /mnt/c/g/gl/zoiosilva/loja/wp-blog-header.php:19
[28-Dec-2018 19:17:27 UTC] PHP 4. include() /mnt/c/g/gl/zoiosilva/loja/wp-includes/template-loader.php:74
[28-Dec-2018 19:17:27 UTC] PHP 5. get_template_part() /mnt/c/g/gl/zoiosilva/loja/wp-content/themes/storefront/page.php:24
[28-Dec-2018 19:17:27 UTC] PHP 6. locate_template() /mnt/c/g/gl/zoiosilva/loja/wp-includes/general-template.php:155
[28-Dec-2018 19:17:27 UTC] PHP 7. load_template() /mnt/c/g/gl/zoiosilva/loja/wp-includes/template.php:647
[28-Dec-2018 19:17:27 UTC] PHP 8. require() /mnt/c/g/gl/zoiosilva/loja/wp-includes/template.php:690
[28-Dec-2018 19:17:27 UTC] PHP 9. do_action() /mnt/c/g/gl/zoiosilva/loja/wp-content/themes/storefront/content-page.php:18
[28-Dec-2018 19:17:27 UTC] PHP 10. WP_Hook->do_action() /mnt/c/g/gl/zoiosilva/loja/wp-includes/plugin.php:453
[28-Dec-2018 19:17:27 UTC] PHP 11. WP_Hook->apply_filters() /mnt/c/g/gl/zoiosilva/loja/wp-includes/class-wp-hook.php:310
[28-Dec-2018 19:17:27 UTC] PHP 12. storefront_page_content() /mnt/c/g/gl/zoiosilva/loja/wp-includes/class-wp-hook.php:286
[28-Dec-2018 19:17:27 UTC] PHP 13. the_content() /mnt/c/g/gl/zoiosilva/loja/wp-content/themes/storefront/inc/storefront-template-functions.php:335
[28-Dec-2018 19:17:27 UTC] PHP 14. apply_filters() /mnt/c/g/gl/zoiosilva/loja/wp-includes/post-template.php:240
[28-Dec-2018 19:17:27 UTC] PHP 15. WP_Hook->apply_filters() /mnt/c/g/gl/zoiosilva/loja/wp-includes/plugin.php:203
[28-Dec-2018 19:17:27 UTC] PHP 16. do_shortcode() /mnt/c/g/gl/zoiosilva/loja/wp-includes/class-wp-hook.php:286
[28-Dec-2018 19:17:27 UTC] PHP 17. preg_replace_callback() /mnt/c/g/gl/zoiosilva/loja/wp-includes/shortcodes.php:197
[28-Dec-2018 19:17:27 UTC] PHP 18. do_shortcode_tag() /mnt/c/g/gl/zoiosilva/loja/wp-includes/shortcodes.php:197
[28-Dec-2018 19:17:27 UTC] PHP 19. WC_Shortcodes::cart() /mnt/c/g/gl/zoiosilva/loja/wp-includes/shortcodes.php:319
[28-Dec-2018 19:17:27 UTC] PHP 20. WC_Shortcodes::shortcode_wrapper() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/includes/class-wc-shortcodes.php:85
[28-Dec-2018 19:17:27 UTC] PHP 21. WC_Shortcode_Cart::output() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/includes/class-wc-shortcodes.php:72
[28-Dec-2018 19:17:27 UTC] PHP 22. wc_get_template() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/includes/shortcodes/class-wc-shortcode-cart.php:93
[28-Dec-2018 19:17:27 UTC] PHP 23. include() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/includes/wc-core-functions.php:208
[28-Dec-2018 19:17:27 UTC] PHP 24. do_action() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/templates/cart/cart.php:163
[28-Dec-2018 19:17:27 UTC] PHP 25. WP_Hook->do_action() /mnt/c/g/gl/zoiosilva/loja/wp-includes/plugin.php:453
[28-Dec-2018 19:17:27 UTC] PHP 26. WP_Hook->apply_filters() /mnt/c/g/gl/zoiosilva/loja/wp-includes/class-wp-hook.php:310
[28-Dec-2018 19:17:27 UTC] PHP 27. woocommerce_cart_totals() /mnt/c/g/gl/zoiosilva/loja/wp-includes/class-wp-hook.php:286
[28-Dec-2018 19:17:27 UTC] PHP 28. wc_get_template() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/includes/wc-template-functions.php:1911
[28-Dec-2018 19:17:27 UTC] PHP 29. include() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/includes/wc-core-functions.php:208
[28-Dec-2018 19:17:27 UTC] PHP 30. wc_cart_totals_shipping_html() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/templates/cart/cart-totals.php:48
[28-Dec-2018 19:17:27 UTC] PHP 31. WC_Countries->get_formatted_address() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/includes/wc-cart-functions.php:231
[28-Dec-2018 19:17:27 UTC] PHP 32. apply_filters() /mnt/c/g/gl/zoiosilva/loja/wp-content/plugins/woocommerce/includes/class-wc-countries.php:583
[28-Dec-2018 19:17:27 UTC] PHP 33. WP_Hook->apply_filters() /mnt/c/g/gl/zoiosilva/loja/wp-includes/plugin.php:203
[28-Dec-2018 19:17:27 UTC] PHP 34. Extra_Checkout_Fields_For_Brazil_Front_End->formatted_address_replacements() /mnt/c/g/gl/zoiosilva/loja/wp-includes/class-wp-hook.php:286
Possível solução
O buraco com certeza é mais em baixo, mas para poder continuar a execução sem disparar o erro, a solução mais rápida de se implementar seria modificar o método em questão para verificar se os itens do array existem antes de se tentar lê-los:
public function formatted_address_replacements( $replacements, $args ) {
$replacements['{number}'] = isset( $args['number'] ) ? $args['number'] : '';
$replacements['{neighborhood}'] = isset( $args['neighborhood'] ) ? $args['neighborhood'] : '';
return $replacements;
}
Mas o mais certo acredito que seria tentar entender o porquê dos argumentos estarem faltando no array. Eu andei olhando o código, e me parece que tem a ver com o objeto $packages
da classe WC_Shipping
.
Algum hook faltando, talvez?
Corrigido em #140 Pode fechar a issue.