Home›Support›English Support›[Resolved] Fatal error caused by TEC WPML integration and deprecated dynamic property
[Resolved] Fatal error caused by TEC WPML integration and deprecated dynamic property
This thread is resolved. Here is a description of the problem and solution.
Problem: The client is experiencing two issues with WPML integration in Events Calendar Pro and The Events Calendar: 1. A fatal error in PHP 8.2 due to an unknown format specifier "%n" in a translation string, causing the Day View to crash. 2. Deprecated code in Events Calendar Pro's WPML integration, leading to warnings about the creation of dynamic properties being deprecated.
Solution: For the fatal error, we recommend checking the translation string in WPML > String Translation. Search for "Jump to the" and locate the string "Jump to the %1$snext upcoming %2$s%3$s." Ensure the PHP placeholders in the translation are correct. The correct format should be "Skoči na %1$snaslednji prihajajoči %2$s%3$s." Adjusting this should resolve the error. For the deprecated code issue, it is advisable to contact The Events Calendar team to report the problem. We will also notify our compatibility team to reach out to them. Client reports can often accelerate the resolution process.
Please note that this solution might be outdated or not applicable to your specific case. If these steps do not resolve your issue, we highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If the problem persists, please open a new support ticket.
This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
We are experiencing two serious problems related to the WPML integration inside Events Calendar Pro and The Events Calendar.
1. Fatal error triggered by The Events Calendar WPML-integrated code
When loading the Day View, the site crashes with:
PHP Fatal error: Uncaught ValueError: Unknown format specifier "n"
in the-events-calendar/src/Tribe/Views/V2/Views/Traits/With_Fast_Forward_Link.php:73
This happens inside a string passed through sprintf(). It appears that a translation string (likely Slovenian) contains an invalid %n placeholder, which immediately breaks PHP 8.2.
Because Events Calendar relies on WPML for translations, this issue might be coming from a translated string that WPML loads.
This crash makes the Day View completely unusable on a production hotel website.
2. Deprecated WPML integration code inside Events Calendar Pro
We also get constant warnings:
Creation of dynamic property Tribe__Events__Pro__Integrations__WPML__Event_Listener::$wpml is deprecated
This means the integration used by Events Calendar Pro is not PHP 8.2 compliant.
What we need from WPML:
• Confirm whether the invalid %n placeholder originates from WPML translation files
• Provide a corrected translation string or guidance on overriding it
• Confirm if WPML maintains the Event_Listener integration file or if this must be escalated to The Events Calendar team
• Provide a temporary workaround to stop the Day View from crashing while waiting for a fix
We have valid licenses for both plugins, and this is happening on a live production website.
Regarding the fatal error. Please go to WPML > String Translation and search for:
"Jump to the"
The string with the issue seems to be "Jump to the %1$snext upcoming %2$s%3$s."
Fix the PHP placeholder in the translation there, and this should fix the error.
The translation should be something like this:
Skoči na %1$snaslednji prihajajoči %2$s%3$s.
but probably there is a missing number or symbol there.
Regarding the deprecation notice, it's on the TEC side. I suggest you let them know about the issue. On my end, I'll mention this to our compatibility team so they reach them too. But, in our experience, clients request are always more effective 🙂
Let me know how it goes with the fatal error, please.
1. We fixed the problematic strings and the fatal error is gone.
2. Regarding TEC: they are not responding to our tickets at all. If you have a direct line or any internal channel to escalate this, that would help a lot because we’re stuck on their side.
3. There is one more issue we keep seeing on most admin pages:
load-scripts.php?c=1&load%5Bchunk_0%5D=jquery-core,jquery-migrate,wp-hooks&ver=6.9:5
JQMIGRATE: Migrate is installed, version 3.4.1
dashboard.js?ver=485900:2
GET hidden link 404 (Not Found)
It throws a 404 on the localization file and keeps repeating in the console. Can you check if this file is missing on your side or if something needs to be updated in the plugin?
4. We are also hitting a new fatal error related to Monolog inside Event Tickets.
PHP Fatal error: Uncaught Error: Interface "Monolog\ResettableInterface" not found in
/wp-content/plugins/event-tickets/common/vendor/monolog/monolog/src/Monolog/Logger.php:28
Stack trace:
#0 /wp-content/plugins/sitepress-multilingual-cms/vendor/composer/ClassLoader.php(571): include()
#1 /wp-content/plugins/sitepress-multilingual-cms/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile()
#2 /wp-content/plugins/event-tickets/common/src/Tribe/Log/Service_Provider.php(161): Composer\Autoload\ClassLoader->loadClass()
...
The error happens when Logger.php is being loaded and the required interface Monolog\ResettableInterface is not available. From the stack trace it’s clear that multiple autoloaders are involved during the load sequence, so this might be a version mismatch or a missing dependency in the Tickets plugin.
Can you check whether this is a known compatibility issue on your side or something that needs to be escalated to TEC? At the moment it results in a hard fatal inside the admin.
Let me know how we can proceed.
New threads created by Otto and linked to this one are listed below: