Hi! I recently added WPML on a site that uses the legacy views plugin. On one page, I'm now getting this notice:
Notice: Undefined index: id in C:\wamp64\www\wpdev\wp-content\plugins\wp-views\backend\Services\WPMLService.php on line 44
Deactivating the WPML plugins makes the error go away.
The weird thing is that this view is a copy of another one. The view I copied it from does not give the error. I can't see any difference in the settings - the only real difference is the content of the template. But if I swap in the template from the original view, it does not make the notice go away. I'm stumped. Help?
-Sarah
Hi Sarah, I'll be glad to help track down and resolve this PHP notice. Can you provide a bit more information so I can do a more in-depth investigation?
- Can you confirm your WPML and Toolset plugins are all up-to-date?
- Can you tell me if the View you metioned was duplicated before or after WPML was activated?
- Can you tell me the selected translation option for Content Templates in WPML > Settings > Multilingual Content Setup tab : Post Types translation panel?
- Can you tell me the selected translation option for Views in WPML > Settings > Multilingual Content Setup tab : Post Types translation panel?
I'll review your response and give you some additional feedback.
Thanks, Christian!
- We're using Toolset Types 3.4.5, Toolset Views 3.3.5, WPML Multilingual CMS 4.4.8, WPML String Translation 3.1.6, WPML Media 2.6.2, and WPML Translation Management 2.10.4 - I think those are all the latest versions.
- The View was duplicated before WPML was activated.
- The translation option for both Content Templates and Views is set to "Translatable - use translation if available or fallback to default language."
One more thing I'll mention is that we've just added the WPML plugins and don't have any actual translations loaded up yet, for any of it.
Let me know if there's more info that would be helpful--
Thanks!
Sarah
Okay thanks for that information, with that in mind I was able to recreate a very simple similar scenario. I created a View of the native Post type, added a Query filter based on post publication date, and inserted some basic information in the loop using Views shortcodes:
[wpv-post-link]<br />
[wpv-post-date]<br />
[wpv-post-author]<br />
Then I placed that View on a Page using the Block Editor and a View block. I visited that Page on the front-end of the site. All seems fine, the View shows one result with the proper content. Then I duplicated the View from the list of Views at Toolset > Views. Then I edited the same Page and chose the new View as the source in the View block. I saved the Page and visited it again on the front-end. Again, nothing obviously wrong. At that point I activated the 4 WPML plugins and did a basic installation setup. I turned on a couple of secondary languages and added a language switcher in the footer, but that was about all I did in the WPML configurations/setup. When I reloaded the Page containing the duplicate View, I was able to see the Undefined index: id notice appear several times in the logs. So the problem seems to be replicable, not an exception specific to your site or content.
Let me ask my 2nd tier team to take a look. I'll escalate to them and let you know what I find out.
Okay our second tier team has escalated this issue to the Views developers and they have acknowledged the problem. We will include a fix for this issue in an upcoming release of the software. Thank you for the report, we'll get this resolved as soon as possible. I think we can close this ticket since it's a relatively simple issue without any major functionality impacts or broken features.
Hello, our developers have provided a patch file that should resolve the notice:
https://drive.google.com/drive/folders/1YAIWqro2ptqcE3UMf_PolfyOSiZe9MMU?usp=sharing
To apply the patch, unzip it and upload the file it contains to replace the one in the same name, under /backend/Services/WPMLService.php on your Views or Blocks plugin installation.
Once you have replaced the file on the server, check the logs again to see if the notice is produced again. Please let me know the results.
Yep, that took care of it! Thanks for the quick fix.