WPML
Trạng thái
Đang chờ nhà phát triển
Plugin/giao diện liên quan
Ultimate Membership Pro
Thẻ chủ đề
Compatibility

Tổng quan về lỗi

Khi sử dụng Ultimate Membership Pro với WPML, bạn có thể gặp phải sự cố trong đó các giá trị checkbox được sử dụng trong hồ sơ thành viên và bộ lọc thư mục không thể dịch được. Sự cố này ngăn các nhãn đã dịch hiển thị chính xác trên các trang thư mục hoặc biểu mẫu đã dịch.

Giải pháp tạm thời

Vui lòng đảm bảo bạn đã sao lưu toàn bộ trang web của mình trước khi tiếp tục.

1- Xóa các bản dịch không chính xác

  • Đi tới WPML > Dịch chuỗi
  • Lọc theo Bản dịch đã hoàn thành
  • Tìm kiếm các chuỗi dưới tên trường [ihc_user_fields]
  • Chọn tất cả các chuỗi này và xóa chúng – chúng là các chuỗi giá trị và không nên dịch.

2- Sửa đổi mẫu bộ lọc frontend

  • Mở: wp-content/plugins/indeed-membership-pro/public/views/listing_users-filter.php
  • Tìm: Dòng 167 dưới case ‘checkbox’
  • Thay thế:

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

Bằng:

<?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- Sửa nhãn hộp kiểm của biểu mẫu đăng ký

  • Mở: wp-content/plugins/indeed-membership-pro/classes/IndeedForms.php
  • Tìm: Hàm checkbox (khoảng dòng 129)
  • Thay thế:

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

4- Kích hoạt đăng ký chuỗi

  • Truy cập trang thư mục trên frontend để tải các chuỗi mới.
  • Đi tới WPML > Dịch chuỗi và chỉ dịch các chuỗi mới được đăng ký dưới miền “ihc” (có tên giống như checkbox_option_name).

Tất cả các lỗi đã ghi nhận →