2010-03-15 13 views
8

¿Cómo redirigir a los usuarios a mi página de configuración del plugin después de que activan mi complemento, he intentadoredirección después de la activación del plugin

register_activation_hook(__FILE__,'activate_myplugin'); 
function activate_myplugin() 
{ 
//create and populate DB tables 
wp_redirect(plugin_setting_url); 
} 

pero no funciona.

+0

Busqué en google, no recibí nada ... la misma pregunta está en otros foros, todos están sin respuesta –

Respuesta

13

Usted debe ser capaz de hacer algo como esto:

register_activation_hook(__FILE__, 'my_plugin_activate'); 
add_action('admin_init', 'my_plugin_redirect'); 

function my_plugin_activate() { 
    add_option('my_plugin_do_activation_redirect', true); 
} 

function my_plugin_redirect() { 
    if (get_option('my_plugin_do_activation_redirect', false)) { 
     delete_option('my_plugin_do_activation_redirect'); 
     wp_redirect(MY_PLUGIN_SETTINGS_URL); 
    } 
} 
+2

@Richard thanx ... exactamente lo que quería ..... Me encanta esta comunidad ... . –

3

gracias por su código - Está muy bien, pero sólo tiene un inconveniente: tras la activación mayor de plugins, también puede obtener de nuevo a su definido redirige la página, lo que podría confundir al usuario al desactivar/activar todos los complementos a la vez para probar/depurar el motivo. Por lo tanto, propongo la solución, añadir una opción para redirigir sólo a su página en la activación primer plugin:

register_activation_hook(__FILE__, 'my_plugin_activate'); 
add_action('admin_init', 'my_plugin_redirect'); 

function my_plugin_activate() { 
add_option('myplugin_redirect_on_first_activation', 'true'); 
} 

function my_plugin_redirect() { 
    if (get_option(MYPLUGIN_REDIRECT_ON_FIRST_ACTIVATION_KEY) == 'true') { 
     update_option(MYPLUGIN_REDIRECT_ON_FIRST_ACTIVATION_KEY, 'false'); 
     wp_redirect(MY_PLUGIN_SETTINGS_URL); 
    } 
} 
+0

punto válido, pero sería mejor detectar activaciones masivas – Pat

8

Esto redirigirá a la página opción sólo si ese plugin sólo se activa sin necesidad de utilizar el modo de activación mayor.

register_activation_hook(__FILE__, 'my_plugin_activate'); 
add_action('admin_init', 'my_plugin_redirect'); 

function my_plugin_activate() { 
    add_option('my_plugin_do_activation_redirect', true); 
} 

function my_plugin_redirect() { 
    if (get_option('my_plugin_do_activation_redirect', false)) { 
     delete_option('my_plugin_do_activation_redirect'); 
     if(!isset($_GET['activate-multi'])) 
     { 
      wp_redirect("options-general.php?page=your-plugin-option-page"); 
     } 
    } 
} 
0

Hola, he usado el código de fuelle redirect after plugin activation. Puedes usar este código Está funcionando bien.

register_activation_hook(__FILE__, 'nht_plugin_activate'); 
add_action('admin_init', 'nht_plugin_redirect'); 

function nht_plugin_activate() { 
add_option('nht_plugin_do_activation_redirect', true); 
} 

function nht_plugin_redirect() { 
if (get_option('nht_plugin_do_activation_redirect', false)) { 
    delete_option('nht_plugin_do_activation_redirect'); 
    if(!isset($_GET['activate-multi'])) 
    { 
     wp_redirect("edit.php?post_type=headline&page=news-headline"); 
    } 
} 
} 

nht_ es mi complemento prefijo & "edit.php? Post_type = título de la página de noticias & =-título" es redirigir la página. por favor reemplace ésos.

Cuestiones relacionadas