激活插件后重定向

问题描述 投票:8回答:5

尝试激活用户后,如何将用户重定向到我的插件设置页面

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

但是它不起作用。

wordpress wordpress-plugin
5个回答
14
投票

您应该可以执行以下操作:

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

12
投票

仅当该插件仅在不使用批量激活模式的情况下被激活时,才会重定向到选项页面。

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

5
投票

感谢您的代码-很棒,但是只有一个缺点:大量激活插件后,您还会被重定向到定义的重定向页面-这可能会在一次停用/激活所有插件进行测试/调试时使用户感到困惑原因。因此,我将提出解决方案,添加一个选项以仅在FIRST插件激活时重定向到您的页面:


0
投票

您好,我已在激活插件后使用波纹管代码重定向。您可以使用此代码。运行良好。


0
投票

不用担心,这很简单。只需将这段代码粘贴到您的plugin.php文件中

© www.soinside.com 2019 - 2024. All rights reserved.