Every serious plugin developer probably has to deal with this problem: WordPress is not supporting composer or any dependency management by default. I have written a great plugin which I would like to put into the official repository on WordPress.
Problem is: I do not want to write all of those options pages (including network options pages) on my own - this is why I am using the CMB2 library. It is actually a well known framework used by a lot of WordPress developers in order to create options pages:
Most probably it is not a good idea to put the CMB2 library into my Plugin (which would also require constant updates). But what other option do I have? What is a good way to deal with this problem?
Every serious plugin developer probably has to deal with this problem: WordPress is not supporting composer or any dependency management by default. I have written a great plugin which I would like to put into the official repository on WordPress.
Problem is: I do not want to write all of those options pages (including network options pages) on my own - this is why I am using the CMB2 library. It is actually a well known framework used by a lot of WordPress developers in order to create options pages: https://github/CMB2/CMB2
Most probably it is not a good idea to put the CMB2 library into my Plugin (which would also require constant updates). But what other option do I have? What is a good way to deal with this problem?
Share Improve this question asked Mar 19, 2019 at 17:04 BlackbamBlackbam 57511 silver badges28 bronze badges 5 |1 Answer
Reset to default 2On your plugin activation hook method you can check if CMB plugin is installed and/or activated.
You can check this using the following methods:
is_plugin_active()
: only available from within the admin pagesfunction_exists()
orclass_exists()
: available anywhere once they are PHP core methods
If CMB is not installed, you can throw an error message in the panel with instructions to the user on how to install it.
This article has a great explanation on how to check WordPress Plugin Dependencies.
if (!class_exists('cmb_main_class_name)){ ...
on your plugin init function – mrben522 Commented Mar 19, 2019 at 17:25