Description
Description:
Visualizer runs fine on PHP 8+, however, if you also have the Neve theme activated - a fatal error occurs when creating a new chart.
Error
[12-Apr-2021 08:36:33 UTC] PHP Warning: Private methods cannot be final as they are never overridden by other classes in /patbrush/wordpress/wp-content/plugins/visualizer/classes/Visualizer/Source.php on line 338
[12-Apr-2021 08:36:33 UTC] PHP Stack trace:
[12-Apr-2021 08:36:33 UTC] PHP 1. {main}() /patbrush/wordpress/wp-admin/admin-ajax.php:0
[12-Apr-2021 08:36:33 UTC] PHP 2. do_action($tag = 'wp_ajax_visualizer-create-chart') /patbrush/wordpress/wp-admin/admin-ajax.php:187
[12-Apr-2021 08:36:33 UTC] PHP 3. WP_Hook->do_action($args = [0 => '']) /patbrush/wordpress/wp-includes/plugin.php:484
[12-Apr-2021 08:36:33 UTC] PHP 4. WP_Hook->apply_filters($value = '', $args = [0 => '']) /patbrush/wordpress/wp-includes/class-wp-hook.php:316
[12-Apr-2021 08:36:33 UTC] PHP 5. Visualizer_Module_Chart->renderChartPages('') /patbrush/wordpress/wp-includes/class-wp-hook.php:292
[12-Apr-2021 08:36:33 UTC] PHP 6. visualizer_autoloader($class = 'Visualizer_Source_Csv') /patbrush/wordpress/wp-content/plugins/visualizer/classes/Visualizer/Module/Chart.php:494
[12-Apr-2021 08:36:33 UTC] PHP 7. require() /patbrush/wordpress/wp-content/plugins/visualizer/index.php:52
[12-Apr-2021 08:36:33 UTC] PHP 8. visualizer_autoloader($class = 'Visualizer_Source') /patbrush/wordpress/wp-content/plugins/visualizer/classes/Visualizer/Source/Csv.php:30
[12-Apr-2021 08:36:33 UTC] PHP Fatal error: Uncaught TypeError: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given in /patbrush/wordpress/wp-content/themes/neve/inc/admin/metabox/manager.php:166
Stack trace:
#0 /patbrush/wordpress/wp-content/themes/neve/inc/admin/metabox/manager.php(166): method_exists()
#1 /patbrush/wordpress/wp-content/themes/neve/inc/admin/metabox/manager.php(226): Neve\Admin\Metabox\Manager->is_gutenberg_active()
#2 /patbrush/wordpress/wp-includes/class-wp-hook.php(292): Neve\Admin\Metabox\Manager->enqueue()
#3 /patbrush/wordpress/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters()
#4 /patbrush/wordpress/wp-includes/plugin.php(484): WP_Hook->do_action()
#5 /patbrush/wordpress/wp-admin/includes/media.php(542): do_action()
#6 /patbrush/wordpress/wp-content/plugins/visualizer/classes/Visualizer/Module/Chart.php(875): wp_iframe()
#7 /patbrush/wordpress/wp-content/plugins/visualizer/classes/Visualizer/Module/Chart.php(593): Visualizer_Module_Chart->_handleTypesPage()
#8 /patbrush/wordpress/wp-includes/class-wp-hook.php(292): Visualizer_Module_Chart->renderChartPages()
#9 /patbrush/wordpress/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters()
#10 /patbrush/wordpress/wp-includes/plugin.php(484): WP_Hook->do_action()
#11 /patbrush/wordpress/wp-admin/admin-ajax.php(187): do_action()
#12 {main}
thrown in /patbrush/wordpress/wp-content/themes/neve/inc/admin/metabox/manager.php on line 166
How to reproduce:
- Install and activate Visualizer on a server running PHP 8+
- Install and activated Neve theme
- Try to create a new chart - a fatal error occurs
Expected behaviour:
Visualizer to be compatible with Neve theme.
Current behaviour:
Visualizer is not compatible with Neve theme on PHP 8+.
Reference:
Technical info
- WordPress version: 5.7
- Visualizer version: 3.4.11
- Neve theme version: 2.10.4
- PHP Version: 8.0.3
Reported here - https://secure.helpscout.net/conversation/1470106600/273167/