Index: wp-admin/includes/plugin.php =================================================================== --- wp-admin/includes/plugin.php (revision 28667) +++ wp-admin/includes/plugin.php (working copy) @@ -47,6 +47,7 @@ * 'TextDomain' - Plugin's text domain for localization. * 'DomainPath' - Plugin's relative directory path to .mo files. * 'Network' - Boolean. Whether the plugin can only be activated network wide. + * 'WordPressOrgUpdate' - Boolean. Whether the plugin should be updated from wordpress.org. Defaults to true. * * Some users have issues with opening large files and manipulating the contents * for want is usually the first 1kiB or 2kiB. This function stops pulling in @@ -81,6 +82,7 @@ 'TextDomain' => 'Text Domain', 'DomainPath' => 'Domain Path', 'Network' => 'Network', + 'WordPressOrgUpdate' => 'WordPress.Org Update', // Site Wide Only is deprecated in favor of Network. '_sitewide' => 'Site Wide Only', ); @@ -93,6 +95,7 @@ $plugin_data['Network'] = $plugin_data['_sitewide']; } $plugin_data['Network'] = ( 'true' == strtolower( $plugin_data['Network'] ) ); + $plugin_data['WordPressOrgUpdate'] = ( '0' != $plugin_data['WordPressOrgUpdate'] && 'false' != strtolower( $plugin_data['WordPressOrgUpdate'] ) ); unset( $plugin_data['_sitewide'] ); if ( $markup || $translate ) { Index: wp-includes/update.php =================================================================== --- wp-includes/update.php (revision 28667) +++ wp-includes/update.php (working copy) @@ -228,6 +228,11 @@ if ( $time_not_changed && ! $extra_stats ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { + if ( false == $p['WordPressOrgUpdate'] ) { + unset( $plugins[ $file ] ); + continue; + } + $new_option->checked[ $file ] = $p['Version']; if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) )