Skip Navigation

Resolved

Reported for: WPML Multilingual CMS 4.6.9

Resolved in: WPML 4.6.10

Topic Tags: Bug

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) ) {