1

I am remote activating plugins using update_option('active_plugins,'some_plugins'); It works fine except one thing: if some plugins have to create some tables using register_activation_hook(__FILE__,'activate'); it won't create them.

When I'm activating plugins normally in wp-admin/plugins.php it works fine. Any ideas how to remote execute this activation hook or maybe there is different way to better plugin activation?

1 Answer 1

1

Use activate_plugin() instead:

activate_plugin( $plugin, $redirect = '', $network_wide = false, $silent = false )

You need just the first parameter, the same value as in the option.

This function will call the necessary actions:

if ( ! $silent ) {
    do_action( 'activate_plugin', $plugin, $network_wide );
    do_action( 'activate_' . $plugin, $network_wide );
}

Note: depending on where you call activate_plugin function you might need to add this:

 include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
3
  • Hi toscho. I'm using xml-rpc calls to work on wordpress. activate_plugin() method isn't accessible by it. Calling do_action('activate_plugin','plugin/plugin.php',false) gives nothing. Only way I see for now is direct create tables in database. Or maybe You have another ideas?
    – bigwolk
    Jun 5, 2013 at 6:54
  • @bigwolk Have you tried to extend XML RPC to get access to the function?
    – fuxia
    Jun 5, 2013 at 6:58
  • I'm using extended api plugin to access almost all methods in wordpress.
    – bigwolk
    Jun 5, 2013 at 7:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.