When runnig the wizard of wpDiscuz, I get a fatal error as soon as I click next. The strange thing is, that when I do the same thing on my staging website, the plugin works.
The Debug log says:
Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /var/www/html/wordpress/wp-content/plugins/wpdiscuz/options/class.WpdiscuzOptions.php:1355 Stack trace: #0 /var/www/html/wordpress/wp-includes/class-wp-hook.php(324): WpdiscuzOptions->saveAndResetOptionsAndPhrases() #1 /var/www/html/wordpress/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #2 /var/www/html/wordpress/wp-includes/plugin.php(517): WP_Hook->do_action() #3 /var/www/html/wordpress/wp-admin/admin.php(176): do_action() #4 {main} thrown in /var/www/html/wordpress/wp-content/plugins/wpdiscuz/options/class.WpdiscuzOptions.php on line 1355
Meanwhile I tried to deactivate all other Plugins. But no changes. Still the same error.
I use WordPress Version 6.8.2 ans wpDiscus Version 7.6.33
It looks like the error is coming from WpdiscuzOptions.php when the wizard tries to save or reset options. The Cannot access offset of type string on string usually means the function expects an array but is receiving a string instead.
A couple of things you can try:
- Clear plugin cache / options: Sometimes wpDiscuz stores options in the database that can get corrupted. Try resetting options (from staging if possible) or clearing the plugin’s cache.
- Check PHP version: This error often shows up on PHP 8.x, as it’s stricter with array/string offsets. If your staging site is on PHP 7.4 and production on PHP 8+, that would explain why it only breaks on live.
- Reinstall wpDiscuz: Download the latest version from WordPress.org, delete (don’t just deactivate) the plugin folder on your live site, and reinstall fresh. Your comments should stay intact since they’re stored in the database.
- Check for conflicts: Temporarily disable other plugins and switch to a default theme to rule out conflicts.
If none of the above helps, you may want to share your PHP version, WordPress version, and wpDiscuz version so the devs/community can better reproduce the issue.