วิธีการแทนที่วิธีการคงที่ใน Magento2


11

ปลั๊กอิน Interceptors และการแทนที่ด้วยการตั้งค่าไม่ทำงานในวิธีการคงที่

จำเป็นต้องแทนที่เมธอดgetOptionArrayในMagento \ Catalog \ Model \ Product \ Visibility เพื่อส่งคืนการมองเห็นที่กำหนดเอง

/**
     * Retrieve option array
     *
     * @return array
     */
    public static function getOptionArray()
    {
        return [
            self::VISIBILITY_NOT_VISIBLE => __('Not Visible Individually'),
            self::VISIBILITY_IN_CATALOG => __('Catalog'),
            self::VISIBILITY_IN_SEARCH => __('Search'),
            self::VISIBILITY_BOTH => __('Catalog, Search')
        ];
    }

วิธีอื่นใดที่สามารถทำได้


ไม่ฉันกำลังขอวิธีเพิ่มตัวเลือกการเปิดเผยใหม่ อาร์เรย์ getOption เป็นวิธีสแตติกไม่สามารถแก้ไขได้ด้วยตัวดักจับหรือการตั้งค่า
user3339988

ขออภัยฉันทำเครื่องหมายคำถามผิด อันนี้น่าจะช่วยคุณmagento.stackexchange.com/questions/134386/ …
PY Yick

อันนั้นไม่ตอบคำถามของฉัน
user3339988

ใคร? ฉันติดอยู่กับเรื่องนี้มา 2-3 วันแล้ว วิธีอื่นใดในการเพิ่มตัวเลือกการเปิดเผย?
user3339988

คำตอบ:


1

การเอาชนะเท่านั้นgetOptionArray()ยังไม่พอเพราะถ้าคุณเห็นใน Magento \ Catalog \ Model \ Product \ ทัศนวิสัยที่บรรทัด 107, 120 & 134, getOptionArray()ถูกเรียกด้วย. ตนเองselfมักจะเรียกวิธีการดั้งเดิมมากกว่าวิธีใหม่ดังนั้นคุณเพียงแค่คัดลอก และวางgetAllOption(), getAllOptions()และgetOptionText()ในของคุณแทนที่รุ่นคลาส (เหมือนที่คุณได้ overriden getOptionArray())

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.