Cách ghi đè phương thức tĩnh trong Magento2


11

Plugin đánh chặn và ghi đè với tùy chọn không hoạt động trên các phương thức tĩnh.

Cần ghi đè phương thức getOptionArray trong Magento \ Catalog \ Model \ Product \ Visibility để trả về khả năng hiển thị tùy chỉnh

/**
     * 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')
        ];
    }

Bất kỳ cách nào khác điều này có thể đạt được?


Không. Tôi đang hỏi cách thêm tùy chọn hiển thị mới. mảng getOption là một phương thức tĩnh không thể được sửa đổi với các phần tử chặn hoặc ưu tiên.
dùng3339988

Xin lỗi, tôi đánh dấu câu hỏi sai. Điều này sẽ giúp bạn magento.stackexchange.com/questions/134386/ triệt
PY Yick

Điều đó không trả lời câu hỏi của tôi.
dùng3339988

Bất kỳ ai? Tôi đã bị mắc kẹt với điều này trong 2-3 ngày. Bất kỳ cách khác để thêm tùy chọn khả năng hiển thị?
dùng3339988

Câu trả lời:


1

Ghi đè chỉ getOptionArray()là không đủ vì nếu bạn thấy trong Magento \ Catalog \ Model \ Product \ Visibility ở dòng 107, 120 & 134, getOptionArray()được gọi bằng self.Self sẽ luôn gọi phương thức ban đầu thay vì phương thức mới, do đó bạn chỉ cần sao chép và dán getAllOption(), getAllOptions()& getOptionText()trong Lớp Mô hình bị ghi đè của bạn (Tương tự nơi bạn đã ghi đè getOptionArray())

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.