- สถานะ
- รอผู้พัฒนา
- ปลั๊กอิน/ธีมที่เกี่ยวข้อง
- 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)