Skip to content Skip to sidebar

This thread is resolved. Here is a description of the problem and solution.

Problem:
In a WordPress Multisite environment with subdirectories, WPML is installed and network-activated, but the WPML database tables (e.g., icl_strings) are not being created for sub-sites, leading to database errors indicating missing tables.
Solution:
If you're experiencing this issue, we recommend the following steps:
1. Go to WPML → Settings → Translation Editor.
2. Select Advanced Translation Editor.
3. Save the settings.
After enabling the Advanced Translation Editor, the necessary database tables should be created, resolving the database errors.

Please note that this solution might be outdated or not applicable to your specific case. If the problem persists, 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 necessary, please open a new support ticket for further assistance.

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.

Tagged: 

This topic contains 13 replies, has 0 voices.

Last updated by Andrey 1 month, 2 weeks ago.

Assisted by: Andrey.

Author Posts
May 25, 2026 at 6:26 am #18057283

danielH-169

I have WordPress Multisite with subdirectories. WPML is installed and network-activated but the WPML database tables (icl_strings etc.) are not being created for sub-sites. I get database errors like 'Table wp4p_15_icl_strings doesn't exist'. How do I fix this?

From debug log:
[25-May-2026 01:14:10 UTC] PHP Deprecated: Creation of dynamic property WC_Product_Variable::$filter is deprecated in /home/customer/www/paulalindgren.com/public_html/wp-includes/post.php on line 2931
[25-May-2026 03:31:47 UTC] PHP Deprecated: Creation of dynamic property WC_Product_Variable::$ID is deprecated in /home/customer/www/paulalindgren.com/public_html/wp-includes/post.php on line 2926
[25-May-2026 03:31:47 UTC] PHP Deprecated: Creation of dynamic property WC_Product_Variable::$filter is deprecated in /home/customer/www/paulalindgren.com/public_html/wp-includes/post.php on line 2931
[25-May-2026 03:31:48 UTC] PHP Deprecated: Creation of dynamic property WC_Product_Variable::$ID is deprecated in /home/customer/www/paulalindgren.com/public_html/wp-includes/post.php on line 2926
[25-May-2026 03:31:48 UTC] PHP Deprecated: Creation of dynamic property WC_Product_Variable::$filter is deprecated in /home/customer/www/paulalindgren.com/public_html/wp-includes/post.php on line 2931
[25-May-2026 04:02:37 UTC] PHP Deprecated: Creation of dynamic property WC_Product_Simple::$ID is deprecated in /home/customer/www/paulalindgren.com/public_html/wp-includes/post.php on line 2926
[25-May-2026 04:02:37 UTC] PHP Deprecated: Creation of dynamic property WC_Product_Simple::$filter is deprecated in /home/customer/www/paulalindgren.com/public_html/wp-includes/post.php on line 2931
[25-May-2026 04:02:37 UTC] PHP Deprecated: Creation of dynamic property WC_Product_Simple::$ID is deprecated in /home/customer/www/paulalindgren.com/public_html/wp-includes/post.php on line 2926
[25-May-2026 04:02:37 UTC] PHP Deprecated: Creation of dynamic property WC_Product_Simple::$filter is deprecated in /home/customer/www/paulalindgren.com/public_html/wp-includes/post.php on line 2931
[25-May-2026 05:59:35 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_17_icl_strings' doesn't exist for query SELECT language FROM wp4p_17_icl_strings WHERE context='WordPress' AND name='URL slug: product' made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_WC_Strings->get_string_language, apply_filters('wpml_get_string_language'), WP_Hook->apply_filters, WPML_String_Translation->get_string_language_filter
[25-May-2026 05:59:35 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_16_icl_strings' doesn't exist for query SELECT language FROM wp4p_16_icl_strings WHERE context='WordPress' AND name='URL slug: product' made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_WC_Strings->get_string_language, apply_filters('wpml_get_string_language'), WP_Hook->apply_filters, WPML_String_Translation->get_string_language_filter
[25-May-2026 05:59:35 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_16_icl_strings' doesn't exist for query SELECT id, value, language, context, name
FROM wp4p_16_icl_strings
WHERE name = 'URL slug: product'
AND (context = 'default' OR context = 'WordPress') made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_Url_Translation->get_translated_product_base_by_lang, apply_filters('wpml_get_translated_slug'), WP_Hook->apply_filters, WPML_ST_Slug_Translation_API->get_translated_slug_filter, WPML_Slug_Translation_Records->get_slug
[25-May-2026 05:59:35 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_17_icl_strings' doesn't exist for query SELECT id, value, language, context, name
FROM wp4p_17_icl_strings
WHERE name = 'URL slug: product'
AND (context = 'default' OR context = 'WordPress') made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_Url_Translation->get_translated_product_base_by_lang, apply_filters('wpml_get_translated_slug'), WP_Hook->apply_filters, WPML_ST_Slug_Translation_API->get_translated_slug_filter, WPML_Slug_Translation_Records->get_slug
[25-May-2026 05:59:35 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_15_icl_strings' doesn't exist for query SELECT language FROM wp4p_15_icl_strings WHERE context='WordPress' AND name='URL slug: product' made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_WC_Strings->get_string_language, apply_filters('wpml_get_string_language'), WP_Hook->apply_filters, WPML_String_Translation->get_string_language_filter
[25-May-2026 05:59:35 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_15_icl_strings' doesn't exist for query SELECT id, value, language, context, name
FROM wp4p_15_icl_strings
WHERE name = 'URL slug: product'
AND (context = 'default' OR context = 'WordPress') made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_Url_Translation->get_translated_product_base_by_lang, apply_filters('wpml_get_translated_slug'), WP_Hook->apply_filters, WPML_ST_Slug_Translation_API->get_translated_slug_filter, WPML_Slug_Translation_Records->get_slug
[25-May-2026 06:16:58 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_16_icl_strings' doesn't exist for query SELECT language FROM wp4p_16_icl_strings WHERE context='WordPress' AND name='URL slug: product' made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_WC_Strings->get_string_language, apply_filters('wpml_get_string_language'), WP_Hook->apply_filters, WPML_String_Translation->get_string_language_filter
[25-May-2026 06:16:58 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_17_icl_strings' doesn't exist for query SELECT language FROM wp4p_17_icl_strings WHERE context='WordPress' AND name='URL slug: product' made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_WC_Strings->get_string_language, apply_filters('wpml_get_string_language'), WP_Hook->apply_filters, WPML_String_Translation->get_string_language_filter
[25-May-2026 06:16:58 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_16_icl_strings' doesn't exist for query SELECT id, value, language, context, name
FROM wp4p_16_icl_strings
WHERE name = 'URL slug: product'
AND (context = 'default' OR context = 'WordPress') made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_Url_Translation->get_translated_product_base_by_lang, apply_filters('wpml_get_translated_slug'), WP_Hook->apply_filters, WPML_ST_Slug_Translation_API->get_translated_slug_filter, WPML_Slug_Translation_Records->get_slug
[25-May-2026 06:16:58 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_17_icl_strings' doesn't exist for query SELECT id, value, language, context, name
FROM wp4p_17_icl_strings
WHERE name = 'URL slug: product'
AND (context = 'default' OR context = 'WordPress') made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_Url_Translation->get_translated_product_base_by_lang, apply_filters('wpml_get_translated_slug'), WP_Hook->apply_filters, WPML_ST_Slug_Translation_API->get_translated_slug_filter, WPML_Slug_Translation_Records->get_slug
[25-May-2026 06:16:58 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_15_icl_strings' doesn't exist for query SELECT language FROM wp4p_15_icl_strings WHERE context='WordPress' AND name='URL slug: product' made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_WC_Strings->get_string_language, apply_filters('wpml_get_string_language'), WP_Hook->apply_filters, WPML_String_Translation->get_string_language_filter
[25-May-2026 06:16:58 UTC] WordPress database error Table 'pdgoldsm_wp914.wp4p_15_icl_strings' doesn't exist for query SELECT id, value, language, context, name
FROM wp4p_15_icl_strings
WHERE name = 'URL slug: product'
AND (context = 'default' OR context = 'WordPress') made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array('parse_request'), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, WC_REST_Network_Orders_V2_Controller->network_orders, WC_REST_CRUD_Controller->get_items, WC_REST_Orders_V2_Controller->prepare_objects_query, WC_REST_CRUD_Controller->prepare_objects_query, WC_REST_Posts_Controller->prepare_items_query, WC_REST_Posts_Controller->get_allowed_query_vars, apply_filters('query_vars'), WP_Hook->apply_filters, WCML_Url_Translation->translate_query_var_for_product, WCML_Url_Translation->get_translated_product_base_by_lang, apply_filters('wpml_get_translated_slug'), WP_Hook->apply_filters, WPML_ST_Slug_Translation_API->get_translated_slug_filter, WPML_Slug_Translation_Records->get_slug

May 26, 2026 at 4:04 pm #18061680

Andrey
WPML Supporter since 06/2013

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+03:00)

Thank you for contacting WPML support.

Please try the following workaround to resolve the issue:
https://wpml.org/errata/missing-_icl_strings-_icl_string_translations-data-tables/

Before making any changes, please ensure that you back up your database.

May 27, 2026 at 2:47 pm #18064242

danielH-169

I have WordPress Multisite with subdirectories on paulalindgren.com. I have four sub-sites: /se-new (blog_id 14), /eu-new (blog_id 15), /int-new (blog_id 16), /gb-new (blog_id 17). WPML is network-activated but does not appear in the admin menu on any sub-site. I manually created wp4p_14_icl_strings and wp4p_14_icl_string_translations tables via SQL. I also inserted wpml_setup_complete = 1 into wp4p_14_options. WPML still doesn't appear in the /se-new wp-admin menu. Can you help me activate WPML correctly on a Multisite sub-site?

May 27, 2026 at 7:27 pm #18064770

Andrey
WPML Supporter since 06/2013

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+03:00)

Thank you for your feedback.

If you do not yet have any translations on the site, please try the following:

1. Go to Network Admin → WPML
2. Reset WPML for one of the sites
3. Then try Activate WPML again for that site in Network Admin → WPML

If the issue still persists, please try the following additional steps:

1. Reset WPML on all sites in the network
2. Deactivate WPML from the Network Admin
3. Go to your database and remove all tables that start with _icl
4. After that, try activating WPML again

Before proceeding, please make sure to back up your database.

If this still does not resolve the issue, I will need to request temporary access (wp-admin and FTP) to your site—preferably a staging or test site where the problem can be reproduced—in order to investigate further. When you reply, you will find the required fields below the comment area. The information you provide there will be private and accessible only to you and me.

May 27, 2026 at 8:19 pm #18064812

danielH-169

It did not work sadly.

I have WordPress Multisite with subdirectories on paulalindgren.com. I have four sub-sites: /se-new (blog_id 14), /eu-new (blog_id 15), /int-new (blog_id 16), /gb-new (blog_id 17). WPML is network-activated but does not appear in the admin menu on any sub-site. I manually created wp4p_14_icl_strings and wp4p_14_icl_string_translations tables via SQL. I also inserted wpml_setup_complete = 1 into wp4p_14_options. WPML still doesn't appear in the /se-new wp-admin menu. Can you help me activate WPML correctly on a Multisite sub-site?

May 27, 2026 at 8:56 pm #18064834

danielH-169

I have registered a site key for hidden link (key: db645e91ca) but when I try to register it in WordPress I get 'Site key not matching'. The site is a WordPress Multisite sub-site with subdirectory. The main domain paulalindgren.com is already registered and active. How do I register the sub-site key?

If you need access I'm happy to grant you that.

May 27, 2026 at 9:22 pm #18064853

Andrey
WPML Supporter since 06/2013

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+03:00)

You do not need to register each sub-site separately. Only the main site needs to be registered, and the sub-sites will be registered automatically.

Please refer to the following documentation for more details:
https://wpml.org/documentation/support/multisite-support/#register-wpml-multisite

May 27, 2026 at 9:44 pm #18064884

danielH-169

I'm sorry. I'm trying to follow the tutorial as best as I can.
The path that you want me to follow according to the instruction is not there.

Do i interpret the instruction correctly?

1. On the sub site, go to "translation panel" and "payments and maintenance". Copy the migration code.
2. On the main site, go to the same place and enter the migration code?

Problem is, that on the main page there is no "payments and maintenance" tab.

Also. There is no "automatic translation engine" field on any of my sites under translation panel. However I find it under "settings" but there is no field to add the code.

thank you

May 27, 2026 at 10:09 pm #18064922

danielH-169

Im trying really hard to follow the instructions. However there is no where to paste the migration key on the main installation. According to the instruction I would find it at the same spot, but it's not there.
Did you move it after the tutorial was made, or is there a bug?

Skärmavbild 2026-05-28 kl. 00.08.47.png
May 28, 2026 at 11:27 am #18066315

Andrey
WPML Supporter since 06/2013

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+03:00)

I’m sorry that you ran into trouble with this. I assume that the original issue has already been resolved.

Do I understand correctly that you are now trying to activate Pay As You Go for automatic translation?

To investigate this further, I will need temporary access (wp-admin and FTP) to your site—preferably a staging or test site where the issue can be reproduced. When you reply, you will find the required fields below the comment area. The information you provide there will be private and accessible only to you and me.

May 29, 2026 at 8:57 am #18068777

Andrey
WPML Supporter since 06/2013

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+03:00)

Then, you are doing everything correctly by trying to use a migration code to share its credits.

Unfortunately, I am not able to log in to your site. I am getting "The password you entered for the username **** is incorrect". Can you please check this?

The following message is private.

May 30, 2026 at 9:24 am #18070794

danielH-169

Please let me know if the credentials worked. 🙏

June 2, 2026 at 12:52 pm #18075680

Andrey
WPML Supporter since 06/2013

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+03:00)

Thank you. The new credentials work. I will look into it and let you know as soon as I have more information.

June 2, 2026 at 1:40 pm #18075856

Andrey
WPML Supporter since 06/2013

Languages: English (English ) Russian (Русский )

Timezone: Europe/Kyiv (GMT+03:00)

I’ve looked into this, and your steps were correct. The “Payments & Maintenance” tab was indeed missing.

The reason was that no Translation Editor had been selected under WPML → Settings → Translation Editor.

To make the tab available again, I did the following:

1. Go to WPML → Settings → Translation Editor
2. Select Advanced Translation Editor
3. Save the settings

After enabling the Advanced Translation Editor, the “Payments & Maintenance” tab became available again.

Translation-Dashboard-‹-Paula-Lindgren-Hunting-Jewelry-—-WordPress.png