Я столкнулся с проблемой: кнопка «Обновить сейчас» не отображается, даже если для плагина есть обновление. Ниже приведен метод проверки обновлений плагина.
public function check_update( $_transient_data ) {
global $pagenow;
if ( ! is_object( $_transient_data ) ) {
$_transient_data = new stdClass;
}
if ( 'plugins.php' == $pagenow && is_multisite() ) {
return $_transient_data;
}
if ( ! empty( $_transient_data->response ) && ! empty( $_transient_data->response[ $this->name ] ) && false === $this->wp_override ) {
return $_transient_data;
}
$version_info = $this->get_cached_version_info();
if ( false === $version_info ) {
$version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) );
error_log('version info from api'.wp_json_encode($version_info));
$this->set_version_info_cache( $version_info );
}
if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
if ( version_compare( $this->version, $version_info->new_version, 'get_column_count() . '" class="plugin-update colspanchange">
echo '';
echo '';
echo '';
$changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' );
if ( empty( $version_info->download_link ) ) {
printf(
__( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s.', 'easy-digital-downloads' ),
esc_html( $version_info->name ),
'',
esc_html( $version_info->new_version ),
''
);
} else {
printf(
__( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s or %5$supdate now%6$s.', 'easy-digital-downloads' ),
esc_html( $version_info->name ),
'',
esc_html( $version_info->new_version ),
'',
'',
''
);
}
do_action( "in_plugin_update_message-{$file}", $plugin, $version_info );
echo '';
}
}
Подробнее здесь: https://stackoverflow.com/questions/781 ... g-properly