[wp-testers] Add Option and uninstall

Peter Westwood peter.westwood at ftwr.co.uk
Wed Mar 24 22:11:02 UTC 2010


On 24 Mar 2010, at 18:17, due chiacchiere wrote:

> Hi all,
> 
> I'm working on a plugin which needs to store some data in the table "wp_options", and to create some new tables as well. I have two questions:
> 
> 1) Why calling add_option('myoption', array(), 'no') creates a new entry that has the 'autoload' field set to YES in the database? Am I doing something wrong?
> 
> 2) Since I want to be a 'good developer', I added the uninstall function to be executed whenever the user decides to remove this plugin from his WP box. So I have this method inside my class:
> 
> public function uninstall() {
>        global $wpdb;
> 
>        // Goodbye data...
>        $wpdb->query("DROP TABLE IF EXISTS `tablename`");
> 
>        // Goodbye options...
>        delete_option('myoption');
>    }
> 
> And then it's hooked like this
> 
> register_uninstall_hook( __FILE__, array( &$myclass, 'uninstall' ) );
> 
> I've tried both with 2.9 and 3.0alpha, and the table is still there after I uninstall the plugin via the admin interface.
> 

Without looking at the code I suspect this will be due to using a class function for this hook when it is likely that when the hook is called the class does not exist.

From memory the activation/uninstall hooks can only work with functions not class functions.

Cheers

Peter
-- 
Peter Westwood
http://blog.ftwr.co.uk | http://westi.wordpress.com
C53C F8FC 8796 8508 88D6 C950 54F4 5DCD A834 01C5



More information about the wp-testers mailing list