Opened 13 years ago
Last modified 2 years ago
#20241 assigned enhancement
make it possible for plugins to activate other plugins
Reported by: | magnus78 | Owned by: | |
---|---|---|---|
Milestone: | Future Release | Priority: | normal |
Severity: | normal | Version: | |
Component: | Plugins | Keywords: | has-patch needs-unit-tests needs-refresh |
Focuses: | Cc: |
Description
When creating a plugin that depends on other plugins, i would like to enable those plugins during activation of the main plugin.
This is currently not possible, as updates to active_plugins done by the other plugins get overwritten.
Please apply the attached patch to fix this.
Attachments (4)
Change History (22)
#3
@
12 years ago
- Cc kpayne@… added
- Type changed from defect (bug) to feature request
scribu has done a nice write up on dependency management in plugins
http://scribu.net/wordpress/plugin-dependencies
And he's written a plugin to handle dependency management, too
#4
@
12 years ago
These changes could potentially break backwards compatibility.
Dependencies aside, this is doable without any patch. You can use the activated_plugin hook, which fires after the option is updated. For deactivation, you could simply choose a later hook (even something like 'shutdown' would work, as would option_active_plugins).
#5
@
12 years ago
Child plugins would indeed be nice, but it doesn't need to be either or. I'd see this patch more as a code fix than an actual feature...
How would it break backwards compatibility?
It's not doable without a patch afaikt. activated_plugin is run for every plugin not just *this* plugin like i want, i tried that first but ran into problems with plugins getting included multiple times (causing errors) and other strange problems.
Re option_active_plugins - did you mean updating the active_plugins option manually? That won't let the registration hook for each plugin run.
#6
@
12 years ago
- Type changed from feature request to defect (bug)
V3 fixes a problem with the patch wrt multisite.
Anything more i need to do?
#8
@
12 years ago
I do see it as a bug fix, as it's not said anywhere that it shouldn't work, and i see no reason it shouldn't. If for some reason the fix isn't wanted, it should at least be documented that you're not allowed to activate other plugins from the registration hook.
#10
@
11 years ago
- Component changed from General to Plugins
- Milestone changed from Awaiting Review to 3.7
- Owner set to nacin
- Status changed from new to accepted
- Type changed from feature request to enhancement
#11
@
11 years ago
- Keywords commit added
- Re-queries the active_sitewide_plugins or active_plugins options before modifying them in activate_plugin(), once hooks are fired.
- Waits until saving options in deactivate_plugins() to query and manipulate them.
- Cleans up some hook documentation.
#12
@
11 years ago
- Keywords needs-unit-tests added
- Milestone changed from 3.7 to Future Release
This could benefit from unit tests.
#16
@
2 years ago
- Milestone set to Future Release
- Owner nacin deleted
- Status changed from accepted to assigned
Since this one has not received any attention in 9+ years, I'm resetting the owner field. Sometimes contributors shy away from tickets with an owner assigned because it's a sign someone else has "claimed" it.
Pinging @afragen who is currently championing the efforts in #22316. This is out of scope of the latest efforts there, but should be considered in that context as that progresses.
#17
@
2 years ago
Please give feedback to the Plugin Dependencies Feature Project.
There is an associated feature plugin, Plugin Dependencies.
There are testing instructions in the readme.
#18
@
2 years ago
Please be aware that plugin's activating other plugins is outside the scope of the Plugin Dependencies feature project. There are libraries that have these capabilities, among them is one of my own, https://github.com/afragen/wp-dependency-installer.
proposed fix