Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




install_plugin_install_status [ WordPress Function ]

install_plugin_install_status ( $api, $loop = false )
Defined at:



Determine the status we can perform on a plugin.

Source


<?php
function install_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;

    
//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->response as $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_dirWP_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_shift$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
                
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();
                        return 
install_plugin_install_status($apitrue);
                    }
                }
            }
        } 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 .= '&amp;from=' urlencode(stripslashes($_GET['from']));

    return 
compact('status''url''version');
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

Gebruikersdiscussies [ wordpress.org ]

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics