Issue Cannot redeclare file_get_html() simple_html_dom.php, Plugin WP Bentrok

Kali ini saya mau update masalah pada plugin wordpress yang terjadi disalah satu website saya, ketika saya mengaktifkan salah satu plugin yang menggunakan simple_html_dom.php, website saya menjadi error, tampilan errornya kurang lebih seperti ini:

Cannot redeclare file_get_html() (previously declared in /home/hoe/public_html//wp-content/plugins/xxxxxpluginA/lib/simple_html_dom.php:36) in /home/hoe/public_html//wp-content/plugins/xxxxxpluginB/admin/classes/simple_html_dom.php on line 80

Kalau dilihat dari errornya, ada konflik yang terjadi ketika saya mengaktifkan plugin A, setelah saya trial error dan mencoba menon-aktifkan plugin xxxxxpluginB seperti yang disebut di error di atas. Ternyata ketika plugin xxxxxpluginA saya aktifkan kembali, tidak muncul error tersebut, kesimpulannya berarti jelas bahwa ada konflik dengan 2 plugin tersebut.

Setelah browsing sana sini ternyata konflik tersebut disebabkan adanya pemanggilan file simple_html_dom.php yang dobel, plugin A sudah lebih dahulu menggunakan file tersebut.

Saya ga ngerti fungsi file tersebut untuk apa hehe yang jelas banyak di pake di plugin-plugin sekarang. Alternatifnya perlu sedikit modifikasi cara pemanggilan file simple_html_dom.php pada plugin xxxxxpluginB (plugin kedua).

Bingung juga nyari file yang mengandung komeng pemanggilan file simple_html_dom.php di plugin B, banyak banget file soalnya, masa harus buka satu per satu. Akhirnya nemu software FileSeek yang berfungsi untuk searching komeng.

Langkah pertama, saya download plugin B ke komputer saya terlebih dahulu.

Pastinya untuk memanggil file simple_html_dom.php mengandung ‘admin/classes/simple_html_dom.php‘ jadi saya searching dengan query ‘admin/classes/simple_html_dom.php‘ tanpa tanda kutip menggunakan FileSeek.

Fileseek-query

Ketemu, file simple_html_dom.php di panggil di file wso-members.php seperti gambar di atas :D yesss bahkan kita bisa lihat penulisannya.

Selanjutnya tinggal saya buka file wso-members.php dan search ‘admin/classes/simple_html_dom.php‘ tanpa tanda kutip, dan ketemu baris command di bawah ini:

include_once (‘admin/classes/simple_html_dom.php’;); —-> ini sumber masalahnya

Jadi, karena file tersebut dipanggil kembali dengan perintah di atas, terjadi konflik karena perintah di atas sudah (memanggil file simple_html_dom.php) juga dilakukan di plugin B.

Langsung saja baris perintah diatas di hapus dan ganti dengan baris perintah berikut:

if ( ! class_exists( ‘simple_html_dom_node’ ) ) {
   require_once(‘admin/classes/simple_html_dom.php’;);
}

Save….

Coba kembali aktifkan plugin, dan sudah tidak bentrok lagi….

About Oka Mahendra

Menyukai bisnis online sejak 2007...latar belakang pendidikan IT di STM Telkom Purwokerto dan Kampus Ungu Yogyakarta.
This entry was posted in Coretan and tagged , . Bookmark the permalink.

Leave a Reply