- Stato
- In attesa dell’autore
- Plugin/tema correlato
- Ultimate Membership Pro
- Tag dell’argomento
- Compatibility
Panoramica del problema
Quando usi Ultimate Membership Pro con WPML, potresti riscontrare un problema per cui i valori delle caselle di controllo utilizzati nei profili dei membri e nei filtri delle directory non sono traducibili. Ciò impedisce alle etichette tradotte di apparire correttamente nelle pagine delle directory o nei moduli tradotti.
Soluzione alternativa
Assicurati di avere un backup completo del tuo sito prima di procedere.
1- Elimina le traduzioni errate
- Vai su WPML > Traduzione stringhe
- Filtra per La traduzione è completata
- Cerca le stringhe sotto il nome del campo [ihc_user_fields]
- Seleziona tutte queste stringhe ed eliminale: sono stringhe di valore e non dovrebbero essere tradotte.
2- Modifica il template del filtro del frontend
- Apri: wp-content/plugins/indeed-membership-pro/public/views/listing_users-filter.php
- Cerca: la riga 167 sotto il caso “checkbox”
Sostituisci:
<?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
}
?>
Con:
<?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- Correggi le etichette delle caselle di controllo del modulo di registrazione
- Apri: wp-content/plugins/indeed-membership-pro/classes/IndeedForms.php
- Cerca: la funzione checkbox (intorno alla riga 129)
Sostituisci:
$output .= ihc_correct_text( $v );Con:
$output .= __( ihc_correct_text( $v ), 'ihc' );</ul>
4- Attiva la registrazione delle stringhe
- Visita la pagina della directory sul frontend per caricare le nuove stringhe.
- Vai su WPML > Traduzione stringhe e traduci solo le stringhe appena registrate nel dominio “ihc” (denominate come checkbox_option_name).