- สถานะ
- รอผู้พัฒนา
- ประเภท
- บั๊ก
- รายงานสำหรับ
- Complianz | GDPR/CCPA Cookie Consent 7.5.0
- ปลั๊กอิน/ธีมที่เกี่ยวข้อง
- Complianz | GDPR/CCPA Cookie Consent
- แท็กหัวข้อ
- Compatibility
ภาพรวมของปัญหา
เมื่อคุณใช้ Complianz | GDPR/CCPA Cookie Consent บนไซต์ที่มีภาษาเริ่มต้นไม่ใช่ภาษาอังกฤษ สตริงบางส่วนของปลั๊กอินจะถูกลงทะเบียนใน WPML → การแปลสตริง โดยมีภาษาอังกฤษเป็นภาษาต้นทาง
Complianz จะลงทะเบียนสตริงแบนเนอร์คุกกี้บางส่วนหลังจากที่ WordPress แปลสตริงเหล่านั้นแล้ว บนไซต์ภาษาสเปน สตริงเริ่มต้น Accept จะถูกบันทึกเป็น Aceptar และ Complianz จะลงทะเบียน Aceptar โดยไม่มีภาษาต้นทาง จากนั้น WPML จะถือว่าสตริงข้อความนั้นเป็นภาษาอังกฤษ
สิ่งนี้ส่งผลกระทบต่อสตริงแบนเนอร์คุกกี้และสตริงที่ Complianz ลงทะเบียนผ่านฟังก์ชันช่วยเหลือ cmplz_register_translation() ของตนเอง ฐานข้อมูลคุกกี้ของปลั๊กอินจะไม่ได้รับผลกระทบ เนื่องจากโค้ดดังกล่าวจะลงทะเบียนค่าเป็นภาษาอังกฤษ
วิธีแก้ปัญหาชั่วคราว
ทำการสำรองข้อมูลแบบเต็มรูปแบบสำหรับเว็บไซต์ของคุณก่อนดำเนินการต่อ
ส่วนแรกจะเป็นการเปลี่ยนโค้ดของปลั๊กอิน เพื่อให้ Complianz ลงทะเบียนสตริงด้วยภาษาของไซต์ หมายเลขบรรทัดอ้างอิงจาก Complianz 7.5.5 ใช้การเปลี่ยนแปลงนี้อีกครั้งหลังจากการอัปเดต Complianz ทุกครั้ง จนกว่าปลั๊กอินจะออกตัวแก้ไข
- เปิดไฟล์ …/wp-content/plugins/complianz-gdpr/cookiebanner/class-cookiebanner.php
- ค้นหาบรรทัดที่ 491 และ 494
- แทนที่:
icl_register_string( 'complianz', $fieldname . $key, $string ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string ); - ด้วย:
$lang = apply_filters( 'wpml_default_language', null ); icl_register_string( 'complianz', $fieldname . $key, $string, false, $lang ); do_action( 'wpml_register_single_string', 'complianz', $fieldname . $key, $string, false, $lang ); - เปิดไฟล์ …/wp-content/plugins/complianz-gdpr/functions.php ซึ่งจะลงทะเบียนชื่อเอกสาร URL และการตั้งค่าในฟังก์ชัน cmplz_register_translation()
- ค้นหาบรรทัดที่ 2255 และ 2258
- แทนที่:
icl_register_string( 'complianz', $fieldname, $string ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string ); - ด้วย:
$lang = apply_filters( 'wpml_default_language', null ); icl_register_string( 'complianz', $fieldname, $string, false, $lang ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string, false, $lang ); - บันทึกแบนเนอร์อีกครั้งใน Complianz → Cookie banner เพื่อให้ปลั๊กอินลงทะเบียนสตริงด้วยภาษาของไซต์
การเปลี่ยนแปลงโค้ดจะช่วยเฉพาะสตริงใหม่เท่านั้น สตริงที่ Complianz ลงทะเบียนไปแล้วจะยังคงเก็บภาษาอังกฤษเป็นภาษาต้นทาง ดังนั้นให้แก้ไขด้วยตนเอง:
- ไปที่ WPML → การแปลสตริง
- ใน Select strings within domain ให้เลือกโดเมน complianz
- เลือกสตริงที่แสดงภาษาที่ไม่ถูกต้อง
- เปิด Change the language of selected strings ที่ด้านล่างของหน้า
- เลือกภาษาที่แท้จริงของสตริง เช่น ภาษาสเปน และใช้การเปลี่ยนแปลง
- แปลสตริงเป็นภาษารองของคุณ