Плагин WordPress: необходимо отключить функцию сразу после активации плагина - PullRequest
0 голосов
/ 03 февраля 2011

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

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

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Тирлан, у меня такая же проблема. Я не смог придумать отличное решение, так что я делаю при активации плагина, я устанавливаю update_option и затем, когда страница настроек посещается, я проверяю get_option, чтобы проверить мой время установки, и если оно есть, я запускаю функцию и delete_option. Теперь это не будет работать для вас, но ... вы можете понять, как применить этот фильтр:

http://adambrown.info/p/wp_hooks/hook/install_plugin_complete_actions?version=3.0&file=wp-admin/includes/class-wp-upgrader.php

или вы можете использовать мой метод. Попробуйте это:

register_activation_hook(__FILE__, 'initialize_my_function');
function initialize_my_function() {
    add_option('run_my_initialization',"1");
}

add_action('admin_init', 'launch_activation_script');

function launch_activation_script() {
    if (get_option('run_my_initialization') == "1") {
        //Do Your Init Stuff Here
        delete_option('run_my_initialization');
    }
}
0 голосов
/ 03 февраля 2011

Можете ли вы использовать register_activation_hook ?

...