- Status
- Aguardando o autor
- Plugin/tema relacionado
- Ultimate Membership Pro
- Tags de tópico
- Compatibility
Visão geral do problema
Ao usar o Ultimate Membership Pro com o WPML, você pode enfrentar um problema em que os valores das caixas de seleção usados nos perfis de membros e nos filtros de diretório não são traduzíveis. e impede que os rótulos traduzidos apareçam corretamente nas páginas de diretório ou formulários traduzidos.
Solução alternativa
Certifique-se de ter um backup completo do seu site antes de prosseguir.
1- Exclua as traduções incorretas
- Vá para WPML > Tradução de Strings
- Filtre por Completo
- Pesquise por strings sob o nome do campo [ihc_user_fields]
- Selecione todas essas strings e exclua-as – elas são strings de valor e não devem ser traduzidas.
2- Modifique o modelo de filtro do frontend
- Abra: wp-content/plugins/indeed-membership-pro/public/views/listing_users-filter.php
- Procure por: Linha 167 sob o case ‘checkbox’
Substitua:
<?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 os rótulos da caixa de seleção do formulário de registro
- Abra: wp-content/plugins/indeed-membership-pro/classes/IndeedForms.php
- Procure por: A função checkbox (por volta da linha 129)
Substitua:
$output .= ihc_correct_text( $v );Por:
$output .= __( ihc_correct_text( $v ), 'ihc' );</ul>
4- Acione o registro de strings
- Visite a página do diretório no frontend para carregar novas strings.
- Vá para WPML > Tradução de Strings e traduza apenas as strings recém-registradas sob o domínio “ihc” (nomeadas como checkbox_option_name).