WPML
สถานะ
รอผู้พัฒนา
ปลั๊กอิน/ธีมที่เกี่ยวข้อง
Ultimate Membership Pro
แท็กหัวข้อ
Compatibility

ภาพรวมของปัญหา

เมื่อใช้ Ultimate Membership Pro ร่วมกับ WPML คุณอาจพบปัญหาที่ค่าช่องทำเครื่องหมายซึ่งใช้ในโปรไฟล์สมาชิกและตัวกรองไดเรกทอรีแปลไม่ได้ และทำให้ป้ายกำกับที่แปลแล้วไม่ปรากฏอย่างถูกต้องบนหน้าไดเรกทอรีหรือแบบฟอร์มที่แปลแล้ว

วิธีแก้ปัญหาชั่วคราว

โปรดตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลไซต์ของคุณอย่างสมบูรณ์ก่อนดำเนินการต่อ

1- ลบคำแปลที่ไม่ถูกต้อง

  • ไปที่ WPML > การแปลสตริง
  • กรองตาม การแปลเสร็จสมบูรณ์
  • ค้นหาสตริงภายใต้ชื่อฟิลด์ [ihc_user_fields]
  • เลือกสตริงทั้งหมดเหล่านี้แล้วลบออก เนื่องจากเป็นสตริงค่าและไม่ควรแปล

2- แก้ไขเทมเพลตตัวกรองส่วนหน้า

  • เปิด: wp-content/plugins/indeed-membership-pro/public/views/listing_users-filter.php
  • ค้นหา: บรรทัดที่ 167 ภายใต้ case ‘checkbox’
  • แทนที่:

<?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
  • ค้นหา: ฟังก์ชัน checkbox (ประมาณบรรทัดที่ 129)
  • แทนที่:

$output .= ihc_correct_text( $v );
ด้วย:
$output .= __( ihc_correct_text( $v ), 'ihc' );</ul>

4- ทริกเกอร์การลงทะเบียนสตริง

  • ไปที่หน้าไดเรกทอรีที่ส่วนหน้าเพื่อโหลดสตริงใหม่
  • ไปที่ WPML > การแปลสตริง และแปลเฉพาะสตริงที่ลงทะเบียนใหม่ภายใต้โดเมน “ihc” (มีชื่อเช่น checkbox_option_name)

ปัญหาที่ทราบแล้วทั้งหมด →