Under PHP 8.0: Uncaught ValueError: Unknown format specifier “S” [SOLVED]
-
Hi there!
I’m aware that this free plugin will not be updated further, not even with bugs, so I’m offering a very simple fix for those who have been getting the same error.
In
/wp-content/plugins/leaflet-maps-marker/inc/class-leaflet-options.phpat about line 3573, there is the following line:'desc' => sprintf(__('If set to true, geolocation will start automatically on each map (backend and frontend).<br/>For infos on how to start geolocation automatically for selected maps only, please see <a href="%1$S" target="_blank">this changelog</a>.','lmm'), 'https://www.mapsmarker.com/v2.3p'),Now, I have no idea if this is a typo or something that used to work before, but, under PHP 8.0, this line throws a fatal error:
PHP Fatal error: Uncaught ValueError: Unknown format specifier "S" in /<Document Root>/wp-content/plugins/leaflet-maps-marker/inc/class-leaflet-options.php:3573Basically this comes from the
%1$Spassed tosprintf(), because$Sis not really a valid format specifier in PHP 8.0. Maybe it wasn’t in previous versions and possibly just threw a warning, not a fatal error.The fix is very simple, just place a lowercase
sinstead, i.e. change the argument to%1$s. Save the file, refresh your cache, and everything should be operational again 😉This is quite similar to https://ww.wp.xz.cn/support/topic/fatal-error-uncaught-valueerror-unknown-format-specifier/ (different plugin, same kind of fix for PHP 8)
The topic ‘Under PHP 8.0: Uncaught ValueError: Unknown format specifier “S” [SOLVED]’ is closed to new replies.