[wp-hackers] register_uninstall_hook VS uninstall.php
The WordPress Web Warlock
wordpress at web-warlocks.net
Sat May 8 10:39:16 UTC 2010
En/na Davit Barbakadze ha escrit:
> (...)
> Ok, what I do is I have my small framework, from which I inherit my all new
> plugins. My friends are using it too, so I needed a simple, transparent way
> to clean up after plugin, when it gets uninstalled. (...)
Why not hook into the uninstall hook?
I mean:
function my_plugin_main_uninstall(){
$args_init = array( 'foo' => 'bar' , 'bar' => 'foo' );
$args_init = apply_filter( 'my_plugin_args_init' , $args_init );
if( $args_init['include'] ) include
do_action( 'my_namespaced_uninstall_init' , $args_init );
if( $args_init['foo'] ) do_action( 'my_plugin_foo_uninstall' );
if( $args_init['bar'] ) do_action( 'my_plugin_bar_uninstall' );
};
register_uninstall_hook( $my_file , 'my_plugin_main_uninstall' );
Maybe I'm missing something, but by what I have understood, all you need
is to declare a gazillion things. By creating your uninstall hooks, you
can add the declaration functions both to plugins_loaded/admin/whatever
AND my_unique_namespaced_uninstall_init.
I've been working with a "framework plugin", too, and this approach of
uninstalling looks easier to me than all the uninstall.php & other
approaches. I've got some dependencies that may be, or may be not, used
by some of the "child plugins". There are options that may need removal,
and maybe not because they simply don't exist — so it's better to skip
that part of the uninstall process, instead of just checking every time
if there is anything that needs removal. Besides, some plugins using
shared optional components may have contradictory uninstall options —
some parsing is needed here. This way I can do anything I need, in the
right order, without having to duplicate selection code in each of the
child plugins (which could even break older child plugins).
More information about the wp-hackers
mailing list