- สถานะ
- รอผู้พัฒนา
- ปลั๊กอิน/ธีมที่เกี่ยวข้อง
- WP User Manager
- แท็กหัวข้อ
- Compatibility
ภาพรวมของปัญหา
เมื่อใช้ WP User Manager เพื่อเพิ่มฟิลด์ที่กำหนดเองลงในโปรไฟล์ คุณอาจพบปัญหาต่อไปนี้: ตัวเลือกจากฟิลด์ที่กำหนดเองแบบเลือกได้หลายรายการแปลไม่ได้ในการแปลสตริงของ WPML
วิธีแก้ปัญหาชั่วคราว
โปรดตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลเว็บไซต์ทั้งหมดของคุณก่อนดำเนินการต่อ
1. แก้ไขปลั๊กอินเชื่อมต่อ (WPUM-WPML)
- เปิดไฟล์ …/wp-content/plugins/wpum-wpml/includes/class-wpum-wpml-fields.php
- ค้นหาบรรทัดที่ 20
- แทนที่:
add_action( 'update_wpum_field_meta', array( $this, 'update_meta_strings' ), 10, 4 );
- ด้วย:
add_action( 'updated_wpum_field_meta', array( $this, 'update_meta_strings' ), 10, 4 );
- หลังจากนั้น ไปที่ ผู้ใช้ > ฟิลด์ที่กำหนดเอง แก้ไขตัวเลือกฟิลด์แบบเลือกได้หลายรายการอย่างน้อยหนึ่งรายการ จากนั้นไปที่ WPML > การแปลสตริง เพื่อแปลค่า
2. แก้ไขการแสดงผลส่วนหน้าเว็บไซต์ใน WP User Manager
- เปิดไฟล์ …/wp-content/plugins/wp-user-manager/includes/fields/types/class-wpum-field-multiselect.php
- ค้นหาบรรทัดที่ .
- แทนที่ฟังก์ชัน
get_formatted_output()ทั้งหมดด้วย:
public function get_formatted_output( $field, $value ) { $stored_field_options = $field->get_meta( 'dropdown_options' ); $stored_options = array(); $stored_index = array(); // Build lookup maps: value => label and value => original index foreach ( $stored_field_options as $key => $stored_option ) { $val = isset( $stored_option['value'] ) ? $stored_option['value'] : $key; $lbl = isset( $stored_option['label'] ) ? $stored_option['label'] : ''; $stored_options[ $val ] = $lbl; $stored_index[ $val ] = $key; } $values = array(); foreach ( $value as $user_stored_value ) { if ( ! isset( $stored_options[ $user_stored_value ] ) ) { continue; } $label = $stored_options[ $user_stored_value ]; // Determine original index for this option so we can match textdomain package $index = isset( $stored_index[ $user_stored_value ] ) ? $stored_index[ $user_stored_value ] : 0; // Translation via WPML. $translated_label = apply_filters( 'wpml_translate_single_string', $label, 'wpum-fields-wpum-field-' . $field->get_ID(), 'wpum-field-dropdown_options_' . $index ); $values[] = $translated_label; } return implode( ', ', $values ); }