Вот лучший способ, который я нашел до сих пор: (это было написано в WP 3.5)
Информация:
Главное, что нужно учитывать при использовании register_activation_hook, это то, чтовызывается как страница-посредник между нажатием на ссылку активации из wp-admin / plugins.php и просмотром уведомления «Активирован плагином» после того, как оно было подключено. Я обнаружил это после того, как попытался использовать переменную $_GET
, отправленную из Activateссылка на сайт.Если вы внимательно посмотрите на ссылку, которую вы нажимаете, и ссылка, в которой вы оказались, немного отличаются.Вот почему вы не можете использовать add_action(), do_action() or add_filter()
, .. в триггерах register_activation_hook()
.Он мгновенно перенаправляет, как только плагин был активирован.
Решение:
Однако вы можете использовать add_option
во время перехвата, например, так:
/* Main Plugin File */
...
register_activation_hook( __FILE__, function() {
add_option('Activated_Plugin','Plugin-Slug');
/* activation code here */
});
add_action('admin_init','load_plugin');
function load_plugin() {
if(is_admin()&&get_option('Activated_Plugin')=='Plugin-Slug') {
delete_option('Activated_Plugin');
/* do some stuff once right after activation */
}
}
Это должно помочь вам начать ...