WPML
สถานะ
แก้ไขแล้ว
รายงานสำหรับ
WPML Multilingual CMS 4.5.10
แก้ไขใน
WPML 4.6.4
ปลั๊กอิน/ธีมที่เกี่ยวข้อง
Elementor
แท็กหัวข้อ
Bug, Compatibility

ภาพรวมของปัญหา

หากคุณนำเข้าเนื้อหาตัวอย่างบางส่วนที่จำเป็นต้องใช้ Elementor (เช่น ที่มาจากธีม Astra หรือ Real Homes) คุณจะพบว่าไม่สามารถแปลเนื้อหาดังกล่าวได้ และจะเกิดข้อผิดพลาดต่อไปนี้ใน PHP 8:

Fatal error: Uncaught TypeError: json_decode(): Argument #1 ($json) must be of type string, array given in …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php:22

ปัญหานี้เกิดขึ้นเนื่องจากเนื้อหาตัวอย่างเป็นข้อมูลแบบ serialized และโค้ดการทำงานร่วมกันของเราต้องการสตริงข้อความที่เข้ารหัสแบบ JSON

วิธีแก้ปัญหาชั่วคราว

โปรดตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลทั้งหมดของไซต์ของคุณก่อนดำเนินการต่อ


  1. แก้ไขไฟล์ …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php

  2. ค้นหาบรรทัดที่ 21

  3. เปลี่ยน:
    public static function unserialize( $data ) {
        return json_decode( is_array( $data ) ? $data[0] : $data, true );
    }

    เป็น:

    public static function unserialize( $data ) {
            $data = is_array( $data ) ? $data[0] : $data;
            if (is_string($data)) {
                return json_decode( $data, true );
            }
            return $data;
    }

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