WPML
상태
개발자 대기 중
관련 플러그인/테마
Ultimate Membership Pro
주제 태그
Compatibility

문제 개요

WPML과 함께 Ultimate Membership Pro 를 사용할 때, 회원 프로필 및 디렉터리 필터에 사용되는 확인란 값이 번역 불가능한 문제가 발생할 수 있습니다. 그리고 번역된 디렉터리 페이지나 양식에서 번역된 레이블이 올바르게 표시되지 않습니다.

임시 해결 방법

계속 진행하기 전에 사이트를 전체 백업하세요.

1- 잘못된 번역 삭제

  • WPML > 문자열 번역으로 이동하세요.
  • 번역 완료 상태로 필터링하세요.
  • 필드 이름 [ihc_user_fields] 아래의 문자열을 검색하세요.
  • 이러한 문자열을 모두 선택하고 삭제하세요. 이는 값 문자열이며 번역해서는 안 됩니다.

2- 프런트엔드 필터 템플릿 수정

  • 열기: wp-content/plugins/indeed-membership-pro/public/views/listing_users-filter.php
  • 찾기: ‘checkbox’ 케이스 아래의 167번째 줄
  • 변경 전:

<?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
}
?>

변경 후:

<?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- 등록 양식 체크박스 레이블 수정

  • 열기: wp-content/plugins/indeed-membership-pro/classes/IndeedForms.php
  • 찾기: 체크박스 함수(129번째 줄 부근)
  • 변경 전:

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

4- 문자열 등록 트리거

  • 프런트엔드에서 디렉터리 페이지를 방문하여 새 문자열을 로드하세요.
  • WPML > 문자열 번역으로 이동하여 “ihc” 도메인 아래에 새로 등록된 문자열(checkbox_option_name과 같은 이름)만 번역하세요.

알려진 모든 문제 →