2010-03-15 1 views
8

Как перенаправить пользователей на мою страницу настроек плагина после того, как они активировать плагин, я попыталсяредирект после активации плагина

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

, но он не работает.

+0

Я искал в Google, ничего не получил ... тот же вопрос находится на некоторых других форумах, все остались без ответа –

ответ

13

Вы должны быть в состоянии сделать что-то вроде этого:

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 ... именно то, что я хотел ..... Мне нравится это сообщество .. . –

3

спасибо за код - подмигнули большой, но имеет только один недостаток: по насыпной активации плагинов, вы также получите перенаправлены на ваш определенный перенаправлять страницу, что может смутить пользователя при деактивации/активации всех подключаемых модулей одновременно для проверки/отладки. Поэтому я хотел бы предложить решение, чтобы добавить опцию только перенаправить на страницу на первой активации плагина:

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

действительная точка, но было бы лучше обнаружить массовые активации – Pat

8

будет переадресован на странице настроек, только если этот плагин активируется только без использования режима активации объемной.

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

Здравствуйте, я использовал перенаправление сильфонов после активации плагина. Вы можете использовать этот код. Он работает красиво.

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_ мой плагин префикс & "edit.php? Post_type = заголовок & страница = газетный заголовок" является перенаправление страницы. замените это.

 Смежные вопросы

  • Нет связанных вопросов^_^