WPML
Estado
Resuelto
Resuelto en
4.5.0
Plugin/tema relacionado
Houzez

Resumen del problema

El tema Houzez utiliza su propia función personalizada para llamar a las opciones del tema. Si el idioma predeterminado de su sitio no es inglés, esta función entrará en conflicto con WPML. El resultado es que las traducciones no se mostrarán en el front-end y se revertirán al idioma predeterminado en el panel de administración.

Solución alternativa

Antes de continuar, haga una copia de seguridad completa de su sitio.


  1. Abra /wpml-string-translation/inc/admin-texts/wpml-admin-texts.class.php.

  2. Busque la línea 198.

  3. Reemplace:
    	function icl_st_set_admin_options_filters() {
    		$option_names = $this->getOptionNames();
    
    		foreach ( $option_names as $option_key => $option ) {
    			if ( $this->is_blacklisted( $option_key ) ) {
    				unset( $option_names[ $option_key ] );
    				update_option( '_icl_admin_option_names', $option_names );
    			} elseif ( $option_key != 'theme' && $option_key != 'plugin' ) { // theme and plugin are an obsolete format before 3.2
    				add_filter( 'option_' . $option_key, array( $this, 'icl_st_translate_admin_string' ) );
    				add_action( 'update_option_' . $option_key, array( $this, 'on_update_original_value' ), 10, 3 );
    			}
    		}
    	}


  4. Por:
    	function icl_st_set_admin_options_filters() {
    		$option_names = $this->getOptionNames();
    
    		$isAdmin = is_admin() && ! wpml_is_ajax();
    
    		foreach ( $option_names as $option_key => $option ) {
    			if ( $this->is_blacklisted( $option_key ) ) {
    				unset( $option_names[ $option_key ] );
    				update_option( '_icl_admin_option_names', $option_names );
    			} elseif ( $option_key != 'theme' && $option_key != 'plugin' ) { // theme and plugin are an obsolete format before 3.2
    				/**
    				 * We don't want to translate admin strings in admin panel because it causes a lot of confusion
    				 * when a value is displayed inside the form input.
    				 **/
    				if ( ! $isAdmin ) {
    					add_filter( 'option_' . $option_key, array( $this, 'icl_st_translate_admin_string' ) );
    				}
    				add_action( 'update_option_' . $option_key, array( $this, 'on_update_original_value' ), 10, 3 );
    			}
    		}
    	}

Siguientes pasos

Este problema se resolverá en la versión 4.5 de WPML (finales de septiembre de 2021).

Todos los problemas conocidos →