Ticket #18876: 18876.diff
File 18876.diff, 4.8 KB (added by , 14 years ago) |
---|
-
wp-includes/update.php
143 143 144 144 $new_option = new stdClass; 145 145 $new_option->last_checked = time(); 146 // Check for updated every 60 minutes if hitting update pages; else, check every 12 hours.147 $timeout = in_array( current_filter(), array( 'load-plugins.php', 'load-update.php', 'load-update-core.php' ) ) ? 3600 : 43200;148 $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );149 146 150 $plugin_changed = false; 151 foreach ( $plugins as $file => $p ) { 152 $new_option->checked[ $file ] = $p['Version']; 147 // Check for updated every 12 hours, 60 minutes, or immediately, depending on the page. 148 $filter = current_filter(); 149 if ( 'load-update-core.php' != $filter ) { 150 $timeout = 'load-plugins.php' == $filter || 'load-update.php' == $filter ? 3600 : 43200; 151 $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); 153 152 154 if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) 155 $plugin_changed = true; 156 } 153 if ( $time_not_changed ) { 154 $plugin_changed = false; 155 foreach ( $plugins as $file => $p ) { 156 $new_option->checked[ $file ] = $p['Version']; 157 158 if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) 159 $plugin_changed = true; 160 } 157 161 158 if ( isset ( $current->response ) && is_array( $current->response ) ) { 159 foreach ( $current->response as $plugin_file => $update_details ) { 160 if ( ! isset($plugins[ $plugin_file ]) ) { 161 $plugin_changed = true; 162 break; 162 if ( isset ( $current->response ) && is_array( $current->response ) ) { 163 foreach ( $current->response as $plugin_file => $update_details ) { 164 if ( ! isset($plugins[ $plugin_file ]) ) { 165 $plugin_changed = true; 166 break; 167 } 168 } 163 169 } 170 171 // Bail if we've checked recently and if nothing has changed 172 if ( ! $plugin_changed ) 173 return false; 164 174 } 165 175 } 166 176 167 // Bail if we've checked in the last 12 hours and if nothing has changed168 if ( $time_not_changed && !$plugin_changed )169 return false;170 171 177 // Update last_checked for current to prevent multiple blocking requests if request hangs 172 178 $current->last_checked = time(); 173 179 set_site_transient( 'update_plugins', $current ); … … 222 228 if ( ! is_object($last_update) ) 223 229 $last_update = new stdClass; 224 230 225 // Check for updated every 60 minutes if hitting update pages; else, check every 12 hours.226 $timeout = in_array( current_filter(), array( 'load-themes.php', 'load-update.php', 'load-update-core.php' ) ) ? 3600 : 43200;227 $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time( ) - $last_update->last_checked );228 229 231 $themes = array(); 230 232 $checked = array(); 231 233 $exclude_fields = array('Template Files', 'Stylesheet Files', 'Status', 'Theme Root', 'Theme Root URI', 'Template Dir', 'Stylesheet Dir', 'Description', 'Tags', 'Screenshot'); … … 246 248 } 247 249 } 248 250 249 $theme_changed = false; 250 foreach ( $checked as $slug => $v ) { 251 $update_request->checked[ $slug ] = $v; 251 // Check for updated every 12 hours, 60 minutes, or immediately, depending on the page. 252 $filter = current_filter(); 253 if ( 'load-update-core.php' != $filter ) { 254 $timeout = 'load-themes.php' == $filter || 'load-update.php' == $filter ? 3600 : 43200; 255 $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time( ) - $last_update->last_checked ); 252 256 253 if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) 254 $theme_changed = true; 255 } 257 if ( $time_not_changed ) { 258 $theme_changed = false; 259 foreach ( $checked as $slug => $v ) { 260 $update_request->checked[ $slug ] = $v; 261 262 if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) 263 $theme_changed = true; 264 } 256 265 257 if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { 258 foreach ( $last_update->response as $slug => $update_details ) { 259 if ( ! isset($checked[ $slug ]) ) { 260 $theme_changed = true; 261 break; 266 if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { 267 foreach ( $last_update->response as $slug => $update_details ) { 268 if ( ! isset($checked[ $slug ]) ) { 269 $theme_changed = true; 270 break; 271 } 272 } 262 273 } 274 275 // Bail if we've checked recently and if nothing has changed 276 if ( ! $theme_changed ) 277 return false; 263 278 } 264 279 } 265 280 266 if ( $time_not_changed && !$theme_changed )267 return false;268 269 281 // Update last_checked for current to prevent multiple blocking requests if request hangs 270 282 $last_update->last_checked = time(); 271 283 set_site_transient( 'update_themes', $last_update );