WPML
Estado
Esperando al autor
Plugin/tema relacionado
Ultimate Membership Pro
Etiquetas de temática
Compatibility

Resumen del problema

Al usar Ultimate Membership Pro con WPML, es posible que experimente un problema en el que los valores de las casillas de verificación utilizados en los perfiles de miembros y filtros de directorio no son traducibles, y evita que las etiquetas traducidas aparezcan correctamente en las páginas de directorio o formularios traducidos.

Solución alternativa

Asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.

1- Elimine las traducciones incorrectas

  • Vaya a WPML > Traducción de cadenas
  • Filtre por Traducción completa
  • Busque las cadenas bajo el nombre de campo [ihc_user_fields]
  • Seleccione todas estas cadenas y elimínelas; son cadenas de valores y no deben traducirse.

2- Modifique la plantilla del filtro del frontend

  • Abra: wp-content/plugins/indeed-membership-pro/public/views/listing_users-filter.php
  • Busque: la línea 167 bajo el caso ‘checkbox’
  • Reemplace:

<?php
foreach ($field['values'] as $v){
    if (is_array($get_value)){
        $checked = (in_array($v, $get_value)) ? 'checked' : '';
    } else {
        $checked = ($v==$get_value) ? 'checked' : '';
    }
    ?>
    <div class="iump-form-checkbox">
        <input type="checkbox" name="<?php echo esc_attr($field['name']);?>[]" value="<?php echo esc_attr(ihc_correct_text($v));?>" <?php echo esc_attr($checked);?> />
        <?php echo esc_html(ihc_correct_text($v));?>
    </div>
    <?php
}
?>

Por:

<?php
foreach ($field['values'] as $v){
    if (is_array($get_value)){
        $checked = (in_array($v, $get_value)) ? 'checked' : '';
    } else {
        $checked = ($v==$get_value) ? 'checked' : '';
    }

    // WPML: Separate value and label
    $wpml_original_value = ihc_correct_text($v);
    $wpml_string_name = 'checkbox_option_' . $field['name']; 
    do_action( 'wpml_register_single_string', 'ihc', $wpml_string_name . '_' . sanitize_title($v), $wpml_original_value );
    $wpml_translated_label = apply_filters( 'wpml_translate_single_string', $wpml_original_value, 'ihc', $wpml_string_name . '_' . sanitize_title($v) );
?>
    <div class="iump-form-checkbox">
        <input type="checkbox" name="<?php echo esc_attr($field['name']);?>[]" value="<?php echo esc_attr(ihc_correct_text($v));?>" <?php echo esc_attr($checked);?> />
        <?php echo esc_html($wpml_translated_label); ?>
    </div>
<?php
}
?>

3- Corrija las etiquetas de las casillas de verificación del formulario de registro

  • Abra: wp-content/plugins/indeed-membership-pro/classes/IndeedForms.php
  • Busque: la función de la casilla de verificación (alrededor de la línea 129)
  • Reemplace:

$output .= ihc_correct_text( $v );
Por:
$output .= __( ihc_correct_text( $v ), 'ihc' );</ul>

4- Active el registro de cadenas

  • Visite la página del directorio en el frontend para cargar las cadenas nuevas.
  • Vaya a WPML > Traducción de cadenas y traduzca solo las cadenas recién registradas bajo el dominio «ihc» (con nombres como checkbox_option_name).

Todos los problemas conocidos →