Redirigir después de la activación del complemento

3 minutos de lectura

¿Cómo redirijo a los usuarios a la página de configuración de mi complemento después de que activen mi complemento? Intenté

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

Pero no funciona.

  • Busqué en Google, no obtuve nada… la misma pregunta está en otros foros, todos están sin respuesta

    – Pragati Sureka

    17 de marzo de 2010 a las 9:12

avatar de usuario
ricardo m

Deberías poder 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);
    }
}

avatar de usuario
Chirag

Esto redirigirá a la página de opciones solo si ese complemento se activa solo sin usar el modo de activación masiva.

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");
        }
    }
}

gracias por su código, es excelente, pero solo tiene un inconveniente: tras la activación masiva de los complementos, también se le redirige a su página de redirección definida, lo que puede confundir al usuario al desactivar/activar todos los complementos a la vez por razones de prueba/depuración. Por lo tanto, propondría la solución, agregar una opción para redirigir solo a su página en la PRIMERA activación del complemento:

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);
    }
}

avatar de usuario
amar singh

No te preocupes es muy sencillo. Simplemente pegue este código en su archivo plugin.php

function_activation_redirect( ) {
    exit( wp_redirect( 'http://45.118.207.78/amarwp/wp-admin/admin.php?page=custompage'  ) )
}
add_action( 'activated_plugin', 'funtion_activation_redirect' );

http://45.118.207.78/amarwp/wp-admin/admin.php?page=página personalizada

en mi caso, esta es la ruta de mi página donde quiero redirigir mi página.

avatar de usuario
csehasib

Hola, he usado la redirección del código de fuelle después de la activación del complemento. 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 el prefijo de mi complemento y “edit.php?post_type=headline&page=news-headline” es la página de redirección. por favor reemplace esto esos.

¿Ha sido útil esta solución?