Запуск wp_update_plugins cron для автоматического обновления плагинов в WordPress - PullRequest
1 голос
/ 23 сентября 2019

Я пытаюсь принудительно обновить плагин с помощью WordPress, но, похоже, он не работает.Мне нужно принудительно установить эти обновления в самом пользовательском плагине.

Я добавил следующий фильтр в свой плагин:

add_filter( 'auto_update_plugin', '__return_true' );

Я убедился, что ничего в wp_config нетфайл запрещает автообновления.Несмотря на то, что мне это было не нужно, для безопасности я также установил:

define( 'FS_METHOD', 'direct' ); и define( 'WP_AUTO_UPDATE_CORE', true );

Затем я установил плагин Advanced Cron Manager для запуска события wp_update_plugins, но это не обновляло никаких плагинов.

Я решил просто вызвать функцию wp_maybe_auto_update() в моем плагине при инициализации ..., и он сработал и обновил мой плагин - но также отключил его!

Мне интересно, знает ли кто-нибудь, почему запуск события wp_update_plugins cron не приведет к обновлению каких-либо плагинов?Здесь должно быть действительно простое решение, которое я скучаю!Ваша помощь будет высоко ценится!

1 Ответ

1 голос
/ 24 сентября 2019

Вы можете использовать следующую функцию для программного обновления плагина:

function upgrade_plugin( $plugin_slug ) {
  include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader-skin.php';
  include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
  wp_cache_flush();

  $upgrader = new Plugin_Upgrader();
  $upgraded = $upgrader->upgrade( $plugin_slug );

  return $upgraded;
}

, и вы можете использовать это вместе с get_plugins

// Check if get_plugins() function exists. This is required on the front end of the
// site, since it is in a file that is normally only loaded in the admin.
if ( ! function_exists( 'get_plugins' ) ) {
    require_once ABSPATH . 'wp-admin/includes/plugin.php';
}

$all_plugins = get_plugins();

, а затем выполнить цикл по немуобновить плагины

foreach ( $all_plugins as $key => $value ) {
    upgrade_plugin( $key );
}

Я нашел эту статью полезной при составлении этого ответа: https://wpreset.com/programmatically-automatically-download-install-activate-wordpress-plugins/

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