Parses a ‘Requires Plugins’ header and adds a Dependencies tab in the plugin install page. If a requiring plugin does not have all it’s dependencies installed and active, it will not activate.
Make post for Plugin Dependencies Feature Project
Please open issues at WordPress/wp-plugin-dependencies issues
My solution to #22316. Feature plugin version of PR #1724
- Parses the Requires Plugins header that defines plugin dependencies using a comma separated list of wp.org slugs. To test, you will need to add the header and content to a plugin.
- Adds a new view/tab to plugins install page ( Plugins > Add New ) titled Dependencies that contains plugin cards for all plugin dependencies.
- This view also lists which plugins require which plugin dependencies in the plugin card. 😅
- In the plugins page, a dependent plugin is unable to be deleted or deactivated if the requiring plugin is active.
- Plugin dependencies can be deactivated or deleted if the requiring plugin is not active.
- Messaging in the plugin row description is inserted; as is data noting which plugins require the dependency.
- Displays a single admin notice with link to Plugins > Add New > Dependencies if not all plugin dependencies have been installed.
- Ensures that plugins with unmet dependencies cannot be activated.
- If the dependency API data is not available a generic plugin card will be displayed in the Dependencies tab.
There are several single file plugins that may be used for testing in
1.2.1 / 2022-06-23
- added several single file testing plugins to
1.2.0 / 2022-06-10
- don’t display admin notice link to Dependencies tab when on Dependencies tab
- be more specific about only removing dependency plugin row checkbox when a requiring plugin is active
1.1.1 / 2022-06-06
- limit scope of class methods where we can
- update screenshots
1.1.0 / 2022-06-02
- change ‘Activate’ plugin action link to ‘Cannot Activate’ text when plugin has unmet dependencies
- remove checkbox from plugin row when plugin has unmet dependencies
- use View details link for plugins listed in Requires: in plugin row
1.0.0 / 2022-05-31 🎂
- fix typo
- initial dot org release
0.16.2 / 2022-05-27
- update requirements to WP 6.0
0.16.1 / 2022-05-24
- add auto-deactivate for when committed to trunk, will need updating later
0.16.0 / 2022-05-08
parse_plugin_headers(), future proofing
- update unit tests
0.15.1 / 2022-04-29
0.15.0 / 2022-04-28
- refactor with
- update admin notice for multisite
- updated required plugin data expiration
0.13.1 / 2022-04-25
0.13.0 / 2022-04-23
0.12.9 / 2022-04-19
- add plugin cards for slugs with no API data
- hide action links and bottom of card in plugin cards for slugs with no API data
*rename and reschuffle some functions
0.12.2 / 2022-04-06
- harden a bit
- clean up some testing stuff
plugin_install_description filter committed to core
0.12.0 / 2022-04-03
- fix PHP error if no plugins with
Requires Plugins header found
- only show single, relevant admin notice
- plugin to date with new changelog