2010-03-15 11 views
8

Come faccio a reindirizzare gli utenti alla mia pagina impostazioni del plugin dopo che attivano il mio plug-in, ho provatoRedirect dopo plugin di attivazione

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

ma non funziona.

+0

Ho cercato su Google, non ho ricevuto nulla ... la stessa domanda è su altri forum, tutti sono senza risposta –

risposta

13

Si dovrebbe essere in grado di fare qualcosa di simile:

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 ... esattamente quello che volevo ..... Amo questa comunità .. . –

3

grazie per il vostro codice - E'grande, ma ha un solo aspetto negativo: al momento dell'attivazione di massa di plugin, si ottiene anche reindirizzato al tuo definita pagina di reindirizzamento - che potrebbe confondere l'utente durante la disattivazione/attivazione di tutti i plugin in una volta per motivo di test/debug. Pertanto vorrei proporre la soluzione, per aggiungere un'opzione per reindirizzare solo alla vostra pagina su attivazione primo 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 valido, ma sarebbe meglio rilevare le attivazioni di massa – Pat

8

Questo reindirizzerà alla pagina opzione solo se questo plugin è attivato solo senza l'utilizzo di modalità di attivazione di massa.

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

Ciao ho reindirizzato codice soffietto dopo l'attivazione del plugin. Puoi usare questo codice Funziona bene.

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_ è il mio prefisso plug & "edit.php? Post_type = titolo & page = news-headline" è redirect. si prega di sostituire questo quelli.