2010-03-15 41 views
8

Làm thế nào để chuyển hướng người dùng đến trang cài đặt plugin của tôi sau khi họ kích hoạt Plugin của tôi, tôi đã cố gắngRedirect sau khi cắm kích hoạt

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

nhưng nó không hoạt động.

+0

Tôi đã tìm kiếm trên google, không nhận được gì ... cùng một câu hỏi trên một số diễn đàn khác, tất cả đều chưa được trả lời –

Trả lời

13

Bạn sẽ có thể làm điều gì đó như thế này:

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 ... chính xác những gì tôi muốn ..... Tôi yêu cộng đồng này .. –

3

nhờ cho mã của bạn - Nó rất tuyệt vời, nhưng chỉ có một nhược điểm: khi kích hoạt số lượng lớn các plugin, bạn cũng được chuyển đến định nghĩa của bạn trang chuyển hướng - điều này có thể gây nhầm lẫn cho người dùng khi tắt/kích hoạt tất cả các plugin cùng một lúc vì lý do kiểm tra/gỡ lỗi. Do đó, tôi sẽ đề xuất giải pháp để thêm tùy chọn chỉ chuyển hướng đến trang của bạn trên kích hoạt plugin FIRST:

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

điểm hợp lệ, nhưng sẽ tốt hơn nếu phát hiện kích hoạt hàng loạt – Pat

8

Điều này sẽ chuyển hướng đến trang tùy chọn nếu plugin đó chỉ được kích hoạt mà không sử dụng chế độ kích hoạt hàng loạt.

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

Xin chào tôi đã sử dụng chuyển hướng mã sau khi kích hoạt plugin. Bạn có thể sử dụng mã này. Nó hoạt động rất tốt.

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_ là plugin của tôi prefix & "edit.php? Post_type = tít & page = news-tít" là chuyển hướng trang. hãy thay thế những thứ này.

Các vấn đề liên quan