Resolved
Reported for: WPML Multilingual CMS 4.6.9
Resolved in: WPML 4.6.10
Overview of the issue
When using Translate Everything mode in WPML, WordPress scheduled posts are not fully translated. Only the title is translated, but the body content, especially the page builder strings, are not sent for translation.
Workaround
Please, make sure of having a full backup of your site before proceeding.
This fix requires changes in two plugins, WPML and WPML String Translation.
1. Let’s start with the WPML:
- Open …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/App.php file.
- Look for line 36.
- Replace:
return defined( 'WPML_TM_VERSION' ) && ( is_admin() || ( defined( 'XMLRPC_REQUEST' ) && constant( 'XMLRPC_REQUEST' ) ) || wpml_is_rest_request() );
- With:
return defined( 'WPML_TM_VERSION' ) && ( is_admin() || ( defined( 'XMLRPC_REQUEST' ) && constant( 'XMLRPC_REQUEST' ) ) || wpml_is_rest_request() || (defined('DOING_CRON') && DOING_CRON) );
2. Now, let’s modify WPML String Translation:
- Open …/wp-content/plugins/wpml-string-translation/inc/package-translation/inc/wpml-package-translation.class.php file.
- Look for line 41.
- Replace:
if ( is_admin() || $this->is_doing_xmlrpc() || wpml_is_rest_request() ) {
- With:
if ( is_admin() || $this->is_doing_xmlrpc() || wpml_is_rest_request() || (defined('DOING_CRON') && DOING_CRON) ) {