WPML
สถานะ
รอผู้พัฒนา
ประเภท
บั๊ก
รายงานสำหรับ
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 ที่ด้านล่างของหน้า
  • เลือกภาษาที่แท้จริงของสตริง เช่น ภาษาสเปน และใช้การเปลี่ยนแปลง
  • แปลสตริงเป็นภาษารองของคุณ

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