Determina lo stato che possiamo eseguire su un plugin.

Parametri

$api

(array|oggetto)(Richiesto)Dati sul plugin recuperati dall'API.

$loop

(bool)(Opzionale) Disabilita ulteriori loop.

Valore predefinito: false

Ritorno

(array) Dati sullo stato di installazione del plugin.

  • 'stato'
    (stringa) Stato di un plugin. Può essere uno dei seguenti: "install", "update_available", "latest_installed" o "newer_installed".
  • 'url'
    (stringa) URL di installazione del plugin.
  • 'versione'
    (stringa) La versione più recente del plugin.
  • 'file'
    (stringa) Nome del file del plugin relativo alla cartella dei plugin.

Fonte

File: wp-admin/includes/plugin-install.php

functioninstall_plugin_install_status($api,$loop=false){// This function is called recursively, $loop prevents further loops.if(is_array($api)){$api=(object)$api;}// Default to a "new" plugin.$status='install';$url=false;$update_file=false;$version='';/*
	 * Check to see if this plugin is known to be installed,
	 * and has an update awaiting it.
	 */$update_plugins=get_site_transient('update_plugins');if(isset($update_plugins->response)){foreach((array)$update_plugins->responseas$file=>$plugin){if($plugin->slug===$api->slug){$status='update_available';$update_file=$file;$version=$plugin->new_version;if(current_user_can('update_plugins')){$url=wp_nonce_url(self_admin_url('update.php?action=upgrade-plugin&plugin='$update_file),'upgrade-plugin_'$update_file);}break;}}}if('install'===$status){if(is_dir(WP_PLUGIN_DIR'/'$api->slug)){$installed_plugin=get_plugins('/'$api->slug);if(empty($installed_plugin)){if(current_user_can('install_plugins')){$url=wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin='$api->slug),'install-plugin_'$api->slug);}}else{$key=array_keys($installed_plugin);// Use the first plugin regardless of the name.// Could have issues for multiple plugins in one directory if they share different version numbers.$key=reset($key);$update_file=$api->slug'/'$key;if(version_compare($api->version,$installed_plugin[$key]['Version'],'=')){$status='latest_installed';}elseif(version_compare($api->version,$installed_plugin[$key]['Version'],'<')){$status='newer_installed';$version=$installed_plugin[$key]['Version'];}else{// If the above update check failed, then that probably means that the update checker has out-of-date information, force a refresh.if(!$loop){delete_site_transient('update_plugins');wp_update_plugins();returninstall_plugin_install_status($api,true);}}}}else{// "install" & no directory with that slug.if(current_user_can('install_plugins')){$url=wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin='$api->slug),'install-plugin_'$api->slug);}}}if(isset($_GET['from'])){$url.='&from='urlencode(wp_unslash($_GET['from']));}$file=$update_file;returncompact('status','url','version','file');}

Correlato

Utilizzi

Usi Descrizione
wp-admin/includes/plugin-install.php: install_plugin_install_status()

Determina lo stato che possiamo eseguire su un plugin.

wp-admin/includes/plugin.php: get_plugins()

Controlla la cartella dei plugin e recupera tutti i file con i dati dei plugin.

wp-includes/capabilities.php: current_user_can()

Restituisce se l'utente corrente ha la capacità specificata.

wp-includes/formatting.php: wp_unslash()

Rimuove gli slash da una stringa o rimuove ricorsivamente gli slash dalle stringhe all'interno di un array.

wp-includes/functions.php: wp_nonce_url()

Recupera l'URL con il nonce aggiunto alla query URL.

wp-includes/link-template.php: self_admin_url()

Recupera l'URL dell'area di amministrazione del sito corrente o della rete, a seconda del contesto.

wp-includes/update.php: wp_update_plugins()

Verifica la disponibilità di aggiornamenti per i plugin in base alle ultime versioni ospitate su WordPress.org.

wp-includes/option.php: get_site_transient()

Recupera il valore di un sito transitorio.

wp-includes/option.php: cancella_sito_transiente()

Cancella un sito transitorio.

Utilizzato da

Usato da Descrizione
wp-admin/includes/ajax-actions.php: wp_ajax_install_plugin()

Gestore Ajax per l'installazione di un plugin.

wp-admin/includes/plugin-install.php: install_plugin_install_status()

Determina lo stato che possiamo eseguire su un plugin.

wp-admin/includes/plugin-install.php: install_plugin_information()

Mostra le informazioni sul plugin in una finestra di dialogo.

wp-admin/includes/class-wp-plugin-install-list-table.php: WP_Plugin_Install_List_Table::display_rows()

Changelog

Versione Descrizione
3.0.0 Introdotto.