Plugin Interceptors dan mengesampingkan dengan preferensi tidak berfungsi pada metode statis.
Perlu mengganti metode getOptionArray di Magento \ Catalog \ Model \ Product \ Visibility untuk mengembalikan visibilitas khusus
/**
* 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')
];
}
Adakah cara lain untuk mencapai ini?
Jawaban:
Hanya mengganti
getOptionArray()
tidak cukup hanya karena jika Anda melihat di Magento \ Katalog \ Model \ Produk \ Visibilitas di baris 107, 120 & 134,getOptionArray()
dipanggil denganself
.Self akan selalu memanggil metode asli daripada yang baru, maka Anda hanya perlu menyalin dan tempelgetAllOption()
,getAllOptions()
&getOptionText()
di Kelas Model yang diganti (Sama dengan tempat Anda menggantigetOptionArray()
)sumber