woocommerce-extra-checkout-fields-for-brazil icon indicating copy to clipboard operation
woocommerce-extra-checkout-fields-for-brazil copied to clipboard

Erro no front end

Open rapgadelha opened this issue 5 years ago • 3 comments

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`

rapgadelha avatar Nov 19 '18 19:11 rapgadelha

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!

danielemiliano avatar Dec 27 '18 08:12 danielemiliano

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?

zoiosilva avatar Dec 28 '18 21:12 zoiosilva

Corrigido em #140 Pode fechar a issue.

zoiosilva avatar May 08 '19 22:05 zoiosilva