This thread is resolved. Here is a description of the problem and solution.
Problem: Running Interconnect It Search - Replace DB (SRDB) on database shows errors when trying to manipulate the wpml_translation_services entry in the wp_options table. The entry looks corrupted when looked at directly.
This issue could happen with any database manipulation involving a corrupted serialized database object, or a search and replace tool that does not handle it properly.
Solution: - Delete the entry for wpml_translation_services in the wp_options table - Run SRDB or other database manipulation tool - Go to WPML -> Support - Click on the link for Troubleshooting - Click on Refresh Translation Services
Relevant Documentation: https://github.com/interconnectit/Search-Replace-DB/issues/165#issuecomment-498375329
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.
|October 2, 2019 at 2:49 pm #4681681|
I am trying to:
I am using a DB search replace tool that has worked great for us for many years (hidden link). I have recently upgraded to PHP7.2 and had to use the latest version of that tool (I had to do some minor bug fixes to get it working properly, see PRs for the tool). This new tools works much better and is very good. The only issue I have is that this tool has an issue with the way the data is stored in the options table key: `wpml_translation_services`
This is causing: `Class __PHP_Incomplete_Class has no unserializer`. While I can confirm this is only happening on this single option, I cannot confirm exactly why this is causing it. I am only reporting this to see if this option is even necessary. We do not use any translation services as we do this all in-house. To me, it's better to use this tool and have that entry corrupted than to not be able to run this tool.
Am I correct to assume that is just a third-party services list that will not affect the system if it's corrupted? Please advise.
Link to a page where the issue can be seen:
This is on a local environment but happens on a public one too if I were to run the tool there.
We are currently in the process of updating WPML and WooCommerce but the version of the system is not the issue here. It's the data stored in the options table `wpml_translation_services` key.
Original Value (seems corrupt):
|October 3, 2019 at 9:27 am #4686303|
Languages: English (English )
Timezone: Asia/Karachi (GMT+05:00)
Thank you for reaching out to WPML Support and your detailed analysis of the problem!
I agree that the option looks corrupt. Other SRDB users have also noticed this issue and were able to resolve it by simply deleting that option in the wp_options table. Issues like this can happen during site migrations or when updating WP, your theme, or WPML plugins. I just checked a fresh version of WPML and that option is valid, so this is not a bug in WPML.
You might find this link interesting:
PLEASE make sure you have a backup of your database before trying any of the troubleshooting steps below!
Since it is simply a list of available translation services, and you do not seem to be using a translation service, I think deleting that option should work for you without any issues. You can also refresh that option after your search / replace.
Before doing that however, please try to follow these steps to see if we can avoid deleting the option:
This should fix the corrupt data in your database and you can try a Dry Run in SRDB to confirm.
If this doesn't work, then try deleting that option directly in the database and running SRDB again.
It should complete this time (although apparently Yoast Sitemaps can also cause this issue) and you can try clicking the Refresh Translation Services button again to get the list of translation services back.
Do let me know if you were able to resolve your issue, and I'll be happy to assist you further if necessary.
|October 7, 2019 at 5:56 pm #4709901|
I had to Refresh Translation Services then run the SRDB then that gave me the same corrupt state as my original post, I was then able to run Refresh Translation Services again to fix the data. This is good enough for me.
My issue is resolved now. Thank you!