Функция запуска Wordpress перед обновлением плагина - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь выполнить следующее:

Всякий раз, когда мой плагин обновляется с помощью функции обновления плагинов WordPress, я хочу, чтобы он выполнял функцию, которая сначала создает резервные копии определенных файлов плагинов перед запуском обновления.

Я проверял доступные хуки на WordPress, однако нашел только хрюк upgradeder_process_complete, который согласно веб-сайту WordPress Codex:

The upgrader_process_complete action hook is run when the download process for a plugin install or update finishes.

Хотя «процесс загрузки» немного неясенЯ проверил исходный код, и кажется, что ловушка называется ПОСЛЕ установки плагина, то есть файлы плагина уже перезаписаны и больше не могут быть скопированы.

Есть ли способ выполнить эту ловушку или WordPress не хватает этой функции для вызова функции до начала обновления плагина?

1 Ответ

0 голосов
/ 17 мая 2019

Вы можете использовать upgrade_pre_install фильтр WordPress, который выполняется перед началом обновления, чтобы отключить плагины.проверьте фрагмент ниже, надеюсь, это поможет обойти резервное копирование плагина перед обновлениями.

add_filter( 'upgrader_pre_install', 'deactivate_plugin_before_upgrade_callback', 10, 2 );
function deactivate_plugin_before_upgrade_callback( $return, $plugin ) {

if ( is_wp_error( $return ) ) { //Bypass.
    return $return;
}

// When in cron (background updates) don't deactivate the plugin, as we require a browser to reactivate it
if ( wp_doing_cron() ) {
    return $return;
}

$plugin = isset( $plugin['plugin'] ) ? $plugin['plugin'] : '';
if ( empty( $plugin ) ) {
    return new WP_Error( 'bad_request', $this->strings['bad_request'] );
}

if ( is_plugin_active( $plugin ) ) {
    //You can play with plugin zip download over here
    //Deactivate the plugin silently, Prevent deactivation hooks from running.
    deactivate_plugins( $plugin, true );
}

return $return;

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...