Delete cached sessions when clearing expired sessions

Fixes #6907
This commit is contained in:
Ross McKay 2014-12-06 18:43:56 +11:00
parent 72f41440dd
commit 95a25d3023
1 changed files with 6 additions and 0 deletions

View File

@ -238,6 +238,12 @@ class WC_Session_Handler extends WC_Session {
if ( ! empty( $expired_sessions ) ) {
$expired_sessions_chunked = array_chunk( $expired_sessions, 100 );
foreach ( $expired_sessions_chunked as $chunk ) {
// delete from object cache first, to avoid cached but deleted options
foreach ( $chunk as $option ) {
wp_cache_delete( $option, 'options' );
}
// delete from options table
$option_names = implode( "','", $chunk );
$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name IN ('$option_names')" );
}