- Trạng thái
- Đang chờ nhà phát triển
- Loại
- Lỗi
- Được báo cáo cho
- Complianz | GDPR/CCPA Cookie Consent 7.5.0
- Plugin/giao diện liên quan
- Complianz | GDPR/CCPA Cookie Consent
- Thẻ chủ đề
- Compatibility
Tổng quan về sự cố
Khi bạn sử dụng Complianz | GDPR/CCPA Cookie Consent trên một trang web có ngôn ngữ mặc định không phải là tiếng Anh, một số chuỗi văn bản của plugin được đăng ký trong WPML → Dịch chuỗi với tiếng Anh là ngôn ngữ nguồn.
Complianz đăng ký một số chuỗi văn bản của biểu ngữ cookie sau khi WordPress dịch chúng. Trên một trang web tiếng Tây Ban Nha, chuỗi văn bản mặc định Accept được lưu thành Aceptar, và Complianz đăng ký Aceptar mà không có ngôn ngữ nguồn. Sau đó, WPML coi chuỗi văn bản này là tiếng Anh.
Điều này ảnh hưởng đến các chuỗi văn bản của biểu ngữ cookie và các chuỗi văn bản mà Complianz đăng ký thông qua hàm hỗ trợ cmplz_register_translation() của riêng nó. Cơ sở dữ liệu cookie của plugin không bị ảnh hưởng, vì mã đó đăng ký các giá trị tiếng Anh.
Giải pháp tạm thời
Tạo một bản sao lưu đầy đủ cho trang web của bạn trước khi tiếp tục.
Phần đầu tiên thay đổi mã của plugin, để Complianz đăng ký các chuỗi của nó bằng ngôn ngữ trang web. Các số dòng được lấy từ Complianz 7.5.5. Áp dụng lại thay đổi này sau mỗi lần cập nhật Complianz, cho đến khi plugin phát hành bản sửa lỗi.
- Mở tệp …/wp-content/plugins/complianz-gdpr/cookiebanner/class-cookiebanner.php.
- Tìm dòng 491 và 494.
- Thay thế:
icl_register_string( 'complianz', $fieldname . $key, $string ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string ); - Bằng:
$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 ); - Mở tệp …/wp-content/plugins/complianz-gdpr/functions.php. Tệp này đăng ký các tiêu đề tài liệu, URL và cài đặt trong hàm cmplz_register_translation().
- Tìm dòng 2255 và 2258.
- Thay thế:
icl_register_string( 'complianz', $fieldname, $string ); do_action( 'wpml_register_single_string', 'complianz', $fieldname, $string ); - Bằng:
$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 ); - Lưu lại banner trong Complianz → Cookie banner, để plugin đăng ký các chuỗi bằng ngôn ngữ trang web.
Việc thay đổi mã chỉ có tác dụng với các chuỗi mới. Các chuỗi mà Complianz đã đăng ký vẫn giữ tiếng Anh làm ngôn ngữ nguồn, vì vậy hãy sửa chúng theo cách thủ công:
- Truy cập WPML → Dịch chuỗi.
- Trong Select strings within domain, chọn miền complianz.
- Chọn các chuỗi hiển thị sai ngôn ngữ.
- Mở Change the language of selected strings ở cuối trang.
- Chọn ngôn ngữ thực của các chuỗi, ví dụ như tiếng Tây Ban Nha, và áp dụng thay đổi.
- Dịch các chuỗi sang các ngôn ngữ phụ của bạn.