This meta-plugin allows regular plugins to specify other plugins that they depend upon.
/* Plugin Name: BuddyPress Debug Depends: BuddyPress, Debug Bar */
What this does:
- Disables activation of BuddyPress Debug until both BuddyPress and Debug Bar are already activated.
- When either BuddyPress or Debug Bar are deactivated, BuddyPress Debug will also be deactivated.
= Enriching dependency information =
Unfortunately, very few plugins currently contain dependency information. If you’d like to enhance the information available to this plugin, you might want to install the Known Plugin Dependencies plugin which acts as an add-on to this one.
- Error on activation: “Parse error: syntax error, unexpected…”
Make sure your host is running PHP 5. The only foolproof way to do this is to add this line to wp-config.php (after the opening
- What happens if a user doesn’t have Plugin Dependencies installed?
Nothing. The Depends: header will simply be ignored.
- Can I have grand-child plugins?
Yes, the dependency chain can go as deep as you want.
- Defining virtual packages
Say you have some useful functions that you would like to package up as a library plugin:
/* Plugin Name: Facebook Lib Provides: lib-facebook */
Now, dependant plugins can specify ‘lib-facebook’ as a dependency:
/* Plugin Name: Cool Facebook Plugin Depends: lib-facebook */
Besides being more robust, the Provides: header allows multiple plugins to implement the same set of functionality and be used interchangeably.
This plugin — with its companion Known Plugin Dependencies — offers basic, and that is to say: robust — plugin dependency information and handling. This core functionality is missing from WP Core, unfortunately.
I’ve seen plugin developers role out all kinds of dependency notification mechanisms on their own, which would not be needed, if this — or something very similar to this — were to become part of WP Core.
Of course, there is the TGM Plugin Activation library out there, which may look like the real deal. But then, for a simple dependency notification in a simple plugin, this would seem way too complex and unnecessary.
So, where can I vote for this?
Would one of the devs care to update the compatibility info in the read-me file?
This plugin should be WordPress core functionality. Thanks
Contributors & Developers
“Plugin Dependencies” is open source software. The following people have contributed to this plugin.Contributors
Interested in development?
Add Dependency Loader class. Props kucrut.
Make it work with bulk actions. Props jrf.
- Usability: Remove bulk action checkboxes for plugins with unsatisfied dependencies on single site plugins page within a network. Props jrf.
Guard dependencies even when a plugin is (de)activated outside of the plugins page context. Props jrf.
Fix compatibility with multi-site. Props jrf.
- New: Show dependencies in the network admin plugins page.
- Bug fix: network activated plugins were not recognized (at all) and deactivating one would throw PHP notices.
- Bug fix: network activation action was not correctly unset if dependencies were not met (WP 3.4+).
- Bug fix: network deactivation would only check dependencies for the network and the main site, not for the other sites in the network
- Improved: logic for recognizing whether dependencies have been satisfied.
- Usability: On single site plugin page in a multisite network: added a “network” textual indicator for dependencies which were met by a network activated plugin.
- Usability: On single site plugin page in a multisite network: the required plugin names now only link to the plugin if the current user can activate that plugin.
- Usability: Improved information to single site admins when dependent plugins have been deactivated because a required plugin has been network deactivated – show all deactivated plugins since last admin login, not just what happened in the last change round.
- Usability: Notifications about deactivated plugins are now shown on any admin page which will help admins notice changes made by this plugin earlier in case of a network deactivation. Props jrf.
- Improve style of plugin dependency notices. Props jrf.
- Usability: Add plugins deactivated by this plugin to the ‘recently active’ plugins list. Props jrf.
- Add Dutch translation. Props jrf.
- fixed notices. props cfoellmann
- added ability to use plugin names as dependencies
- more info
- added ‘Provides:’ header
- replaced ‘Dependencies:’ with ‘Depends:’
- more info
- fixed critical bug when not running MultiSite
- better network activation handling
- initial release
- more info