- 상태
- 개발자 대기 중
- 관련 플러그인/테마
- 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과 같은 이름)만 번역하세요.